diff options
368 files changed, 4199 insertions, 1586 deletions
diff --git a/.drone.yml b/.drone.yml index c6f35114a25..170cb241c86 100644 --- a/.drone.yml +++ b/.drone.yml @@ -542,43 +542,52 @@ pipeline: when: matrix: TESTS: integration-remote-api + integration-download: + image: nextcloudci/integration-php7.0:integration-php7.0-6 + commands: + - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int + - cd build/integration + - ./run.sh --tags ~@large features/download.feature + when: + matrix: + TESTS: integration-download acceptance-access-levels: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-access-levels --selenium-server selenium:4444 allow-git-repository-modifications features/access-levels.feature when: matrix: TESTS-ACCEPTANCE: access-levels acceptance-app-comments: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-comments --selenium-server selenium:4444 allow-git-repository-modifications features/app-comments.feature when: matrix: TESTS-ACCEPTANCE: app-comments acceptance-app-files: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-files --selenium-server selenium:4444 allow-git-repository-modifications features/app-files.feature when: matrix: TESTS-ACCEPTANCE: app-files acceptance-app-theming: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-app-theming --selenium-server selenium:4444 allow-git-repository-modifications features/app-theming.feature when: matrix: TESTS-ACCEPTANCE: app-theming acceptance-header: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-header --selenium-server selenium:4444 allow-git-repository-modifications features/header.feature when: matrix: TESTS-ACCEPTANCE: header acceptance-login: - image: nextcloudci/integration-php7.0:integration-php7.0-6 + image: nextcloudci/acceptance-php7.1:acceptance-php7.1-2 commands: - tests/acceptance/run-local.sh --timeout-multiplier 10 --nextcloud-server-domain acceptance-login --selenium-server selenium:4444 allow-git-repository-modifications features/login.feature when: @@ -738,6 +747,7 @@ matrix: - TESTS: integration-ldap-features - TESTS: integration-trashbin - TESTS: integration-remote-api + - TESTS: integration-download - TESTS: acceptance TESTS-ACCEPTANCE: access-levels - TESTS: acceptance @@ -762,12 +772,12 @@ matrix: - TESTS: carddavtester-old-endpoint - TESTS: object-store OBJECT_STORE: s3 - - TESTS: object-store - OBJECT_STORE: swift - SWIFT-AUTH: v2.0 - - TESTS: object-store - OBJECT_STORE: swift - SWIFT-AUTH: v3 +# - TESTS: object-store +# OBJECT_STORE: swift +# SWIFT-AUTH: v2.0 +# - TESTS: object-store +# OBJECT_STORE: swift +# SWIFT-AUTH: v3 - TESTS: sqlite-php7.0-samba-native - TESTS: sqlite-php7.0-samba-non-native - TEST: memcache-memcached diff --git a/3rdparty b/3rdparty -Subproject 58b4c791cba853bc27422b6a091c2d0ae3f8860 +Subproject d4e8f89af1df2e0b690ce8cae72b63e86447255 diff --git a/apps/admin_audit/lib/Actions/UserManagement.php b/apps/admin_audit/lib/Actions/UserManagement.php index 45250d4e708..5cf1494df6e 100644 --- a/apps/admin_audit/lib/Actions/UserManagement.php +++ b/apps/admin_audit/lib/Actions/UserManagement.php @@ -51,6 +51,19 @@ class UserManagement extends Action { } /** + * Log assignments of users (typically user backends) + * + * @param string $uid + */ + public function assign(string $uid) { + $this->log( + 'UserID assigned: "%s"', + [ 'uid' => $uid ], + [ 'uid' ] + ); + } + + /** * Log deletion of users * * @param array $params @@ -66,6 +79,19 @@ class UserManagement extends Action { } /** + * Log unassignments of users (typically user backends, no data removed) + * + * @param string $uid + */ + public function unassign(string $uid) { + $this->log( + 'UserID unassigned: "%s"', + [ 'uid' => $uid ], + [ 'uid' ] + ); + } + + /** * Log enabling of users * * @param array $params diff --git a/apps/admin_audit/lib/AppInfo/Application.php b/apps/admin_audit/lib/AppInfo/Application.php index 5634a4a67b5..df39e3eb111 100644 --- a/apps/admin_audit/lib/AppInfo/Application.php +++ b/apps/admin_audit/lib/AppInfo/Application.php @@ -93,6 +93,8 @@ class Application extends App { /** @var IUserSession|Session $userSession */ $userSession = $this->getContainer()->getServer()->getUserSession(); $userSession->listen('\OC\User', 'postSetPassword', [$userActions, 'setPassword']); + $userSession->listen('\OC\User', 'assignedUserId', [$userActions, 'assign']); + $userSession->listen('\OC\User', 'postUnassignedUserId', [$userActions, 'unassign']); } protected function groupHooks(ILogger $logger) { diff --git a/apps/comments/css/comments.css b/apps/comments/css/comments.scss index 311eeebe4db..c2bc136ba66 100644 --- a/apps/comments/css/comments.css +++ b/apps/comments/css/comments.scss @@ -13,53 +13,40 @@ } #commentsTabView .newCommentForm { - position: relative; - margin-bottom: 20px; + margin-left: 36px; } #commentsTabView .newCommentForm .message { - width: calc(100% - 81px); /* 36 (left margin) + 30 (right padding) + 15 (right padding of surrounding box) */ - margin-left: 36px; - padding-right: 30px; - display: block; + /* width = 100% - (width of submit button (44px) + margin (3px) + inline-block gap) */ + width: calc(100% - 52px); + display: inline-block; } #commentsTabView .newCommentForm .submit { - position: absolute; - bottom: 0px; - right: 8px; - width: 30px; + width: 44px; margin: 0; - padding: 7px 9px; + padding: 13px; background-color: transparent; border: none; opacity: .3; + vertical-align: bottom; } -#commentsTabView .newCommentForm .submit:not(:disabled):hover, -#commentsTabView .newCommentForm .submit:not(:disabled):focus { - opacity: 1; -} - -#commentsTabView .newCommentForm .submitLoading { - background-position: left; - /* Match rules for '#commentsTabView .newCommentForm .submit' to place the - loading icon at the same position as the confirm icon */ - position: absolute; - bottom: 0px; - right: 8px; - width: 30px; - margin: 0; - padding: 7px 9px; +#commentsTabView .deleteLoading { + float: right; + padding: 14px; + vertical-align: middle; +} - /* Match rules for 'input[type="submit"]' to place the loading icon at the - same position as the confirm icon */ - min-height: 34px; - box-sizing: border-box; +#commentsTabView .submitLoading { + vertical-align: bottom; + display: inline-block; + padding: 14px; } -#commentsTabView .newCommentForm .cancel { - margin-right: 6px; +#commentsTabView .newCommentForm .submit:not(:disabled):hover, +#commentsTabView .newCommentForm .submit:not(:disabled):focus { + opacity: 1; } #commentsTabView .newCommentForm div.message { @@ -73,11 +60,16 @@ #commentsTabView .comment { position: relative; - margin-bottom: 30px; + /** padding bottom is little more so that the top and bottom gap look uniform **/ + padding: 10px 0px 15px; word-wrap: break-word; overflow-wrap: break-word; } +#commentsTabView .comments .comment { + border-top: 1px solid $color-border; +} + #commentsTabView .comment .avatar, .atwho-view-ul * .avatar{ width: 32px; @@ -123,19 +115,22 @@ background: -o-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1)); background: -ms-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1)); background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1)); - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00FFFFFF', endColorstr='#FFFFFFFF'); background-repeat: no-repeat; } -#commentsTabView .authorRow>div:not(.contactsmenu-popover) { - display: inline-block; - vertical-align: middle; -} - -#commentsTabView .authorRow>div.hidden { +#commentsTabView .hidden { display: none !important; } +/** set min-height as 44px to ensure that it fits the button sizes. **/ +#commentsTabView .comment .authorRow { + min-height: 44px; +} +#commentsTabView .comment .authorRow .tooltip { + /** because of the padding on the element, the tooltip appear too far up, + adding this brings them closer to the element**/ + margin-top: 5px; +} #commentsTabView .comments li .message .avatar-name-wrapper, .atwho-view-ul * .avatar-name-wrapper, #commentsTabView .comment .authorRow { @@ -164,47 +159,48 @@ .atwho-view-ul * .avatar-name-wrapper { white-space: nowrap; } - #commentsTabView .comment .author, #commentsTabView .comment .date { opacity: .5; } +#commentsTabView .comment .author { + max-width: 210px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} #commentsTabView .comment .date { margin-left: auto; + /** this is to fix the tooltip being too close due to the margin-top applied + to bring the tooltip closer for the action icons **/ + padding: 10px 0px; } -#commentsTabView .comments li .message { +#commentsTabView .comments > li:not(.newCommentRow) .message { padding-left: 40px; - display: inline-flex; - flex-wrap: wrap; - align-items: center; } #commentsTabView .comment .action { - opacity: 0; - padding: 5px; -} - -#commentsTabView .comment:hover .action { opacity: 0.3; + padding: 14px; + display: block; } -#commentsTabView .comment .action:hover { +#commentsTabView .comment .action:hover, +#commentsTabView .comment .action:focus { opacity: 1; } -#commentsTabView .comment .action.delete, -#commentsTabView .comment .deleteLoading { - position: absolute; - right: 0; +#commentsTabView .newCommentRow .action-container { + margin-left: auto; } -#commentsTabView .comment.disabled { +#commentsTabView .comment.disabled .message { opacity: 0.3; } #commentsTabView .comment.disabled .action { - visibility: hidden; + display: none; } #commentsTabView .message.error { @@ -215,4 +211,4 @@ .app-files .action-comment { padding: 16px 14px; -} +}
\ No newline at end of file diff --git a/apps/comments/js/commentsmodifymenu.js b/apps/comments/js/commentsmodifymenu.js new file mode 100644 index 00000000000..4b17cbbfbf0 --- /dev/null +++ b/apps/comments/js/commentsmodifymenu.js @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2018 + * + * This file is licensed under the Affero General Public License version 3 + * or later. + * + * See the COPYING-README file. + * + */ + +/* global Handlebars */ +(function() { + var TEMPLATE_MENU = + '<ul>' + + '{{#each items}}' + + '<li>' + + '<a href="#" class="menuitem action {{name}} permanent" data-action="{{name}}">' + + '{{#if iconClass}}' + + '<span class="icon {{iconClass}}"></span>' + + '{{else}}' + + '<span class="no-icon"></span>' + + '{{/if}}' + + '<span>{{displayName}}</span>' + + '</li>' + + '{{/each}}' + + '</ul>'; + + /** + * Construct a new CommentsModifyMenuinstance + * @constructs CommentsModifyMenu + * @memberof OC.Comments + */ + var CommentsModifyMenu = OC.Backbone.View.extend({ + tagName: 'div', + className: 'commentsModifyMenu popovermenu bubble menu', + _scopes: [ + { + name: 'edit', + displayName: t('comments', 'Edit comment'), + iconClass: 'icon-rename' + }, + { + name: 'delete', + displayName: t('comments', 'Delete comment'), + iconClass: 'icon-delete' + } + ], + initialize: function() { + + }, + events: { + 'click a.action': '_onClickAction' + }, + + template: Handlebars.compile(TEMPLATE_MENU), + + /** + * Event handler whenever an action has been clicked within the menu + * + * @param {Object} event event object + */ + _onClickAction: function(event) { + var $target = $(event.currentTarget); + if (!$target.hasClass('menuitem')) { + $target = $target.closest('.menuitem'); + } + + OC.hideMenus(); + + this.trigger('select:menu-item-clicked', event, $target.data('action')); + }, + + /** + * Renders the menu with the currently set items + */ + render: function() { + this.$el.html(this.template({ + items: this._scopes + })); + }, + + /** + * Displays the menu + */ + show: function(context) { + this._context = context; + + for(var i in this._scopes) { + this._scopes[i].active = false; + } + + + var $el = $(context.target); + var offsetIcon = $el.offset(); + var offsetContainer = $el.closest('.authorRow').offset(); + + // adding some extra top offset to push the menu below the button. + var position = { + top: offsetIcon.top - offsetContainer.top + 48, + left: '', + right: '' + }; + + position.left = offsetIcon.left - offsetContainer.left; + + if (position.left > 200) { + // we need to position the menu to the right. + position.left = ''; + position.right = this.$el.closest('.comment').find('.date').width(); + this.$el.removeClass('menu-left').addClass('menu-right'); + } else { + this.$el.removeClass('menu-right').addClass('menu-left'); + } + this.$el.css(position); + this.render(); + this.$el.removeClass('hidden'); + + OC.showMenu(null, this.$el); + } + }); + + OCA.Comments = OCA.Comments || {}; + OCA.Comments.CommentsModifyMenu = CommentsModifyMenu; +})(OC, OCA);
\ No newline at end of file diff --git a/apps/comments/js/commentstabview.js b/apps/comments/js/commentstabview.js index 20f1f590a28..9477cb0c301 100644 --- a/apps/comments/js/commentstabview.js +++ b/apps/comments/js/commentstabview.js @@ -21,24 +21,22 @@ '<div class="loading hidden" style="height: 50px"></div>'; var EDIT_COMMENT_TEMPLATE = - '<div class="newCommentRow comment" data-id="{{id}}">' + + '<{{tag}} class="newCommentRow comment" data-id="{{id}}">' + ' <div class="authorRow">' + ' <div class="avatar currentUser" data-username="{{actorId}}"></div>' + ' <div class="author currentUser">{{actorDisplayName}}</div>' + '{{#if isEditMode}}' + - ' <a href="#" class="action delete icon icon-delete has-tooltip" title="{{deleteTooltip}}"></a>' + - ' <div class="deleteLoading icon-loading-small hidden"></div>'+ + ' <div class="action-container">' + + ' <a href="#" class="action cancel icon icon-close has-tooltip" title="{{cancelText}}"></a>' + + ' </div>' + '{{/if}}' + ' </div>' + ' <form class="newCommentForm">' + ' <div contentEditable="true" class="message" data-placeholder="{{newMessagePlaceholder}}">{{message}}</div>' + - ' <input class="submit icon-confirm" type="submit" value="" />' + - '{{#if isEditMode}}' + - ' <input class="cancel pull-right" type="button" value="{{cancelText}}" />' + - '{{/if}}' + + ' <input class="submit icon-confirm has-tooltip" type="submit" value="" title="{{submitText}}"/>' + ' <div class="submitLoading icon-loading-small hidden"></div>'+ ' </form>' + - '</div>'; + '</{{tag}}>'; var COMMENT_TEMPLATE = '<li class="comment{{#if isUnread}} unread{{/if}}{{#if isLong}} collapsed{{/if}}" data-id="{{id}}">' + @@ -46,7 +44,8 @@ ' <div class="avatar{{#if isUserAuthor}} currentUser{{/if}}" {{#if actorId}}data-username="{{actorId}}"{{/if}}> </div>' + ' <div class="author{{#if isUserAuthor}} currentUser{{/if}}">{{actorDisplayName}}</div>' + '{{#if isUserAuthor}}' + - ' <a href="#" class="action edit icon icon-rename has-tooltip" title="{{editTooltip}}"></a>' + + ' <a href="#" class="action more icon icon-more has-tooltip"></a>' + + ' <div class="deleteLoading icon-loading-small hidden"></div>' + '{{/if}}' + ' <div class="date has-tooltip live-relative-timestamp" data-timestamp="{{timestamp}}" title="{{altDate}}">{{date}}</div>' + ' </div>' + @@ -64,12 +63,11 @@ id: 'commentsTabView', className: 'tab commentsTabView', _autoCompleteData: undefined, + _commentsModifyMenu: undefined, events: { 'submit .newCommentForm': '_onSubmitComment', 'click .showMore': '_onClickShowMore', - 'click .action.edit': '_onClickEditComment', - 'click .action.delete': '_onClickDeleteComment', 'click .cancel': '_onClickCloseComment', 'click .comment': '_onClickComment', 'keyup div.message': '_onTextChange', @@ -114,9 +112,9 @@ actorId: currentUser.uid, actorDisplayName: currentUser.displayName, newMessagePlaceholder: t('comments', 'New comment …'), - deleteTooltip: t('comments', 'Delete comment'), submitText: t('comments', 'Post'), - cancelText: t('comments', 'Cancel') + cancelText: t('comments', 'Cancel'), + tag: 'li' }, params)); }, @@ -166,7 +164,7 @@ emptyResultLabel: t('comments', 'No comments yet, start the conversation!'), moreLabel: t('comments', 'More comments …') })); - this.$el.find('.comments').before(this.editCommentTemplate({})); + this.$el.find('.comments').before(this.editCommentTemplate({ tag: 'div'})); this.$el.find('.has-tooltip').tooltip(); this.$container = this.$el.find('ul.comments'); this.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32); @@ -401,6 +399,24 @@ // it is the case when writing a comment and mentioning a person $message = $el; } + + + if (!editionMode) { + var self = this; + // add the dropdown menu to display the edit and delete option + var modifyCommentMenu = new OCA.Comments.CommentsModifyMenu(); + $el.find('.authorRow').append(modifyCommentMenu.$el); + $el.find('.more').on('click', _.bind(modifyCommentMenu.show, modifyCommentMenu)); + + self.listenTo(modifyCommentMenu, 'select:menu-item-clicked', function(ev, action) { + if (action === 'edit') { + self._onClickEditComment(ev); + } else if (action === 'delete') { + self._onClickDeleteComment(ev); + } + }); + } + this._postRenderMessage($message, editionMode); }, @@ -567,15 +583,13 @@ var $comment = $(ev.target).closest('.comment'); var commentId = $comment.data('id'); var $loading = $comment.find('.deleteLoading'); - var $commentField = $comment.find('.message'); - var $submit = $comment.find('.submit'); - var $cancel = $comment.find('.cancel'); + var $moreIcon = $comment.find('.more'); - $commentField.prop('contenteditable', false); - $submit.prop('disabled', true); - $cancel.prop('disabled', true); $comment.addClass('disabled'); $loading.removeClass('hidden'); + $moreIcon.addClass('hidden'); + + $comment.data('commentEl', $comment); this.collection.get(commentId).destroy({ success: function() { @@ -584,10 +598,8 @@ }, error: function() { $loading.addClass('hidden'); + $moreIcon.removeClass('hidden'); $comment.removeClass('disabled'); - $commentField.prop('contenteditable', true); - $submit.prop('disabled', false); - $cancel.prop('disabled', false); OC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with ID {id}', {id: commentId})); } @@ -668,6 +680,12 @@ }, { success: function(model) { self._onSubmitSuccess(model, $form); + if(model.get('message').trim() === model.previous('message').trim()) { + // model change event doesn't trigger, manually remove the row. + var $row = $form.closest('.comment'); + $row.data('commentEl').removeClass('hidden'); + $row.remove(); + } }, error: function() { self._onSubmitError($form, commentId); diff --git a/apps/comments/js/merged.json b/apps/comments/js/merged.json index 0202c7ff55a..6e77d9cf80a 100644 --- a/apps/comments/js/merged.json +++ b/apps/comments/js/merged.json @@ -4,6 +4,7 @@ "commentcollection.js", "commentsummarymodel.js", "commentstabview.js", + "commentsmodifymenu.js", "filesplugin.js", "activitytabviewplugin.js", "vendor/Caret.js/dist/jquery.caret.min.js", diff --git a/apps/comments/tests/js/commentstabviewSpec.js b/apps/comments/tests/js/commentstabviewSpec.js index 0131bc7bce3..c90ad04e419 100644 --- a/apps/comments/tests/js/commentstabviewSpec.js +++ b/apps/comments/tests/js/commentstabviewSpec.js @@ -190,7 +190,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { expect(fetchStub.notCalled).toEqual(true); - view.$el.find('.showMore').click(); + view.$el.find('.showMore').trigger('click'); expect(fetchStub.calledOnce).toEqual(true); }); @@ -398,10 +398,10 @@ describe('OCA.Comments.CommentsTabView tests', function() { $message = $newCommentForm.find('.message'); $submitButton = $newCommentForm.find('.submit'); }); - afterEach(function() { - tooltipStub.restore(); + afterEach(function() { + tooltipStub.restore(); }); - + it('does not displays tooltip when limit is far away', function() { $message.val(createMessageWithLength(3)); $message.trigger('change'); @@ -490,18 +490,21 @@ describe('OCA.Comments.CommentsTabView tests', function() { it('shows edit link for owner comments', function() { var $comment = view.$el.find('.comment[data-id=1]'); expect($comment.length).toEqual(1); + $comment.find('.action.more').trigger('click'); expect($comment.find('.action.edit').length).toEqual(1); }); it('does not show edit link for other user\'s comments', function() { var $comment = view.$el.find('.comment[data-id=2]'); expect($comment.length).toEqual(1); + $comment.find('.action.more').trigger('click'); expect($comment.find('.action.edit').length).toEqual(0); }); it('shows edit form when clicking edit', function() { var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); + $comment.find('.action.more').trigger('click'); + $comment.find('.action.edit').trigger('click'); expect($comment.hasClass('hidden')).toEqual(true); var $formRow = view.$el.find('.newCommentRow.comment[data-id=1]'); @@ -510,7 +513,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { it('saves message and updates comment item when clicking save', function() { var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); + $comment.find('.action.more').trigger('click'); + $comment.find('.action.edit').trigger('click'); var $formRow = view.$el.find('.newCommentRow.comment[data-id=1]'); expect($formRow.length).toEqual(1); @@ -544,7 +548,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { it('saves message and updates comment item with mentions when clicking save', function() { var $comment = view.$el.find('.comment[data-id=3]'); - $comment.find('.action.edit').click(); + $comment.find('.action.more').trigger('click'); + $comment.find('.action.edit').trigger('click'); var $formRow = view.$el.find('.newCommentRow.comment[data-id=3]'); expect($formRow.length).toEqual(1); @@ -591,13 +596,14 @@ describe('OCA.Comments.CommentsTabView tests', function() { it('restores original comment when cancelling', function() { var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); + $comment.find('.action.more').trigger('click'); + $comment.find('.action.edit').trigger('click'); var $formRow = view.$el.find('.newCommentRow.comment[data-id=1]'); expect($formRow.length).toEqual(1); $formRow.find('textarea').val('modified\nmessage'); - $formRow.find('.cancel').click(); + $formRow.find('.cancel').trigger('click'); expect(saveStub.notCalled).toEqual(true); @@ -614,12 +620,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { it('destroys model when clicking delete', function() { var destroyStub = sinon.stub(OCA.Comments.CommentModel.prototype, 'destroy'); var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); - - var $formRow = view.$el.find('.newCommentRow.comment[data-id=1]'); - expect($formRow.length).toEqual(1); - - $formRow.find('.delete').click(); + $comment.find('.action.more').trigger('click'); + $comment.find('.action.delete').trigger('click'); expect(destroyStub.calledOnce).toEqual(true); expect(destroyStub.thisValues[0].id).toEqual(1); @@ -630,15 +632,11 @@ describe('OCA.Comments.CommentsTabView tests', function() { $comment = view.$el.find('.comment[data-id=1]'); expect($comment.length).toEqual(0); - // form row is gone - $formRow = view.$el.find('.newCommentRow.comment[data-id=1]'); - expect($formRow.length).toEqual(0); - destroyStub.restore(); }); it('does not submit comment if the field is empty', function() { var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); + $comment.find('.action.edit').trigger('click'); $comment.find('.message').val(' '); $comment.find('form').submit(); @@ -646,7 +644,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { }); it('does not submit comment if the field length is too large', function() { var $comment = view.$el.find('.comment[data-id=1]'); - $comment.find('.action.edit').click(); + $comment.find('.action.edit').trigger('click'); $comment.find('.message').val(createMessageWithLength(view._commentMaxLength * 2)); $comment.find('form').submit(); @@ -659,7 +657,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { beforeEach(function() { updateMarkerStub = sinon.stub(OCA.Comments.CommentCollection.prototype, 'updateReadMarker'); }); - afterEach(function() { + afterEach(function() { updateMarkerStub.restore(); }); diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php index 57b176213e0..b1bd039c65e 100644 --- a/apps/dav/lib/HookManager.php +++ b/apps/dav/lib/HookManager.php @@ -77,14 +77,22 @@ class HookManager { 'post_createUser', $this, 'postCreateUser'); + \OC::$server->getUserManager()->listen('\OC\User', 'assignedUserId', function ($uid) { + $this->postCreateUser(['uid' => $uid]); + }); Util::connectHook('OC_User', 'pre_deleteUser', $this, 'preDeleteUser'); + \OC::$server->getUserManager()->listen('\OC\User', 'preUnassignedUserId', [$this, 'preUnassignedUserId']); Util::connectHook('OC_User', 'post_deleteUser', $this, 'postDeleteUser'); + \OC::$server->getUserManager()->listen('\OC\User', 'postUnassignedUserId', function ($uid) { + $this->postDeleteUser(['uid' => $uid]); + }); + \OC::$server->getUserManager()->listen('\OC\User', 'postUnassignedUserId', [$this, 'postUnassignedUserId']); Util::connectHook('OC_User', 'changeUser', $this, @@ -103,6 +111,10 @@ class HookManager { $this->addressBooksToDelete = $this->cardDav->getUsersOwnAddressBooks('principals/users/' . $uid); } + public function preUnassignedUserId($uid) { + $this->usersToDelete[$uid] = $this->userManager->get($uid); + } + public function postDeleteUser($params) { $uid = $params['uid']; if (isset($this->usersToDelete[$uid])){ @@ -119,6 +131,12 @@ class HookManager { } } + public function postUnassignedUserId($uid) { + if (isset($this->usersToDelete[$uid])){ + $this->syncService->deleteUser($this->usersToDelete[$uid]); + } + } + public function changeUser($params) { $user = $params['user']; $this->syncService->updateUser($user); diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php index ff928ccede4..c1d48a7ce5d 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php @@ -24,6 +24,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre; +use OC\SystemConfig; use OCA\DAV\Connector\Sabre\Exception\InvalidPath; use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin as PluginToTest; use OC\Log; @@ -37,13 +38,9 @@ class TestLogger extends Log { public $message; public $level; - public function __construct($logger = null) { - //disable original constructor - } - - public function log(int $level, string $message, array $context = array()) { + public function writeLog(string $app, $entry, int $level) { $this->level = $level; - $this->message = $message; + $this->message = $entry; } } @@ -59,8 +56,20 @@ class ExceptionLoggerPluginTest extends TestCase { private $logger; private function init() { + $config = $this->createMock(SystemConfig::class); + $config->expects($this->any()) + ->method('getValue') + ->willReturnCallback(function($key, $default) { + switch ($key) { + case 'loglevel': + return 0; + default: + return $default; + } + }); + $this->server = new Server(); - $this->logger = new TestLogger(); + $this->logger = new TestLogger(Log\File::class, $config); $this->plugin = new PluginToTest('unit-test', $this->logger); $this->plugin->initialize($this->server); } @@ -73,7 +82,8 @@ class ExceptionLoggerPluginTest extends TestCase { $this->plugin->logException($exception); $this->assertEquals($expectedLogLevel, $this->logger->level); - $this->assertStringStartsWith('Exception: {"Exception":' . json_encode(get_class($exception)) . ',"Message":"' . $expectedMessage . '",', $this->logger->message); + $this->assertEquals(get_class($exception), $this->logger->message['Exception']); + $this->assertEquals($expectedMessage, $this->logger->message['Message']); } public function providesExceptions() { diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index ad56492730e..6bee3c3bdc2 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -958,7 +958,6 @@ OC.Uploader.prototype = _.extend({ status = upload.getResponseStatus(); } self.log('fail', e, upload); - self._hideProgressBar(); if (data.textStatus === 'abort') { self.showUploadCancelMessage(); @@ -1109,14 +1108,11 @@ OC.Uploader.prototype = _.extend({ self.log('progress handle fileuploadstop', e, data); self.clear(); + self._hideProgressBar(); self.trigger('stop', e, data); }); fileupload.on('fileuploadfail', function(e, data) { self.log('progress handle fileuploadfail', e, data); - //if user pressed cancel hide upload progress bar and cancel button - if (data.errorThrown === 'abort') { - self._hideProgressBar(); - } self.trigger('fail', e, data); }); var disableDropState = function() { @@ -1175,11 +1171,9 @@ OC.Uploader.prototype = _.extend({ fileupload.on('fileuploaddone', function(e, data) { var upload = self.getUpload(data); upload.done().then(function() { - self._hideProgressBar(); self.trigger('done', e, upload); }).fail(function(status, response) { var message = response.message; - self._hideProgressBar(); if (status === 507) { // not enough space OC.Notification.show(message || t('files', 'Not enough free space'), {type: 'error'}); diff --git a/apps/files/l10n/af.js b/apps/files/l10n/af.js index efd2f010a05..cc5c26bdf7c 100644 --- a/apps/files/l10n/af.js +++ b/apps/files/l10n/af.js @@ -1,7 +1,7 @@ OC.L10N.register( "files", { - "Storage is temporarily not available" : "Berging is tydelik onbeskikbaar", + "Storage is temporarily not available" : "Berging is tydelik nie beskikbaar nie", "Storage invalid" : "Berging ongeldig", "Unknown error" : "Onbekende fout", "All files" : "Alle lêers", @@ -10,38 +10,55 @@ OC.L10N.register( "Home" : "Tuis", "Close" : "Sluit", "Favorites" : "Gunstelinge", - "Could not create folder \"{dir}\"" : "Kan nie vouer: \"{dir}\" skep nie", + "Could not create folder \"{dir}\"" : "Kan nie gids: \"{dir}\" skep nie", "Upload cancelled." : "Oplaai gekanselleer.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan nie {filename} oplaai nie aangesien dit of 'n gids is of 0 grepe groot is", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie genoeg oop spasie nie, u laai {size1} op maar slegs {size2} is oor", + "Target folder \"{dir}\" does not exist any more" : "Teikengids \"{dir}\" bestaan nie meer nie", "Not enough free space" : "Nie genoeg oop spasie nie", "Uploading …" : "Laai tans op …", "…" : "…", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Teikengids bestaan nie meer nie", "Actions" : "Aksies", - "Download" : "Laai Af", + "Download" : "Laai af", "Rename" : "Hernoem", "Move or copy" : "Kopieer of skuif", "Copy" : "Kopieer", - "Target folder" : "Teikenvouer", + "Target folder" : "Teikengids", "Delete" : "Skrap", "Disconnect storage" : "Ontkoppel berging", "Unshare" : "Ontdeel", + "Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: \"{file}\" laai nie ", "Files" : "Lêers", - "Details" : "Details", + "Details" : "Besonderhede", "Select" : "Kies", "Pending" : "Hangend", - "{newName} already exists" : "{nuweNaam} bestaan reeds", + "Unable to determine date" : "Kan nie datum bepaal nie", + "This operation is forbidden" : "Die operasie is verbode", + "Could not move \"{file}\", target exists" : "Kon nie \"{file}\" skuif nie, teiken bestaan", + "Could not move \"{file}\"" : "Kon nie \"{file}\" skuif nie", + "Could not copy \"{file}\", target exists" : "Kon nie \"{file}\" kopieer nie, teiken bestaan", + "Could not copy \"{file}\"" : "Kon nie \"{file}\" kopieer nie", + "Copied {origin} inside {destination}" : "{origin} binne {destination} gekopieer", + "{newName} already exists" : "{newName} bestaan reeds", "Name" : "Naam", "Size" : "Grootte", "Modified" : "Gewysig", "_%n folder_::_%n folders_" : ["%n gids","%n gidse"], "_%n file_::_%n files_" : ["%n lêer","%n lêers"], + "{dirs} and {files}" : "{dirs} en {files}", + "_including %n hidden_::_including %n hidden_" : ["insluitend %n verborge","insluitende %n verborge"], + "You don’t have permission to upload or create files here" : "U het nie toestemming om lêers hier op te laai of te skep nie", "_Uploading %n file_::_Uploading %n files_" : ["Laai tans %n lêer op ","Laai tans %n lêers op"], "New" : "Nuwe", - "{used} of {quota} used" : "{gebruik} van {kwota} gebruik", - "{used} used" : "{gebruik} gebruik", - "\"{name}\" is an invalid file name." : "\"{naam}\" is nie 'n geldige lêernaam nie.", - "File name cannot be empty." : "Lêernaam kan nie leeg wees nie.", - "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêernaam toegelaat nie.", - "Your storage is almost full ({usedSpacePercent}%)" : "U stoorspasie is amper vol ({gebruikteSpasiePersent}%)", + "{used} of {quota} used" : "{used} van {quota} gebruik", + "{used} used" : "{used} gebruik", + "\"{name}\" is an invalid file name." : "\"{name}\" is nie 'n geldige lêer naam nie.", + "File name cannot be empty." : "Lêer naam kan nie leeg wees nie.", + "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêer naam toegelaat nie.", + "Your storage is almost full ({usedSpacePercent}%)" : "U stoorspasie is amper vol ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["pas '{filter}'","pas '{filter}'"], "View in folder" : "Vertoon in gids", "Copied!" : "Gekopieer!", "Path" : "Roete", @@ -53,31 +70,35 @@ OC.L10N.register( "Not favorited" : "Nie as gunsteling", "Remove from favorites" : "Verwyder uit gunstelinge", "Add to favorites" : "Voeg by gunstelinge", + "An error occurred while trying to update the tags" : "'n Fout het voorgekom terwyl die merkers opgedateer word", "Added to favorites" : "Tot gunstelinge bygevoeg", "Removed from favorites" : "Van gunstelinge verwyder", - "You added {file} to your favorites" : "U het {lêer} tot u gunstelinge bygevoeg", - "You removed {file} from your favorites" : "U het {lêer} van u gunstelinge verwyder", + "You added {file} to your favorites" : "U het {file} tot u gunstelinge bygevoeg", + "You removed {file} from your favorites" : "U het {file} van u gunstelinge verwyder", "File changes" : "Lêer veranderinge ", - "Created by {user}" : "Geskep deur {gebruiker}", - "Changed by {user}" : "Verander deur {gebruiker}", - "Deleted by {user}" : "Geskrap deur {gebruiker}", - "Restored by {user}" : "Herstel deur {gebruiker}", - "Renamed by {user}" : "Naam verander deur {gebruiker}", - "Moved by {user}" : "Geskuif deur {gebruiker}", + "Created by {user}" : "Geskep deur {user}", + "Changed by {user}" : "Verander deur {user}", + "Deleted by {user}" : "Geskrap deur {user}", + "Restored by {user}" : "Herstel deur {user}", + "Renamed by {user}" : "Naam verander deur {user}", + "Moved by {user}" : "Geskuif deur {user}", "\"remote user\"" : "“afstandsgebruiker”", - "You created {file}" : "U het {lêer} geskep", - "{user} created {file}" : "{gebruiker} het {lêer} geskep", - "{file} was created in a public folder" : "{lêer} was in 'n publieke gids geskep", - "You changed {file}" : "U het {lêer} verander", - "{user} changed {file}" : "{gebruiker} het {lêer} verander", - "You deleted {file}" : "U het {lêer} geskrap", - "{user} deleted {file}" : "{gebruiker} het {lêer} geskrap", - "You restored {file}" : "U het {lêer} herstel", - "{user} restored {file}" : "{gebruiker} het {lêer} herstel", - "You renamed {oldfile} to {newfile}" : "U het die naam van {oulêer} na {nuwelêer} verander", - "{user} renamed {oldfile} to {newfile}" : "{gebruiker} het die naam van {oulêer} na {nuwelêer} verander", - "You moved {oldfile} to {newfile}" : "U het {oulêer} na {nuwelêer} geskuif", - "{user} moved {oldfile} to {newfile}" : "{gebruiker} het {oulêer} na {nuwelêer} geskuif", + "You created {file}" : "U het {file} geskep", + "{user} created {file}" : "{user} het {file} geskep", + "{file} was created in a public folder" : "{file} was in 'n publieke gids geskep", + "You changed {file}" : "U het {file} verander", + "{user} changed {file}" : "{user} het {file} verander", + "You deleted {file}" : "U het {file} geskrap", + "{user} deleted {file}" : "{user} het {file} geskrap", + "You restored {file}" : "U het {file} herstel", + "{user} restored {file}" : "{user} het {file} herstel", + "You renamed {oldfile} to {newfile}" : "U het die naam van {oldfile} na {newfile} verander", + "{user} renamed {oldfile} to {newfile}" : "{user} het die naam van {oldfile} na {newfile} verander", + "You moved {oldfile} to {newfile}" : "U het {oldfile} na {newfile} geskuif", + "{user} moved {oldfile} to {newfile}" : "{user} het {oldfile} na {newfile} geskuif", + "A new file or folder has been <strong>created</strong>" : "'n Lêer of gids is <strong>geskep</strong>", + "A file or folder has been <strong>deleted</strong>" : "'n Lêer of gids is <strong>geskrap</strong>", + "A file or folder has been <strong>restored</strong>" : "'n Lêer of gids is <strong>herstel</strong>", "Unlimited" : "Onbeperkte", "Upload (max. %s)" : "Oplaai (maks. %s)", "File handling" : "Lêerhantering", @@ -91,10 +112,12 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Cancel upload" : "Kanselleer oplaai", "No files in here" : "Geen lêers hierbinne nie", - "No entries found in this folder" : "Geen inskrwyings in hierdie vouer gevind", + "Upload some content or sync with your devices!" : "Laai 'n paar lêers op of sinchroniseer met u toestelle", + "No entries found in this folder" : "Geen inskrwyings in hierdie gids gevind", "Select all" : "Merk alles", "Upload too large" : "Oplaai te groot", "No favorites yet" : "Tans geen gunstelinge ", + "Files and folders you mark as favorite will show up here" : "Lêers en gidse wat u as gunsteling merk sal hier vertoon word", "Shared with you" : "Met u gedeel", "Shared with others" : "Gedeel met ander", "Shared by link" : "Gedeel per skakel", @@ -102,6 +125,8 @@ OC.L10N.register( "Deleted files" : "Geskrapte lêers", "Text file" : "Tekslêer", "New text file.txt" : "Nuwe tekslêer.txt", - "Move" : "Skuif" + "Move" : "Skuif", + "A new file or folder has been <strong>deleted</strong>" : "'n Nuwe lêer of gids is <strong>geskrap</strong>", + "A new file or folder has been <strong>restored</strong>" : "'n Nuwe lêer of gids is <strong>herstel</strong>" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/af.json b/apps/files/l10n/af.json index a40153131ab..755e69d2935 100644 --- a/apps/files/l10n/af.json +++ b/apps/files/l10n/af.json @@ -1,5 +1,5 @@ { "translations": { - "Storage is temporarily not available" : "Berging is tydelik onbeskikbaar", + "Storage is temporarily not available" : "Berging is tydelik nie beskikbaar nie", "Storage invalid" : "Berging ongeldig", "Unknown error" : "Onbekende fout", "All files" : "Alle lêers", @@ -8,38 +8,55 @@ "Home" : "Tuis", "Close" : "Sluit", "Favorites" : "Gunstelinge", - "Could not create folder \"{dir}\"" : "Kan nie vouer: \"{dir}\" skep nie", + "Could not create folder \"{dir}\"" : "Kan nie gids: \"{dir}\" skep nie", "Upload cancelled." : "Oplaai gekanselleer.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "Kan nie {filename} oplaai nie aangesien dit of 'n gids is of 0 grepe groot is", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nie genoeg oop spasie nie, u laai {size1} op maar slegs {size2} is oor", + "Target folder \"{dir}\" does not exist any more" : "Teikengids \"{dir}\" bestaan nie meer nie", "Not enough free space" : "Nie genoeg oop spasie nie", "Uploading …" : "Laai tans op …", "…" : "…", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Teikengids bestaan nie meer nie", "Actions" : "Aksies", - "Download" : "Laai Af", + "Download" : "Laai af", "Rename" : "Hernoem", "Move or copy" : "Kopieer of skuif", "Copy" : "Kopieer", - "Target folder" : "Teikenvouer", + "Target folder" : "Teikengids", "Delete" : "Skrap", "Disconnect storage" : "Ontkoppel berging", "Unshare" : "Ontdeel", + "Could not load info for file \"{file}\"" : "Kon nie inligting vir lêer: \"{file}\" laai nie ", "Files" : "Lêers", - "Details" : "Details", + "Details" : "Besonderhede", "Select" : "Kies", "Pending" : "Hangend", - "{newName} already exists" : "{nuweNaam} bestaan reeds", + "Unable to determine date" : "Kan nie datum bepaal nie", + "This operation is forbidden" : "Die operasie is verbode", + "Could not move \"{file}\", target exists" : "Kon nie \"{file}\" skuif nie, teiken bestaan", + "Could not move \"{file}\"" : "Kon nie \"{file}\" skuif nie", + "Could not copy \"{file}\", target exists" : "Kon nie \"{file}\" kopieer nie, teiken bestaan", + "Could not copy \"{file}\"" : "Kon nie \"{file}\" kopieer nie", + "Copied {origin} inside {destination}" : "{origin} binne {destination} gekopieer", + "{newName} already exists" : "{newName} bestaan reeds", "Name" : "Naam", "Size" : "Grootte", "Modified" : "Gewysig", "_%n folder_::_%n folders_" : ["%n gids","%n gidse"], "_%n file_::_%n files_" : ["%n lêer","%n lêers"], + "{dirs} and {files}" : "{dirs} en {files}", + "_including %n hidden_::_including %n hidden_" : ["insluitend %n verborge","insluitende %n verborge"], + "You don’t have permission to upload or create files here" : "U het nie toestemming om lêers hier op te laai of te skep nie", "_Uploading %n file_::_Uploading %n files_" : ["Laai tans %n lêer op ","Laai tans %n lêers op"], "New" : "Nuwe", - "{used} of {quota} used" : "{gebruik} van {kwota} gebruik", - "{used} used" : "{gebruik} gebruik", - "\"{name}\" is an invalid file name." : "\"{naam}\" is nie 'n geldige lêernaam nie.", - "File name cannot be empty." : "Lêernaam kan nie leeg wees nie.", - "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêernaam toegelaat nie.", - "Your storage is almost full ({usedSpacePercent}%)" : "U stoorspasie is amper vol ({gebruikteSpasiePersent}%)", + "{used} of {quota} used" : "{used} van {quota} gebruik", + "{used} used" : "{used} gebruik", + "\"{name}\" is an invalid file name." : "\"{name}\" is nie 'n geldige lêer naam nie.", + "File name cannot be empty." : "Lêer naam kan nie leeg wees nie.", + "\"/\" is not allowed inside a file name." : "\"/\" word nie binne 'n lêer naam toegelaat nie.", + "Your storage is almost full ({usedSpacePercent}%)" : "U stoorspasie is amper vol ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["pas '{filter}'","pas '{filter}'"], "View in folder" : "Vertoon in gids", "Copied!" : "Gekopieer!", "Path" : "Roete", @@ -51,31 +68,35 @@ "Not favorited" : "Nie as gunsteling", "Remove from favorites" : "Verwyder uit gunstelinge", "Add to favorites" : "Voeg by gunstelinge", + "An error occurred while trying to update the tags" : "'n Fout het voorgekom terwyl die merkers opgedateer word", "Added to favorites" : "Tot gunstelinge bygevoeg", "Removed from favorites" : "Van gunstelinge verwyder", - "You added {file} to your favorites" : "U het {lêer} tot u gunstelinge bygevoeg", - "You removed {file} from your favorites" : "U het {lêer} van u gunstelinge verwyder", + "You added {file} to your favorites" : "U het {file} tot u gunstelinge bygevoeg", + "You removed {file} from your favorites" : "U het {file} van u gunstelinge verwyder", "File changes" : "Lêer veranderinge ", - "Created by {user}" : "Geskep deur {gebruiker}", - "Changed by {user}" : "Verander deur {gebruiker}", - "Deleted by {user}" : "Geskrap deur {gebruiker}", - "Restored by {user}" : "Herstel deur {gebruiker}", - "Renamed by {user}" : "Naam verander deur {gebruiker}", - "Moved by {user}" : "Geskuif deur {gebruiker}", + "Created by {user}" : "Geskep deur {user}", + "Changed by {user}" : "Verander deur {user}", + "Deleted by {user}" : "Geskrap deur {user}", + "Restored by {user}" : "Herstel deur {user}", + "Renamed by {user}" : "Naam verander deur {user}", + "Moved by {user}" : "Geskuif deur {user}", "\"remote user\"" : "“afstandsgebruiker”", - "You created {file}" : "U het {lêer} geskep", - "{user} created {file}" : "{gebruiker} het {lêer} geskep", - "{file} was created in a public folder" : "{lêer} was in 'n publieke gids geskep", - "You changed {file}" : "U het {lêer} verander", - "{user} changed {file}" : "{gebruiker} het {lêer} verander", - "You deleted {file}" : "U het {lêer} geskrap", - "{user} deleted {file}" : "{gebruiker} het {lêer} geskrap", - "You restored {file}" : "U het {lêer} herstel", - "{user} restored {file}" : "{gebruiker} het {lêer} herstel", - "You renamed {oldfile} to {newfile}" : "U het die naam van {oulêer} na {nuwelêer} verander", - "{user} renamed {oldfile} to {newfile}" : "{gebruiker} het die naam van {oulêer} na {nuwelêer} verander", - "You moved {oldfile} to {newfile}" : "U het {oulêer} na {nuwelêer} geskuif", - "{user} moved {oldfile} to {newfile}" : "{gebruiker} het {oulêer} na {nuwelêer} geskuif", + "You created {file}" : "U het {file} geskep", + "{user} created {file}" : "{user} het {file} geskep", + "{file} was created in a public folder" : "{file} was in 'n publieke gids geskep", + "You changed {file}" : "U het {file} verander", + "{user} changed {file}" : "{user} het {file} verander", + "You deleted {file}" : "U het {file} geskrap", + "{user} deleted {file}" : "{user} het {file} geskrap", + "You restored {file}" : "U het {file} herstel", + "{user} restored {file}" : "{user} het {file} herstel", + "You renamed {oldfile} to {newfile}" : "U het die naam van {oldfile} na {newfile} verander", + "{user} renamed {oldfile} to {newfile}" : "{user} het die naam van {oldfile} na {newfile} verander", + "You moved {oldfile} to {newfile}" : "U het {oldfile} na {newfile} geskuif", + "{user} moved {oldfile} to {newfile}" : "{user} het {oldfile} na {newfile} geskuif", + "A new file or folder has been <strong>created</strong>" : "'n Lêer of gids is <strong>geskep</strong>", + "A file or folder has been <strong>deleted</strong>" : "'n Lêer of gids is <strong>geskrap</strong>", + "A file or folder has been <strong>restored</strong>" : "'n Lêer of gids is <strong>herstel</strong>", "Unlimited" : "Onbeperkte", "Upload (max. %s)" : "Oplaai (maks. %s)", "File handling" : "Lêerhantering", @@ -89,10 +110,12 @@ "WebDAV" : "WebDAV", "Cancel upload" : "Kanselleer oplaai", "No files in here" : "Geen lêers hierbinne nie", - "No entries found in this folder" : "Geen inskrwyings in hierdie vouer gevind", + "Upload some content or sync with your devices!" : "Laai 'n paar lêers op of sinchroniseer met u toestelle", + "No entries found in this folder" : "Geen inskrwyings in hierdie gids gevind", "Select all" : "Merk alles", "Upload too large" : "Oplaai te groot", "No favorites yet" : "Tans geen gunstelinge ", + "Files and folders you mark as favorite will show up here" : "Lêers en gidse wat u as gunsteling merk sal hier vertoon word", "Shared with you" : "Met u gedeel", "Shared with others" : "Gedeel met ander", "Shared by link" : "Gedeel per skakel", @@ -100,6 +123,8 @@ "Deleted files" : "Geskrapte lêers", "Text file" : "Tekslêer", "New text file.txt" : "Nuwe tekslêer.txt", - "Move" : "Skuif" + "Move" : "Skuif", + "A new file or folder has been <strong>deleted</strong>" : "'n Nuwe lêer of gids is <strong>geskrap</strong>", + "A new file or folder has been <strong>restored</strong>" : "'n Nuwe lêer of gids is <strong>herstel</strong>" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js index f5d39440a71..8c7f34c1c08 100644 --- a/apps/files/l10n/he.js +++ b/apps/files/l10n/he.js @@ -17,8 +17,10 @@ OC.L10N.register( "Target folder \"{dir}\" does not exist any more" : "תיקיית היעד „{dir}” לא קיים עוד", "Not enough free space" : "אין מספיק מקום פנוי", "Uploading …" : "מתבצעת העלאה…", + "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})", "Target folder does not exist any more" : "תיקיית היעד אינה קיימת עוד", + "Error when assembling chunks, status code {status}" : "שגיאה באיסוף הנתחים, קוד המצב {status}", "Actions" : "פעולות", "Download" : "הורדה", "Rename" : "שינוי שם", @@ -40,6 +42,8 @@ OC.L10N.register( "Could not move \"{file}\"" : "לא ניתן להעביר \"{file}\"", "Could not copy \"{file}\", target exists" : "לא ניתן להעתיק את „{file}”, היעד קיים", "Could not copy \"{file}\"" : "לא ניתן להעתיק את „{file}”", + "Copied {origin} inside {destination}" : "{origin} הועתק לתוך {destination} ", + "Copied {origin} and {nbfiles} other files inside {destination}" : "הועתקו {origin} ו־{nbfiles} קבצים אחרים לתוך {destination}", "{newName} already exists" : "{newName} כבר קיים", "Could not rename \"{fileName}\", it does not exist any more" : "לא ניתן לשנות שם \"{fileName}\", הוא כבר לא קיים יותר", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "השם \"{targetName}\" כבר קיים בתיקייה \"{dir}\". יש לבחור שם אחר.", @@ -48,6 +52,7 @@ OC.L10N.register( "Could not create file \"{file}\" because it already exists" : "לא ניתן ליצור את הקובץ \"{file}\" כיוון שהוא כבר קיים", "Could not create folder \"{dir}\" because it already exists" : "לא ניתן ליצור את התיקייה \"{dir}\" כיוון שהיא כבר קיימת", "Error deleting file \"{fileName}\"." : "שגיאה בזמן מחיקת קובץ \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}", "Name" : "שם", "Size" : "גודל", "Modified" : "זמן שינוי", @@ -62,6 +67,8 @@ OC.L10N.register( "{used} used" : "{used} בשימוש", "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.", "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", + "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.", + "\"{name}\" is not an allowed filetype" : "סוד הקובץ „{name}” אינו מורשה", "Storage of {owner} is full, files can not be updated or synced anymore!" : "האחסון של {owner} מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!", "Your storage is full, files can not be updated or synced anymore!" : "האחסון שלך מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "האחסון של {owner} כמעט מלא ({usedSpacePercent}%)", @@ -69,6 +76,7 @@ OC.L10N.register( "_matches '{filter}'_::_match '{filter}'_" : ["מתאים ל- '{filter}'","מתאים ל- '{filter}'"], "View in folder" : "הצג בתיקייה", "Copied!" : "ההעתקה הושלמה!", + "Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)", "Path" : "נתיב", "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"], "Favorited" : "מועדף", @@ -92,8 +100,30 @@ OC.L10N.register( "Moved by {user}" : "הועבר על ידי {user}", "\"remote user\"" : "„משתמש מרוחק”", "You created {file}" : "יצרת את {file}", + "You created an encrypted file in {file}" : "יצרת קובץ מוצפן בתוך {file}", + "{user} created {file}" : " {file} נוצר על ידי {user}", + "{user} created an encrypted file in {file}" : "נוצר קובץ מוצפן בתוך {file} על ידי {user}", + "{file} was created in a public folder" : "{file} נוצר בתוך תיקייה ציבורית", + "You changed {file}" : "שינית את {file}", + "You changed an encrypted file in {file}" : "שינית קובץ מוצפן בתוך {file}", + "{user} changed {file}" : "{file} נערך על ידי {user}", + "{user} changed an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נערך על ידי {user}", + "You deleted {file}" : "מחקת את {file}", + "You deleted an encrypted file in {file}" : "מחקת קובץ מוצפן תחת {file}", + "{user} deleted {file}" : "{file} נמחק על ידי {user}", + "{user} deleted an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נמחק על ידי {user}", + "You restored {file}" : "שחזרת את {file}", + "{user} restored {file}" : "{file} שוחזר על ידי {user}", + "You renamed {oldfile} to {newfile}" : "שינית את השם של {oldfile} לשם {newfile}", + "{user} renamed {oldfile} to {newfile}" : "השם של {oldfile} השתנה אל {newfile} על ידי {user}", + "You moved {oldfile} to {newfile}" : "העברת את {oldfile} אל {newfile}", + "{user} moved {oldfile} to {newfile}" : "{oldfile} הועבר אל {newfile} על ידי {user}", + "A file has been added to or removed from your <strong>favorites</strong>" : "קובץ נוסף או הוסר מה<strong>מועדפים</strong> שלך", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "קובץ או תיקייה <strong>נערכו</strong> או ש<strong>שמם השתנה</strong>", "A new file or folder has been <strong>created</strong>" : "קובץ או תיקייה חדשים <strong>נוצרו<strong/>", + "A file or folder has been <strong>deleted</strong>" : "קובץ או תיקייה <strong>נמחקו</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "הגבלת הודעות על יצירת או שינוי <strong>הקבצים המועדפים</strong> שלך <em>(Stream only)</em>", + "A file or folder has been <strong>restored</strong>" : "קובץ או תיקייה <strong>שוחזרו</strong>", "Unlimited" : "ללא הגבלה", "Upload (max. %s)" : "העלאה (מקסימום %s)", "File handling" : "טיפול בקבצים", @@ -107,6 +137,7 @@ OC.L10N.register( "Settings" : "הגדרות", "Show hidden files" : "הצגת קבצים נסתרים", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">לגשת לקבצים שלך באמצעות WebDAV</a>", "Cancel upload" : "ביטול העלאה", "No files in here" : "אין כאן קבצים", "Upload some content or sync with your devices!" : "יש להעלות קצת תוכן או לסנכרן עם ההתקנים שלך!", @@ -123,6 +154,9 @@ OC.L10N.register( "Deleted files" : "קבצים שנמחקו", "Text file" : "קובץ טקסט", "New text file.txt" : "קובץ טקסט חדש.txt", - "Move" : "העברה" + "Move" : "העברה", + "A new file or folder has been <strong>deleted</strong>" : "קובץ או תיקייה חדשים <strong>נמחקו</strong>", + "A new file or folder has been <strong>restored</strong>" : "קובץ או תיקייה חדשים <strong>שוחזרו</strong>", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">לגשת לקבצים שלך דרך WebDAV</a>" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json index 9ae26a50c8a..4f15c4c7818 100644 --- a/apps/files/l10n/he.json +++ b/apps/files/l10n/he.json @@ -15,8 +15,10 @@ "Target folder \"{dir}\" does not exist any more" : "תיקיית היעד „{dir}” לא קיים עוד", "Not enough free space" : "אין מספיק מקום פנוי", "Uploading …" : "מתבצעת העלאה…", + "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})", "Target folder does not exist any more" : "תיקיית היעד אינה קיימת עוד", + "Error when assembling chunks, status code {status}" : "שגיאה באיסוף הנתחים, קוד המצב {status}", "Actions" : "פעולות", "Download" : "הורדה", "Rename" : "שינוי שם", @@ -38,6 +40,8 @@ "Could not move \"{file}\"" : "לא ניתן להעביר \"{file}\"", "Could not copy \"{file}\", target exists" : "לא ניתן להעתיק את „{file}”, היעד קיים", "Could not copy \"{file}\"" : "לא ניתן להעתיק את „{file}”", + "Copied {origin} inside {destination}" : "{origin} הועתק לתוך {destination} ", + "Copied {origin} and {nbfiles} other files inside {destination}" : "הועתקו {origin} ו־{nbfiles} קבצים אחרים לתוך {destination}", "{newName} already exists" : "{newName} כבר קיים", "Could not rename \"{fileName}\", it does not exist any more" : "לא ניתן לשנות שם \"{fileName}\", הוא כבר לא קיים יותר", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "השם \"{targetName}\" כבר קיים בתיקייה \"{dir}\". יש לבחור שם אחר.", @@ -46,6 +50,7 @@ "Could not create file \"{file}\" because it already exists" : "לא ניתן ליצור את הקובץ \"{file}\" כיוון שהוא כבר קיים", "Could not create folder \"{dir}\" because it already exists" : "לא ניתן ליצור את התיקייה \"{dir}\" כיוון שהיא כבר קיימת", "Error deleting file \"{fileName}\"." : "שגיאה בזמן מחיקת קובץ \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "אין תוצאות חיפוש בתיקיות אחרות עבור {tag}{filter}{endtag}", "Name" : "שם", "Size" : "גודל", "Modified" : "זמן שינוי", @@ -60,6 +65,8 @@ "{used} used" : "{used} בשימוש", "\"{name}\" is an invalid file name." : "\"{name}\" הנו שם קובץ לא חוקי.", "File name cannot be empty." : "שם קובץ אינו יכול להיות ריק", + "\"/\" is not allowed inside a file name." : "אסור להשתמש ב־„/” בתוך שם קובץ.", + "\"{name}\" is not an allowed filetype" : "סוד הקובץ „{name}” אינו מורשה", "Storage of {owner} is full, files can not be updated or synced anymore!" : "האחסון של {owner} מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!", "Your storage is full, files can not be updated or synced anymore!" : "האחסון שלך מלא, כבר לא ניתן לעדכן ולסנכרן קבצים!", "Storage of {owner} is almost full ({usedSpacePercent}%)" : "האחסון של {owner} כמעט מלא ({usedSpacePercent}%)", @@ -67,6 +74,7 @@ "_matches '{filter}'_::_match '{filter}'_" : ["מתאים ל- '{filter}'","מתאים ל- '{filter}'"], "View in folder" : "הצג בתיקייה", "Copied!" : "ההעתקה הושלמה!", + "Copy direct link (only works for users who have access to this file/folder)" : "העתקת קישור ישיר (עובד רק עבור משתמשים שיש להם גישה לקובץ/תיקייה זו)", "Path" : "נתיב", "_%n byte_::_%n bytes_" : ["%n בייט","%n בייטים"], "Favorited" : "מועדף", @@ -90,8 +98,30 @@ "Moved by {user}" : "הועבר על ידי {user}", "\"remote user\"" : "„משתמש מרוחק”", "You created {file}" : "יצרת את {file}", + "You created an encrypted file in {file}" : "יצרת קובץ מוצפן בתוך {file}", + "{user} created {file}" : " {file} נוצר על ידי {user}", + "{user} created an encrypted file in {file}" : "נוצר קובץ מוצפן בתוך {file} על ידי {user}", + "{file} was created in a public folder" : "{file} נוצר בתוך תיקייה ציבורית", + "You changed {file}" : "שינית את {file}", + "You changed an encrypted file in {file}" : "שינית קובץ מוצפן בתוך {file}", + "{user} changed {file}" : "{file} נערך על ידי {user}", + "{user} changed an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נערך על ידי {user}", + "You deleted {file}" : "מחקת את {file}", + "You deleted an encrypted file in {file}" : "מחקת קובץ מוצפן תחת {file}", + "{user} deleted {file}" : "{file} נמחק על ידי {user}", + "{user} deleted an encrypted file in {file}" : "קובץ מוצפן בתוך {file} נמחק על ידי {user}", + "You restored {file}" : "שחזרת את {file}", + "{user} restored {file}" : "{file} שוחזר על ידי {user}", + "You renamed {oldfile} to {newfile}" : "שינית את השם של {oldfile} לשם {newfile}", + "{user} renamed {oldfile} to {newfile}" : "השם של {oldfile} השתנה אל {newfile} על ידי {user}", + "You moved {oldfile} to {newfile}" : "העברת את {oldfile} אל {newfile}", + "{user} moved {oldfile} to {newfile}" : "{oldfile} הועבר אל {newfile} על ידי {user}", + "A file has been added to or removed from your <strong>favorites</strong>" : "קובץ נוסף או הוסר מה<strong>מועדפים</strong> שלך", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "קובץ או תיקייה <strong>נערכו</strong> או ש<strong>שמם השתנה</strong>", "A new file or folder has been <strong>created</strong>" : "קובץ או תיקייה חדשים <strong>נוצרו<strong/>", + "A file or folder has been <strong>deleted</strong>" : "קובץ או תיקייה <strong>נמחקו</strong>", "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "הגבלת הודעות על יצירת או שינוי <strong>הקבצים המועדפים</strong> שלך <em>(Stream only)</em>", + "A file or folder has been <strong>restored</strong>" : "קובץ או תיקייה <strong>שוחזרו</strong>", "Unlimited" : "ללא הגבלה", "Upload (max. %s)" : "העלאה (מקסימום %s)", "File handling" : "טיפול בקבצים", @@ -105,6 +135,7 @@ "Settings" : "הגדרות", "Show hidden files" : "הצגת קבצים נסתרים", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">לגשת לקבצים שלך באמצעות WebDAV</a>", "Cancel upload" : "ביטול העלאה", "No files in here" : "אין כאן קבצים", "Upload some content or sync with your devices!" : "יש להעלות קצת תוכן או לסנכרן עם ההתקנים שלך!", @@ -121,6 +152,9 @@ "Deleted files" : "קבצים שנמחקו", "Text file" : "קובץ טקסט", "New text file.txt" : "קובץ טקסט חדש.txt", - "Move" : "העברה" + "Move" : "העברה", + "A new file or folder has been <strong>deleted</strong>" : "קובץ או תיקייה חדשים <strong>נמחקו</strong>", + "A new file or folder has been <strong>restored</strong>" : "קובץ או תיקייה חדשים <strong>שוחזרו</strong>", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "יש להשתמש בכתובת זו כדי <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">לגשת לקבצים שלך דרך WebDAV</a>" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index f061c2ff953..2bb92fb5c53 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -25,6 +25,7 @@ OC.L10N.register( "Download" : "Last ned", "Rename" : "Gi nytt navn", "Move or copy" : "Flytt eller kopier", + "Copy" : "Kopier", "Target folder" : "Målmappe", "Delete" : "Slett", "Disconnect storage" : "Koble fra lagring", @@ -75,7 +76,7 @@ OC.L10N.register( "_matches '{filter}'_::_match '{filter}'_" : [" stemmer med '{filter}'"," stemmer med '{filter}'"], "View in folder" : "Vis i mappe", "Copied!" : "Kopiert!", - "Copy direct link (only works for users who have access to this file/folder)" : "Kopier direkte lenke (virker bare for brukere som har tilgang til denne fila/mappa)", + "Copy direct link (only works for users who have access to this file/folder)" : "Kopier direkte lenke (virker bare for brukere som har tilgang til denne filen/mappa)", "Path" : "Sti", "_%n byte_::_%n bytes_" : ["%n byte","%n Byte"], "Favorited" : "Er favoritt", @@ -99,11 +100,16 @@ OC.L10N.register( "Moved by {user}" : "Flyttet av {user}", "\"remote user\"" : "\"ekstern bruker\"", "You created {file}" : "Du opprettet {file}", + "You created an encrypted file in {file}" : "Du opprettet en kryptert fil i {file}", "{user} created {file}" : "{user} opprettet {file}", + "{user} created an encrypted file in {file}" : "{user} opprettet en kryptert fil i {file}", "{file} was created in a public folder" : "{file} ble opprettet i en offentlig mappe", "You changed {file}" : "Du endret {file}", + "You changed an encrypted file in {file}" : "Du endret en kryptert fil i {file}", "{user} changed {file}" : "{user} endret {file}", + "{user} changed an encrypted file in {file}" : "{user} endret en kryptert fil i {file}", "You deleted {file}" : "Du slettet {file}", + "You deleted an encrypted file in {file}" : "Du slette en kryptert fil i {file}", "{user} deleted {file}" : "{user} slettet {file}", "You restored {file}" : "Du gjenopprettet {file}", "{user} restored {file}" : "{user} gjenopprettet {file}", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 48477740621..8b9a82ed586 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -23,6 +23,7 @@ "Download" : "Last ned", "Rename" : "Gi nytt navn", "Move or copy" : "Flytt eller kopier", + "Copy" : "Kopier", "Target folder" : "Målmappe", "Delete" : "Slett", "Disconnect storage" : "Koble fra lagring", @@ -73,7 +74,7 @@ "_matches '{filter}'_::_match '{filter}'_" : [" stemmer med '{filter}'"," stemmer med '{filter}'"], "View in folder" : "Vis i mappe", "Copied!" : "Kopiert!", - "Copy direct link (only works for users who have access to this file/folder)" : "Kopier direkte lenke (virker bare for brukere som har tilgang til denne fila/mappa)", + "Copy direct link (only works for users who have access to this file/folder)" : "Kopier direkte lenke (virker bare for brukere som har tilgang til denne filen/mappa)", "Path" : "Sti", "_%n byte_::_%n bytes_" : ["%n byte","%n Byte"], "Favorited" : "Er favoritt", @@ -97,11 +98,16 @@ "Moved by {user}" : "Flyttet av {user}", "\"remote user\"" : "\"ekstern bruker\"", "You created {file}" : "Du opprettet {file}", + "You created an encrypted file in {file}" : "Du opprettet en kryptert fil i {file}", "{user} created {file}" : "{user} opprettet {file}", + "{user} created an encrypted file in {file}" : "{user} opprettet en kryptert fil i {file}", "{file} was created in a public folder" : "{file} ble opprettet i en offentlig mappe", "You changed {file}" : "Du endret {file}", + "You changed an encrypted file in {file}" : "Du endret en kryptert fil i {file}", "{user} changed {file}" : "{user} endret {file}", + "{user} changed an encrypted file in {file}" : "{user} endret en kryptert fil i {file}", "You deleted {file}" : "Du slettet {file}", + "You deleted an encrypted file in {file}" : "Du slette en kryptert fil i {file}", "{user} deleted {file}" : "{user} slettet {file}", "You restored {file}" : "Du gjenopprettet {file}", "{user} restored {file}" : "{user} gjenopprettet {file}", diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index fa8243822a8..7cb0f112f72 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -175,6 +175,12 @@ class ViewController extends Controller { }); $nav->assign('navigationItems', $navItems); + $webdavurl = $this->urlGenerator->linkTo('', 'remote.php') . + '/dav/files/' . + $this->userSession->getUser()->getUID() . + '/'; + $webdavurl = $this->urlGenerator->getAbsoluteURL($webdavurl); + $nav->assign('webdavurl', $webdavurl); $nav->assign('usage', \OC_Helper::humanFileSize($storageInfo['used'])); if ($storageInfo['quota'] === \OCP\Files\FileInfo::SPACE_UNLIMITED) { diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 5d270914ff1..a85e2515a92 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -41,7 +41,7 @@ <label for="showhiddenfilesToggle"><?php p($l->t('Show hidden files')); ?></label> </div> <label for="webdavurl"><?php p($l->t('WebDAV'));?></label> - <input id="webdavurl" type="text" readonly="readonly" value="<?php p(\OCP\Util::linkToRemote('webdav')); ?>" /> + <input id="webdavurl" type="text" readonly="readonly" value="<?php p($_['webdavurl']); ?>" /> <em><?php print_unescaped($l->t('Use this address to <a href="%s" target="_blank" rel="noreferrer noopener">access your Files via WebDAV</a>', array(link_to_docs('user-webdav'))));?></em> </div> </div> diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php index b4f07b65e76..a739e26bd90 100644 --- a/apps/files/tests/Controller/ViewControllerTest.php +++ b/apps/files/tests/Controller/ViewControllerTest.php @@ -138,6 +138,7 @@ class ViewControllerTest extends TestCase { $nav->assign('usage', '123 B'); $nav->assign('quota', 100); $nav->assign('total_space', '100 B'); + $nav->assign('webdavurl', ''); $nav->assign('navigationItems', [ [ 'id' => 'files', diff --git a/apps/files_external/l10n/hu.js b/apps/files_external/l10n/hu.js index 93c15e40760..f5960a1fca4 100644 --- a/apps/files_external/l10n/hu.js +++ b/apps/files_external/l10n/hu.js @@ -14,6 +14,7 @@ OC.L10N.register( "(group)" : "(csoport)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)", "Admin defined" : "Adminisztrátor definiálva", + "Are you sure you want to delete this external storage?" : "Biztosan törlöd ezt a külső tárolót?", "Delete storage?" : "Tároló törlése?", "Saved" : "Elmentve", "Saving..." : "Mentés...", diff --git a/apps/files_external/l10n/hu.json b/apps/files_external/l10n/hu.json index b2e1eb711f0..041a9f6ecd8 100644 --- a/apps/files_external/l10n/hu.json +++ b/apps/files_external/l10n/hu.json @@ -12,6 +12,7 @@ "(group)" : "(csoport)", "Compatibility with Mac NFD encoding (slow)" : "Kompatibilitás a Mac NFD kódolással (lassú)", "Admin defined" : "Adminisztrátor definiálva", + "Are you sure you want to delete this external storage?" : "Biztosan törlöd ezt a külső tárolót?", "Delete storage?" : "Tároló törlése?", "Saved" : "Elmentve", "Saving..." : "Mentés...", diff --git a/apps/files_external/l10n/nb.js b/apps/files_external/l10n/nb.js index c5020364ad8..2b38f3938fe 100644 --- a/apps/files_external/l10n/nb.js +++ b/apps/files_external/l10n/nb.js @@ -55,8 +55,10 @@ OC.L10N.register( "OAuth2" : "OAuth2", "Client ID" : "Klient-ID", "Client secret" : "Klient-hemmelighet", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Prosjektnavn", "Identity endpoint URL" : "URL for identitets-endepunkt", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domene", "Rackspace" : "Rackspace", "API key" : "API-nøkkel", @@ -113,6 +115,7 @@ OC.L10N.register( "Authentication" : "Autentisering", "Configuration" : "Oppsett", "Available for" : "Tilgjengelig for", + "Click to recheck the configuration" : "Klikk for å sjekke oppsettet igjen", "Add storage" : "Legg til lagringsplass", "Advanced settings" : "Avanserte innstillinger", "Delete" : "Slett", diff --git a/apps/files_external/l10n/nb.json b/apps/files_external/l10n/nb.json index 2e0e3e16469..818fb0411be 100644 --- a/apps/files_external/l10n/nb.json +++ b/apps/files_external/l10n/nb.json @@ -53,8 +53,10 @@ "OAuth2" : "OAuth2", "Client ID" : "Klient-ID", "Client secret" : "Klient-hemmelighet", + "OpenStack v2" : "OpenStack v2", "Tenant name" : "Prosjektnavn", "Identity endpoint URL" : "URL for identitets-endepunkt", + "OpenStack v3" : "OpenStack v3", "Domain" : "Domene", "Rackspace" : "Rackspace", "API key" : "API-nøkkel", @@ -111,6 +113,7 @@ "Authentication" : "Autentisering", "Configuration" : "Oppsett", "Available for" : "Tilgjengelig for", + "Click to recheck the configuration" : "Klikk for å sjekke oppsettet igjen", "Add storage" : "Legg til lagringsplass", "Advanced settings" : "Avanserte innstillinger", "Delete" : "Slett", diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php index 0388c7990ec..a68db3421b6 100644 --- a/apps/files_sharing/composer/composer/autoload_classmap.php +++ b/apps/files_sharing/composer/composer/autoload_classmap.php @@ -53,7 +53,5 @@ return array( 'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php', 'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php', 'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php', - 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => $baseDir . '/../lib/Template/ExternalShareMenuAction.php', - 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => $baseDir . '/../lib/Template/LinkMenuAction.php', 'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php', ); diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php index dd75dbaa18a..328d6aca01d 100644 --- a/apps/files_sharing/composer/composer/autoload_static.php +++ b/apps/files_sharing/composer/composer/autoload_static.php @@ -68,8 +68,6 @@ class ComposerStaticInitFiles_Sharing 'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php', 'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php', 'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php', - 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => __DIR__ . '/..' . '/../lib/Template/ExternalShareMenuAction.php', - 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => __DIR__ . '/..' . '/../lib/Template/LinkMenuAction.php', 'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php', ); diff --git a/apps/files_sharing/css/mobile.scss b/apps/files_sharing/css/mobile.scss index 56f57d53263..272dbbc0c34 100644 --- a/apps/files_sharing/css/mobile.scss +++ b/apps/files_sharing/css/mobile.scss @@ -46,10 +46,6 @@ table td.filename .nametext { text-overflow: ellipsis; } -// Hide Download label of 3-dot-menu on public share pages -.share-menutoggle-text { - display: none; -} #header .menutoggle { padding-right: 14px; background-position: center; diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss index cc3788884e7..277814207b3 100644 --- a/apps/files_sharing/css/public.scss +++ b/apps/files_sharing/css/public.scss @@ -1,13 +1,3 @@ -#content { - height: initial; - min-height: calc(100vh - 160px); -} - -/* force layout to make sure the content element's height matches its contents' height */ -.ie #content { - display: inline-block; -} - #preview { background: #fff; text-align: center; @@ -105,10 +95,6 @@ thead { border-color: rgba(0,0,0,0.3) !important; } -#share-menu input[type='text'] { - width: 200px; -} - #public-upload .avatardiv { margin: 0 auto; } diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js index 4b3ede24389..33d8da09166 100644 --- a/apps/files_sharing/js/public.js +++ b/apps/files_sharing/js/public.js @@ -263,15 +263,15 @@ OCA.Sharing.PublicApp = { var remote = $(this).find('#remote_address').val(); var token = $('#sharingToken').val(); - var owner = $('#save').data('owner'); - var ownerDisplayName = $('#save').data('owner-display-name'); - var name = $('#save').data('name'); - var isProtected = $('#save').data('protected') ? 1 : 0; + var owner = $('#save-external-share').data('owner'); + var ownerDisplayName = $('#save-external-share').data('owner-display-name'); + var name = $('#save-external-share').data('name'); + var isProtected = $('#save-external-share').data('protected') ? 1 : 0; OCA.Sharing.PublicApp._createFederatedShare(remote, token, owner, ownerDisplayName, name, isProtected); }); $('#remote_address').on("keyup paste", function() { - if ($(this).val() === '' || $('#save > .icon.icon-loading-small').length > 0) { + if ($(this).val() === '' || $('#save-external-share > .icon.icon-loading-small').length > 0) { $('#save-button-confirm').prop('disabled', true); } else { $('#save-button-confirm').prop('disabled', false); @@ -352,18 +352,18 @@ OCA.Sharing.PublicApp = { }, _toggleLoading: function() { - var loading = $('#save > .icon.icon-loading-small').length === 0; + var loading = $('#save-external-share > .icon.icon-loading-small').length === 0; if (loading) { - $('#save > .icon-external') + $('#save-external-share > .icon-external') .removeClass("icon-external") .addClass("icon-loading-small"); - $('#save #save-button-confirm').prop("disabled", true); + $('#save-external-share #save-button-confirm').prop("disabled", true); } else { - $('#save > .icon-loading-small') + $('#save-external-share > .icon-loading-small') .addClass("icon-external") .removeClass("icon-loading-small"); - $('#save #save-button-confirm').prop("disabled", false); + $('#save-external-share #save-button-confirm').prop("disabled", false); } }, @@ -423,20 +423,4 @@ $(document).ready(function () { }; } - $('#share-menutoggle').click(function() { - $('#share-menu').toggleClass('open'); - }); -}); - - -$(document).mouseup(function(e) { - var toggle = $('#share-menutoggle'); - var container = $('#share-menu'); - - // if the target of the click isn't the menu toggle, nor a descendant of the - // menu toggle, nor the container nor a descendant of the container - if (!toggle.is(e.target) && toggle.has(e.target).length === 0 && - !container.is(e.target) && container.has(e.target).length === 0) { - container.removeClass('open'); - } -}); +});
\ No newline at end of file diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index f793d35e3ae..a196f552f6e 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -38,9 +38,9 @@ namespace OCA\Files_Sharing\Controller; use OC_Files; use OC_Util; use OCA\FederatedFileSharing\FederatedShareProvider; -use OCA\Files_Sharing\Template\ExternalShareMenuAction; -use OCA\Files_Sharing\Template\LinkMenuAction; use OCP\AppFramework\Http\Template\SimpleMenuAction; +use OCP\AppFramework\Http\Template\ExternalShareMenuAction; +use OCP\AppFramework\Http\Template\LinkMenuAction; use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\Defaults; use OCP\IL10N; diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index e8eb28f25c6..476f0851547 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -30,7 +30,7 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size); <?php endif; ?> <input type="hidden" name="maxSizeAnimateGif" value="<?php p($_['maxSizeAnimateGif']); ?>" id="maxSizeAnimateGif"> <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?> - <div id="content"> + <div id="files-public-content"> <div id="preview"> <?php if (isset($_['folder'])): ?> <?php print_unescaped($_['folder']); ?> @@ -84,9 +84,3 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size); data-url="<?php p(\OC::$server->getURLGenerator()->linkTo('files', 'ajax/upload.php')); ?>" /> </div> <?php endif; ?> - -<footer> - <p class="info"> - <?php print_unescaped($theme->getLongFooter()); ?> - </p> -</footer> diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php index a977a422e7d..be99c5ee194 100644 --- a/apps/files_sharing/tests/Controller/ShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php @@ -34,9 +34,9 @@ namespace OCA\Files_Sharing\Tests\Controllers; use OC\Files\Filesystem; use OCA\FederatedFileSharing\FederatedShareProvider; use OCA\Files_Sharing\Controller\ShareController; -use OCA\Files_Sharing\Template\ExternalShareMenuAction; -use OCA\Files_Sharing\Template\LinkMenuAction; use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\Http\Template\ExternalShareMenuAction; +use OCP\AppFramework\Http\Template\LinkMenuAction; use OCP\AppFramework\Http\Template\PublicTemplateResponse; use OCP\AppFramework\Http\Template\SimpleMenuAction; use OCP\IConfig; diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php index c2bbd8025ee..5d1d2a6d501 100644 --- a/apps/provisioning_api/appinfo/routes.php +++ b/apps/provisioning_api/appinfo/routes.php @@ -36,6 +36,8 @@ return [ ['root' => '/cloud', 'name' => 'Groups#getGroups', 'url' => '/groups', 'verb' => 'GET'], ['root' => '/cloud', 'name' => 'Groups#getGroupsDetails', 'url' => '/groups/details', 'verb' => 'GET'], ['root' => '/cloud', 'name' => 'Groups#getGroup', 'url' => '/groups/{groupId}', 'verb' => 'GET'], + ['root' => '/cloud', 'name' => 'Groups#getGroupUsers', 'url' => '/groups/{groupId}/users', 'verb' => 'GET'], + ['root' => '/cloud', 'name' => 'Groups#getGroupUsersDetails', 'url' => '/groups/{groupId}/users/details', 'verb' => 'GET'], ['root' => '/cloud', 'name' => 'Groups#addGroup', 'url' => '/groups', 'verb' => 'POST'], ['root' => '/cloud', 'name' => 'Groups#deleteGroup', 'url' => '/groups/{groupId}', 'verb' => 'DELETE'], ['root' => '/cloud', 'name' => 'Groups#getSubAdminsOfGroup', 'url' => '/groups/{groupId}/subadmins', 'verb' => 'GET'], diff --git a/apps/provisioning_api/composer/composer/autoload_classmap.php b/apps/provisioning_api/composer/composer/autoload_classmap.php index 028f6e5c1dd..760eae82978 100644 --- a/apps/provisioning_api/composer/composer/autoload_classmap.php +++ b/apps/provisioning_api/composer/composer/autoload_classmap.php @@ -7,6 +7,7 @@ $baseDir = $vendorDir; return array( 'OCA\\Provisioning_API\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Provisioning_API\\Controller\\AUserData' => $baseDir . '/../lib/Controller/AUserData.php', 'OCA\\Provisioning_API\\Controller\\AppConfigController' => $baseDir . '/../lib/Controller/AppConfigController.php', 'OCA\\Provisioning_API\\Controller\\AppsController' => $baseDir . '/../lib/Controller/AppsController.php', 'OCA\\Provisioning_API\\Controller\\GroupsController' => $baseDir . '/../lib/Controller/GroupsController.php', diff --git a/apps/provisioning_api/composer/composer/autoload_static.php b/apps/provisioning_api/composer/composer/autoload_static.php index b4e6c8e83b0..ccd4d54dccf 100644 --- a/apps/provisioning_api/composer/composer/autoload_static.php +++ b/apps/provisioning_api/composer/composer/autoload_static.php @@ -22,6 +22,7 @@ class ComposerStaticInitProvisioning_API public static $classMap = array ( 'OCA\\Provisioning_API\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Provisioning_API\\Controller\\AUserData' => __DIR__ . '/..' . '/../lib/Controller/AUserData.php', 'OCA\\Provisioning_API\\Controller\\AppConfigController' => __DIR__ . '/..' . '/../lib/Controller/AppConfigController.php', 'OCA\\Provisioning_API\\Controller\\AppsController' => __DIR__ . '/..' . '/../lib/Controller/AppsController.php', 'OCA\\Provisioning_API\\Controller\\GroupsController' => __DIR__ . '/..' . '/../lib/Controller/GroupsController.php', diff --git a/apps/provisioning_api/lib/Controller/AUserData.php b/apps/provisioning_api/lib/Controller/AUserData.php new file mode 100644 index 00000000000..82ca98ced8c --- /dev/null +++ b/apps/provisioning_api/lib/Controller/AUserData.php @@ -0,0 +1,186 @@ +<?php +declare(strict_types=1); +/** + * @copyright Copyright (c) 2018 John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program 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, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\Provisioning_API\Controller; + +use OC\Accounts\AccountManager; +use OCP\AppFramework\OCS\OCSException; +use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\AppFramework\OCSController; +use OCP\Files\NotFoundException; +use OC_Helper; +use OCP\IConfig; +use OCP\IGroupManager; +use OCP\IRequest; +use OCP\IUserManager; +use OCP\IUserSession; + +abstract class AUserData extends OCSController { + + /** @var IUserManager */ + protected $userManager; + /** @var IConfig */ + protected $config; + /** @var IGroupManager|\OC\Group\Manager */ // FIXME Requires a method that is not on the interface + protected $groupManager; + /** @var IUserSession */ + protected $userSession; + /** @var AccountManager */ + protected $accountManager; + + /** + * @param string $appName + * @param IRequest $request + * @param IUserManager $userManager + * @param IConfig $config + * @param IGroupManager $groupManager + * @param IUserSession $userSession + * @param AccountManager $accountManager + */ + public function __construct(string $appName, + IRequest $request, + IUserManager $userManager, + IConfig $config, + IGroupManager $groupManager, + IUserSession $userSession, + AccountManager $accountManager) { + parent::__construct($appName, $request); + + $this->userManager = $userManager; + $this->config = $config; + $this->groupManager = $groupManager; + $this->userSession = $userSession; + $this->accountManager = $accountManager; + } + + /** + * creates a array with all user data + * + * @param $userId + * @return array + * @throws OCSException + */ + protected function getUserData(string $userId): array { + $currentLoggedInUser = $this->userSession->getUser(); + + $data = []; + + // Check if the target user exists + $targetUserObject = $this->userManager->get($userId); + if($targetUserObject === null) { + throw new OCSNotFoundException('User does not exist'); + } + + // Should be at least Admin Or SubAdmin! + if( $this->groupManager->isAdmin($currentLoggedInUser->getUID()) + || $this->groupManager->getSubAdmin()->isUserAccessible($currentLoggedInUser, $targetUserObject)) { + $data['enabled'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'enabled', 'true'); + } else { + // Check they are looking up themselves + if($currentLoggedInUser->getUID() !== $targetUserObject->getUID()) { + return $data; + } + } + + // Get groups data + $userAccount = $this->accountManager->getUser($targetUserObject); + $groups = $this->groupManager->getUserGroups($targetUserObject); + $gids = []; + foreach ($groups as $group) { + $gids[] = $group->getDisplayName(); + } + + // Find the data + $data['id'] = $targetUserObject->getUID(); + $data['storageLocation'] = $targetUserObject->getHome(); + $data['lastLogin'] = $targetUserObject->getLastLogin() * 1000; + $data['backend'] = $targetUserObject->getBackendClassName(); + $data['subadmin'] = $this->getUserSubAdminGroupsData($targetUserObject->getUID()); + $data['quota'] = $this->fillStorageInfo($targetUserObject->getUID()); + $data[AccountManager::PROPERTY_EMAIL] = $targetUserObject->getEMailAddress(); + $data[AccountManager::PROPERTY_DISPLAYNAME] = $targetUserObject->getDisplayName(); + $data[AccountManager::PROPERTY_PHONE] = $userAccount[AccountManager::PROPERTY_PHONE]['value']; + $data[AccountManager::PROPERTY_ADDRESS] = $userAccount[AccountManager::PROPERTY_ADDRESS]['value']; + $data[AccountManager::PROPERTY_WEBSITE] = $userAccount[AccountManager::PROPERTY_WEBSITE]['value']; + $data[AccountManager::PROPERTY_TWITTER] = $userAccount[AccountManager::PROPERTY_TWITTER]['value']; + $data['groups'] = $gids; + $data['language'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'lang'); + + return $data; + } + + /** + * Get the groups a user is a subadmin of + * + * @param string $userId + * @return array + * @throws OCSException + */ + protected function getUserSubAdminGroupsData(string $userId): array { + $user = $this->userManager->get($userId); + // Check if the user exists + if($user === null) { + throw new OCSNotFoundException('User does not exist'); + } + + // Get the subadmin groups + $subAdminGroups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($user); + $groups = []; + foreach ($subAdminGroups as $key => $group) { + $groups[] = $group->getGID(); + } + + return $groups; + } + + /** + * @param string $userId + * @return array + * @throws \OCP\Files\NotFoundException + */ + protected function fillStorageInfo(string $userId): array { + try { + \OC_Util::tearDownFS(); + \OC_Util::setupFS($userId); + $storage = OC_Helper::getStorageInfo('/'); + $data = [ + 'free' => $storage['free'], + 'used' => $storage['used'], + 'total' => $storage['total'], + 'relative' => $storage['relative'], + 'quota' => $storage['quota'], + ]; + } catch (NotFoundException $ex) { + // User fs is not setup yet + $user = $this->userManager->get($userId); + if ($user === null) { + throw new OCSException('User does not exist', 101); + } + $quota = OC_Helper::computerFileSize($user->getQuota()); + $data = [ + 'quota' => $quota ? $quota : 'none', + 'used' => 0 + ]; + } + return $data; + } + +} diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php index d6f2d9f3391..c2958bc4778 100644 --- a/apps/provisioning_api/lib/Controller/GroupsController.php +++ b/apps/provisioning_api/lib/Controller/GroupsController.php @@ -8,6 +8,7 @@ declare(strict_types=1); * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Tom Needham <tom@owncloud.com> + * @author John Molakvoæ <skjnldsv@protonmail.com> * * @license AGPL-3.0 * @@ -27,24 +28,21 @@ declare(strict_types=1); namespace OCA\Provisioning_API\Controller; +use OC\Accounts\AccountManager; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSException; -use OCP\AppFramework\OCSController; +use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\AppFramework\OCS\OCSForbiddenException; +use OCP\IConfig; use OCP\IGroup; use OCP\IGroupManager; use OCP\ILogger; use OCP\IRequest; +use OCP\IUserManager; use OCP\IUserSession; use OCP\IUser; - -class GroupsController extends OCSController { - - /** @var IGroupManager */ - private $groupManager; - - /** @var IUserSession */ - private $userSession; +class GroupsController extends AUserData { /** @var ILogger */ private $logger; @@ -52,20 +50,30 @@ class GroupsController extends OCSController { /** * @param string $appName * @param IRequest $request + * @param IUserManager $userManager + * @param IConfig $config * @param IGroupManager $groupManager * @param IUserSession $userSession + * @param AccountManager $accountManager * @param ILogger $logger + * @param UsersController $userController */ - public function __construct( - string $appName, - IRequest $request, - IGroupManager $groupManager, - IUserSession $userSession, - ILogger $logger) { - parent::__construct($appName, $request); - - $this->groupManager = $groupManager; - $this->userSession = $userSession; + public function __construct(string $appName, + IRequest $request, + IUserManager $userManager, + IConfig $config, + IGroupManager $groupManager, + IUserSession $userSession, + AccountManager $accountManager, + ILogger $logger) { + parent::__construct($appName, + $request, + $userManager, + $config, + $groupManager, + $userSession, + $accountManager); + $this->logger = $logger; } @@ -79,14 +87,7 @@ class GroupsController extends OCSController { * @param int $offset * @return DataResponse */ - public function getGroups(string $search = '', $limit = null, $offset = null): DataResponse { - if ($limit !== null) { - $limit = (int)$limit; - } - if ($offset !== null) { - $offset = (int)$offset; - } - + public function getGroups(string $search = '', int $limit = null, int $offset = 0): DataResponse { $groups = $this->groupManager->search($search, $limit, $offset); $groups = array_map(function($group) { /** @var IGroup $group */ @@ -106,14 +107,7 @@ class GroupsController extends OCSController { * @param int $offset * @return DataResponse */ - public function getGroupsDetails(string $search = '', $limit = null, $offset = null): DataResponse { - if ($limit !== null) { - $limit = (int)$limit; - } - if ($offset !== null) { - $offset = (int)$offset; - } - + public function getGroupsDetails(string $search = '', int $limit = null, int $offset = 0): DataResponse { $groups = $this->groupManager->search($search, $limit, $offset); $groups = array_map(function($group) { /** @var IGroup $group */ @@ -124,7 +118,20 @@ class GroupsController extends OCSController { } /** - * returns an array of users in the group specified + * @NoAdminRequired + * + * @param string $groupId + * @return DataResponse + * @throws OCSException + * + * @deprecated 14 Use getGroupUsers + */ + public function getGroup(string $groupId): DataResponse { + return $this->getGroupUsers($groupId); + } + + /** + * returns an array of users in the specified group * * @NoAdminRequired * @@ -132,18 +139,16 @@ class GroupsController extends OCSController { * @return DataResponse * @throws OCSException */ - public function getGroup(string $groupId): DataResponse { + public function getGroupUsers(string $groupId): DataResponse { $user = $this->userSession->getUser(); + $isSubadminOfGroup = false; // Check the group exists - if(!$this->groupManager->groupExists($groupId)) { - throw new OCSException('The requested group could not be found', \OCP\API::RESPOND_NOT_FOUND); - } - - $isSubadminOfGroup = false; $group = $this->groupManager->get($groupId); if ($group !== null) { - $isSubadminOfGroup =$this->groupManager->getSubAdmin()->isSubAdminofGroup($user, $group); + $isSubadminOfGroup =$this->groupManager->getSubAdmin()->isSubAdminOfGroup($user, $group); + } else { + throw new OCSNotFoundException('The requested group could not be found'); } // Check subadmin has access to this group @@ -158,6 +163,50 @@ class GroupsController extends OCSController { return new DataResponse(['users' => $users]); } + throw new OCSForbiddenException(); + } + + /** + * returns an array of users details in the specified group + * + * @NoAdminRequired + * + * @param string $groupId + * @param int $limit + * @param int $offset + * @return DataResponse + * @throws OCSException + */ + public function getGroupUsersDetails(string $groupId, int $limit = null, int $offset = 0): DataResponse { + $user = $this->userSession->getUser(); + $isSubadminOfGroup = false; + + // Check the group exists + $group = $this->groupManager->get($groupId); + if ($group !== null) { + $isSubadminOfGroup =$this->groupManager->getSubAdmin()->isSubAdminOfGroup($user, $group); + } else { + throw new OCSException('The requested group could not be found', \OCP\API::RESPOND_NOT_FOUND); + } + + // Check subadmin has access to this group + if($this->groupManager->isAdmin($user->getUID()) + || $isSubadminOfGroup) { + $users = $this->groupManager->get($groupId)->getUsers(); + // Extract required number + $users = array_slice($users, $offset, $limit); + $users = array_keys($users); + $usersDetails = []; + foreach ($users as $userId) { + $userData = $this->getUserData($userId); + // Do not insert empty entry + if(!empty($userData)) { + $usersDetails[$userId] = $userData; + } + } + return new DataResponse(['users' => $usersDetails]); + } + throw new OCSException('User does not have access to specified group', \OCP\API::RESPOND_UNAUTHORISED); } diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index c8c00fa8592..420c09dfecb 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -12,6 +12,7 @@ declare(strict_types=1); * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tom Needham <tom@owncloud.com> + * @author John Molakvoæ <skjnldsv@protonmail.com> * * @license AGPL-3.0 * @@ -34,14 +35,11 @@ namespace OCA\Provisioning_API\Controller; use OC\Accounts\AccountManager; use OC\HintException; use OC\Settings\Mailer\NewUserMailHelper; -use OC_Helper; use OCA\Provisioning_API\FederatedFileSharingFactory; use OCP\App\IAppManager; use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCS\OCSException; use OCP\AppFramework\OCS\OCSForbiddenException; -use OCP\AppFramework\OCSController; -use OCP\Files\NotFoundException; use OCP\IConfig; use OCP\IGroup; use OCP\IGroupManager; @@ -52,20 +50,10 @@ use OCP\IUserSession; use OCP\L10N\IFactory; use OCP\Security\ISecureRandom; -class UsersController extends OCSController { +class UsersController extends AUserData { - /** @var IUserManager */ - private $userManager; - /** @var IConfig */ - private $config; /** @var IAppManager */ private $appManager; - /** @var IGroupManager|\OC\Group\Manager */ // FIXME Requires a method that is not on the interface - private $groupManager; - /** @var IUserSession */ - private $userSession; - /** @var AccountManager */ - private $accountManager; /** @var ILogger */ private $logger; /** @var IFactory */ @@ -105,14 +93,15 @@ class UsersController extends OCSController { NewUserMailHelper $newUserMailHelper, FederatedFileSharingFactory $federatedFileSharingFactory, ISecureRandom $secureRandom) { - parent::__construct($appName, $request); + parent::__construct($appName, + $request, + $userManager, + $config, + $groupManager, + $userSession, + $accountManager); - $this->userManager = $userManager; - $this->config = $config; $this->appManager = $appManager; - $this->groupManager = $groupManager; - $this->userSession = $userSession; - $this->accountManager = $accountManager; $this->logger = $logger; $this->l10nFactory = $l10nFactory; $this->newUserMailHelper = $newUserMailHelper; @@ -137,7 +126,7 @@ class UsersController extends OCSController { // Admin? Or SubAdmin? $uid = $user->getUID(); $subAdminManager = $this->groupManager->getSubAdmin(); - if($this->groupManager->isAdmin($uid)){ + if ($this->groupManager->isAdmin($uid)){ $users = $this->userManager->search($search, $limit, $offset); } else if ($subAdminManager->isSubAdmin($user)) { $subAdminOfGroups = $subAdminManager->getSubAdminsGroups($user); @@ -170,7 +159,7 @@ class UsersController extends OCSController { // Admin? Or SubAdmin? $uid = $user->getUID(); $subAdminManager = $this->groupManager->getSubAdmin(); - if($this->groupManager->isAdmin($uid)){ + if ($this->groupManager->isAdmin($uid)){ $users = $this->userManager->search($search, $limit, $offset); } else if ($subAdminManager->isSubAdmin($user)) { $subAdminOfGroups = $subAdminManager->getSubAdminsGroups($user); @@ -189,7 +178,7 @@ class UsersController extends OCSController { foreach ($users as $key => $userId) { $userData = $this->getUserData($userId); // Do not insert empty entry - if(!empty($userData)) { + if (!empty($userData)) { $usersDetails[$userId] = $userData; } } @@ -207,34 +196,61 @@ class UsersController extends OCSController { * @param string $password * @param string $email * @param array $groups + * @param array $subadmins + * @param string $quota * @return DataResponse * @throws OCSException */ - public function addUser(string $userid, string $password = '', string $email='', array $groups = []): DataResponse { + public function addUser(string $userid, + string $password = '', + string $email = '', + array $groups = [], + array $subadmin = [], + string $quota = ''): DataResponse { $user = $this->userSession->getUser(); $isAdmin = $this->groupManager->isAdmin($user->getUID()); $subAdminManager = $this->groupManager->getSubAdmin(); - if($this->userManager->userExists($userid)) { + if ($this->userManager->userExists($userid)) { $this->logger->error('Failed addUser attempt: User already exists.', ['app' => 'ocs_api']); throw new OCSException('User already exists', 102); } - if($groups !== []) { + if ($groups !== []) { foreach ($groups as $group) { - if(!$this->groupManager->groupExists($group)) { + if (!$this->groupManager->groupExists($group)) { throw new OCSException('group '.$group.' does not exist', 104); } - if(!$isAdmin && !$subAdminManager->isSubAdminofGroup($user, $this->groupManager->get($group))) { + if (!$isAdmin && !$subAdminManager->isSubAdminOfGroup($user, $this->groupManager->get($group))) { throw new OCSException('insufficient privileges for group '. $group, 105); } } } else { - if(!$isAdmin) { + if (!$isAdmin) { throw new OCSException('no group specified (required for subadmins)', 106); } } + $subadminGroups = []; + if ($subadmin !== []) { + foreach ($subadmin as $groupid) { + $group = $this->groupManager->get($groupid); + // Check if group exists + if ($group === null) { + throw new OCSException('Subadmin group does not exist', 102); + } + // Check if trying to make subadmin of admin group + if ($group->getGID() === 'admin') { + throw new OCSException('Cannot create subadmins for admin group', 103); + } + // Check if has permission to promote subadmins + if (!$subAdminManager->isSubAdminOfGroup($user, $group) && !$isAdmin) { + throw new OCSForbiddenException('No permissions to promote subadmins'); + } + $subadminGroups[] = $group; + } + } + $generatePasswordResetToken = false; if ($password === '') { if ($email === '') { @@ -255,6 +271,13 @@ class UsersController extends OCSController { $this->groupManager->get($group)->addUser($newUser); $this->logger->info('Added userid ' . $userid . ' to group ' . $group, ['app' => 'ocs_api']); } + foreach ($subadminGroups as $group) { + $subAdminManager->createSubAdmin($newUser, $group); + } + + if ($quota !== '') { + $this->editUser($userid, 'quota', $quota); + } // Send new user mail only if a mail is set if ($email !== '') { @@ -304,7 +327,7 @@ class UsersController extends OCSController { public function getUser(string $userId): DataResponse { $data = $this->getUserData($userId); // getUserData returns empty array if not enough permissions - if(empty($data)) { + if (empty($data)) { throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); } return new DataResponse($data); @@ -335,62 +358,6 @@ class UsersController extends OCSController { } /** - * creates a array with all user data - * - * @param $userId - * @return array - * @throws OCSException - */ - protected function getUserData(string $userId): array { - $currentLoggedInUser = $this->userSession->getUser(); - - $data = []; - - // Check if the target user exists - $targetUserObject = $this->userManager->get($userId); - if($targetUserObject === null) { - throw new OCSException('The requested user could not be found', \OCP\API::RESPOND_NOT_FOUND); - } - - // Should be at least Admin Or SubAdmin! - if( $this->groupManager->isAdmin($currentLoggedInUser->getUID()) - || $this->groupManager->getSubAdmin()->isUserAccessible($currentLoggedInUser, $targetUserObject)) { - $data['enabled'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'enabled', 'true'); - } else { - // Check they are looking up themselves - if($currentLoggedInUser->getUID() !== $targetUserObject->getUID()) { - return $data; - } - } - - // Get groups data - $userAccount = $this->accountManager->getUser($targetUserObject); - $groups = $this->groupManager->getUserGroups($targetUserObject); - $gids = []; - foreach ($groups as $group) { - $gids[] = $group->getDisplayName(); - } - - // Find the data - $data['id'] = $targetUserObject->getUID(); - $data['storageLocation'] = $targetUserObject->getHome(); - $data['lastLogin'] = $targetUserObject->getLastLogin() * 1000; - $data['backend'] = $targetUserObject->getBackendClassName(); - $data['subadmin'] = $this->getUserSubAdminGroupsData($targetUserObject->getUID()); - $data['quota'] = $this->fillStorageInfo($targetUserObject->getUID()); - $data[AccountManager::PROPERTY_EMAIL] = $targetUserObject->getEMailAddress(); - $data[AccountManager::PROPERTY_DISPLAYNAME] = $targetUserObject->getDisplayName(); - $data[AccountManager::PROPERTY_PHONE] = $userAccount[AccountManager::PROPERTY_PHONE]['value']; - $data[AccountManager::PROPERTY_ADDRESS] = $userAccount[AccountManager::PROPERTY_ADDRESS]['value']; - $data[AccountManager::PROPERTY_WEBSITE] = $userAccount[AccountManager::PROPERTY_WEBSITE]['value']; - $data[AccountManager::PROPERTY_TWITTER] = $userAccount[AccountManager::PROPERTY_TWITTER]['value']; - $data['groups'] = $gids; - $data['language'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'lang'); - - return $data; - } - - /** * @NoAdminRequired * @NoSubAdminRequired */ @@ -434,12 +401,12 @@ class UsersController extends OCSController { $currentLoggedInUser = $this->userSession->getUser(); $targetUser = $this->userManager->get($userId); - if($targetUser === null) { + if ($targetUser === null) { throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); } $permittedFields = []; - if($targetUser->getUID() === $currentLoggedInUser->getUID()) { + if ($targetUser->getUID() === $currentLoggedInUser->getUID()) { // Editing self (display, email) if ($this->config->getSystemValue('allow_user_to_change_display_name', true) !== false) { $permittedFields[] = 'display'; @@ -465,13 +432,13 @@ class UsersController extends OCSController { } // If admin they can edit their own quota - if($this->groupManager->isAdmin($currentLoggedInUser->getUID())) { + if ($this->groupManager->isAdmin($currentLoggedInUser->getUID())) { $permittedFields[] = 'quota'; } } else { // Check if admin / subadmin $subAdminManager = $this->groupManager->getSubAdmin(); - if($subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser) + if ($subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser) || $this->groupManager->isAdmin($currentLoggedInUser->getUID())) { // They have permissions over the user $permittedFields[] = 'display'; @@ -490,7 +457,7 @@ class UsersController extends OCSController { } } // Check if permitted to edit this field - if(!in_array($key, $permittedFields)) { + if (!in_array($key, $permittedFields)) { throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); } // Process the edit @@ -501,7 +468,7 @@ class UsersController extends OCSController { break; case 'quota': $quota = $value; - if($quota !== 'none' && $quota !== 'default') { + if ($quota !== 'none' && $quota !== 'default') { if (is_numeric($quota)) { $quota = (float) $quota; } else { @@ -510,9 +477,9 @@ class UsersController extends OCSController { if ($quota === false) { throw new OCSException('Invalid quota value '.$value, 103); } - if($quota === 0) { + if ($quota === 0) { $quota = 'default'; - }else if($quota === -1) { + }else if ($quota === -1) { $quota = 'none'; } else { $quota = \OCP\Util::humanFileSize($quota); @@ -531,7 +498,7 @@ class UsersController extends OCSController { $this->config->setUserValue($targetUser->getUID(), 'core', 'lang', $value); break; case AccountManager::PROPERTY_EMAIL: - if(filter_var($value, FILTER_VALIDATE_EMAIL) || $value === '') { + if (filter_var($value, FILTER_VALIDATE_EMAIL) || $value === '') { $targetUser->setEMailAddress($value); } else { throw new OCSException('', 102); @@ -566,18 +533,18 @@ class UsersController extends OCSController { $targetUser = $this->userManager->get($userId); - if($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) { + if ($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) { throw new OCSException('', 101); } // If not permitted $subAdminManager = $this->groupManager->getSubAdmin(); - if(!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { + if (!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); } // Go ahead with the delete - if($targetUser->delete()) { + if ($targetUser->delete()) { return new DataResponse(); } else { throw new OCSException('', 101); @@ -620,13 +587,13 @@ class UsersController extends OCSController { $currentLoggedInUser = $this->userSession->getUser(); $targetUser = $this->userManager->get($userId); - if($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) { + if ($targetUser === null || $targetUser->getUID() === $currentLoggedInUser->getUID()) { throw new OCSException('', 101); } // If not permitted $subAdminManager = $this->groupManager->getSubAdmin(); - if(!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { + if (!$this->groupManager->isAdmin($currentLoggedInUser->getUID()) && !$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser)) { throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); } @@ -647,11 +614,11 @@ class UsersController extends OCSController { $loggedInUser = $this->userSession->getUser(); $targetUser = $this->userManager->get($userId); - if($targetUser === null) { + if ($targetUser === null) { throw new OCSException('', \OCP\API::RESPOND_NOT_FOUND); } - if($targetUser->getUID() === $loggedInUser->getUID() || $this->groupManager->isAdmin($loggedInUser->getUID())) { + if ($targetUser->getUID() === $loggedInUser->getUID() || $this->groupManager->isAdmin($loggedInUser->getUID())) { // Self lookup or admin lookup return new DataResponse([ 'groups' => $this->groupManager->getUserGroupIds($targetUser) @@ -660,7 +627,7 @@ class UsersController extends OCSController { $subAdminManager = $this->groupManager->getSubAdmin(); // Looking up someone else - if($subAdminManager->isUserAccessible($loggedInUser, $targetUser)) { + if ($subAdminManager->isUserAccessible($loggedInUser, $targetUser)) { // Return the group that the method caller is subadmin of for the user in question /** @var IGroup[] $getSubAdminsGroups */ $getSubAdminsGroups = $subAdminManager->getSubAdminsGroups($loggedInUser); @@ -690,16 +657,16 @@ class UsersController extends OCSController { * @throws OCSException */ public function addToGroup(string $userId, string $groupid = ''): DataResponse { - if($groupid === '') { + if ($groupid === '') { throw new OCSException('', 101); } $group = $this->groupManager->get($groupid); $targetUser = $this->userManager->get($userId); - if($group === null) { + if ($group === null) { throw new OCSException('', 102); } - if($targetUser === null) { + if ($targetUser === null) { throw new OCSException('', 103); } @@ -727,17 +694,17 @@ class UsersController extends OCSController { public function removeFromGroup(string $userId, string $groupid): DataResponse { $loggedInUser = $this->userSession->getUser(); - if($groupid === null || trim($groupid) === '') { + if ($groupid === null || trim($groupid) === '') { throw new OCSException('', 101); } $group = $this->groupManager->get($groupid); - if($group === null) { + if ($group === null) { throw new OCSException('', 102); } $targetUser = $this->userManager->get($userId); - if($targetUser === null) { + if ($targetUser === null) { throw new OCSException('', 103); } @@ -793,26 +760,26 @@ class UsersController extends OCSController { $user = $this->userManager->get($userId); // Check if the user exists - if($user === null) { + if ($user === null) { throw new OCSException('User does not exist', 101); } // Check if group exists - if($group === null) { + if ($group === null) { throw new OCSException('Group does not exist', 102); } // Check if trying to make subadmin of admin group - if($group->getGID() === 'admin') { + if ($group->getGID() === 'admin') { throw new OCSException('Cannot create subadmins for admin group', 103); } $subAdminManager = $this->groupManager->getSubAdmin(); // We cannot be subadmin twice - if ($subAdminManager->isSubAdminofGroup($user, $group)) { + if ($subAdminManager->isSubAdminOfGroup($user, $group)) { return new DataResponse(); } // Go - if($subAdminManager->createSubAdmin($user, $group)) { + if ($subAdminManager->createSubAdmin($user, $group)) { return new DataResponse(); } else { throw new OCSException('Unknown error occurred', 103); @@ -835,20 +802,20 @@ class UsersController extends OCSController { $subAdminManager = $this->groupManager->getSubAdmin(); // Check if the user exists - if($user === null) { + if ($user === null) { throw new OCSException('User does not exist', 101); } // Check if the group exists - if($group === null) { + if ($group === null) { throw new OCSException('Group does not exist', 101); } // Check if they are a subadmin of this said group - if(!$subAdminManager->isSubAdminOfGroup($user, $group)) { + if (!$subAdminManager->isSubAdminOfGroup($user, $group)) { throw new OCSException('User is not a subadmin of this group', 102); } // Go - if($subAdminManager->deleteSubAdmin($user, $group)) { + if ($subAdminManager->deleteSubAdmin($user, $group)) { return new DataResponse(); } else { throw new OCSException('Unknown error occurred', 103); @@ -859,30 +826,6 @@ class UsersController extends OCSController { * Get the groups a user is a subadmin of * * @param string $userId - * @return array - * @throws OCSException - */ - protected function getUserSubAdminGroupsData(string $userId): array { - $user = $this->userManager->get($userId); - // Check if the user exists - if($user === null) { - throw new OCSException('User does not exist', 101); - } - - // Get the subadmin groups - $subAdminGroups = $this->groupManager->getSubAdmin()->getSubAdminsGroups($user); - $groups = []; - foreach ($subAdminGroups as $key => $group) { - $groups[] = $group->getGID(); - } - - return $groups; - } - - /** - * Get the groups a user is a subadmin of - * - * @param string $userId * @return DataResponse * @throws OCSException */ @@ -892,38 +835,6 @@ class UsersController extends OCSController { } /** - * @param string $userId - * @return array - * @throws \OCP\Files\NotFoundException - */ - protected function fillStorageInfo(string $userId): array { - try { - \OC_Util::tearDownFS(); - \OC_Util::setupFS($userId); - $storage = OC_Helper::getStorageInfo('/'); - $data = [ - 'free' => $storage['free'], - 'used' => $storage['used'], - 'total' => $storage['total'], - 'relative' => $storage['relative'], - 'quota' => $storage['quota'], - ]; - } catch (NotFoundException $ex) { - // User fs is not setup yet - $user = $this->userManager->get($userId); - if ($user === null) { - throw new OCSException('User does not exist', 101); - } - $quota = OC_Helper::computerFileSize($user->getQuota()); - $data = [ - 'quota' => $quota ? $quota : 'none', - 'used' => 0 - ]; - } - return $data; - } - - /** * @NoAdminRequired * @PasswordConfirmationRequired * @@ -937,13 +848,13 @@ class UsersController extends OCSController { $currentLoggedInUser = $this->userSession->getUser(); $targetUser = $this->userManager->get($userId); - if($targetUser === null) { + if ($targetUser === null) { throw new OCSException('', \OCP\API::RESPOND_NOT_FOUND); } // Check if admin / subadmin $subAdminManager = $this->groupManager->getSubAdmin(); - if(!$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser) + if (!$subAdminManager->isUserAccessible($currentLoggedInUser, $targetUser) && !$this->groupManager->isAdmin($currentLoggedInUser->getUID())) { // No rights throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED); diff --git a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php index 352264c7afb..44b440a40b2 100644 --- a/apps/provisioning_api/tests/Controller/GroupsControllerTest.php +++ b/apps/provisioning_api/tests/Controller/GroupsControllerTest.php @@ -26,54 +26,67 @@ namespace OCA\Provisioning_API\Tests\Controller; +use OC\Accounts\AccountManager; +use OC\Group\Manager; +use OC\SubAdmin; use OCA\Provisioning_API\Controller\GroupsController; -use OCP\IGroupManager; +use OCP\IConfig; use OCP\ILogger; use OCP\IRequest; use OCP\IUser; +use OCP\IUserManager; use OCP\IUserSession; class GroupsControllerTest extends \Test\TestCase { - /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + + /** @var IRequest|PHPUnit_Framework_MockObject_MockObject */ + protected $request; + /** @var IUserManager|PHPUnit_Framework_MockObject_MockObject */ + protected $userManager; + /** @var IConfig|PHPUnit_Framework_MockObject_MockObject */ + protected $config; + /** @var Manager|PHPUnit_Framework_MockObject_MockObject */ protected $groupManager; - /** @var IUserSession|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IUserSession|PHPUnit_Framework_MockObject_MockObject */ protected $userSession; - /** @var \OC\SubAdmin|\PHPUnit_Framework_MockObject_MockObject */ - protected $subAdminManager; + /** @var AccountManager|PHPUnit_Framework_MockObject_MockObject */ + protected $accountManager; + /** @var ILogger|PHPUnit_Framework_MockObject_MockObject */ + protected $logger; - /** @var GroupsController */ + /** @var GroupsController|PHPUnit_Framework_MockObject_MockObject */ protected $api; protected function setUp() { parent::setUp(); - $this->subAdminManager = $this->getMockBuilder('OC\SubAdmin') - ->disableOriginalConstructor() - ->getMock(); + $this->request = $this->createMock(IRequest::class); + $this->userManager = $this->createMock(IUserManager::class); + $this->config = $this->createMock(IConfig::class); + $this->groupManager = $this->createMock(Manager::class); + $this->userSession = $this->createMock(IUserSession::class); + $this->accountManager = $this->createMock(AccountManager::class); + $this->logger = $this->createMock(ILogger::class); + + $this->subAdminManager = $this->createMock(SubAdmin::class); - $this->groupManager = $this->getMockBuilder('OC\Group\Manager') - ->disableOriginalConstructor() - ->getMock(); $this->groupManager - ->method('getSubAdmin') - ->willReturn($this->subAdminManager); - - $this->userSession = $this->getMockBuilder(IUserSession::class) - ->disableOriginalConstructor() + ->method('getSubAdmin') + ->willReturn($this->subAdminManager); + + $this->api = $this->getMockBuilder(GroupsController::class) + ->setConstructorArgs([ + 'provisioning_api', + $this->request, + $this->userManager, + $this->config, + $this->groupManager, + $this->userSession, + $this->accountManager, + $this->logger + ]) + ->setMethods(['fillStorageInfo']) ->getMock(); - $request = $this->getMockBuilder(IRequest::class) - ->disableOriginalConstructor() - ->getMock(); - - $logger = $this->createMock(ILogger::class); - - $this->api = new GroupsController( - 'provisioning_api', - $request, - $this->groupManager, - $this->userSession, - $logger - ); } /** @@ -141,10 +154,10 @@ class GroupsControllerTest extends \Test\TestCase { public function dataGetGroups() { return [ - [null, null, null], - ['foo', null, null], - [null, 1, null], - [null, null, 2], + [null, 0, 0], + ['foo', 0, 0], + [null, 1, 0], + [null, 0, 2], ['foo', 1, 2], ]; } @@ -224,7 +237,7 @@ class GroupsControllerTest extends \Test\TestCase { /** * @expectedException \OCP\AppFramework\OCS\OCSException - * @expectedExceptionCode 997 + * @expectedExceptionCode 403 */ public function testGetGroupAsIrrelevantSubadmin() { $group = $this->createGroup('group'); @@ -269,7 +282,7 @@ class GroupsControllerTest extends \Test\TestCase { /** * @expectedException \OCP\AppFramework\OCS\OCSException - * @expectedExceptionCode 998 + * @expectedExceptionCode 404 * @expectedExceptionMessage The requested group could not be found */ public function testGetGroupNonExisting() { diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php index 3f2cf3b1105..6959f16f5cb 100644 --- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php +++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php @@ -640,8 +640,8 @@ class UsersControllerTest extends TestCase { /** * @expectedException \OCP\AppFramework\OCS\OCSException - * @expectedExceptionCode 998 - * @expectedExceptionMessage The requested user could not be found + * @expectedExceptionCode 404 + * @expectedExceptionMessage User does not exist */ public function testGetUserTargetDoesNotExist() { $loggedInUser = $this->getMockBuilder(IUser::class) @@ -732,7 +732,7 @@ class UsersControllerTest extends TestCase { ->expects($this->at(0)) ->method('getUserValue') ->with('UID', 'core', 'enabled', 'true') - ->will($this->returnValue('true')); + ->will($this->returnValue('true')); $this->config ->expects($this->at(1)) ->method('getUserValue') @@ -2394,7 +2394,7 @@ class UsersControllerTest extends TestCase { ->disableOriginalConstructor()->getMock(); $subAdminManager ->expects($this->once()) - ->method('isSubAdminofGroup') + ->method('isSubAdminOfGroup') ->with($loggedInUser, $targetGroup) ->will($this->returnValue(true)); $this->groupManager @@ -2445,7 +2445,7 @@ class UsersControllerTest extends TestCase { ->disableOriginalConstructor()->getMock(); $subAdminManager ->expects($this->once()) - ->method('isSubAdminofGroup') + ->method('isSubAdminOfGroup') ->with($loggedInUser, $targetGroup) ->will($this->returnValue(true)); $this->groupManager @@ -2818,7 +2818,7 @@ class UsersControllerTest extends TestCase { /** * @expectedException \OCP\AppFramework\OCS\OCSException - * @expectedExceptionCode 101 + * @expectedExceptionCode 404 * @expectedExceptionMessage User does not exist */ public function testGetUserSubAdminGroupsNotExistingTargetUser() { diff --git a/apps/systemtags/l10n/he.js b/apps/systemtags/l10n/he.js index 6a7d32cde10..e1fb3cc314f 100644 --- a/apps/systemtags/l10n/he.js +++ b/apps/systemtags/l10n/he.js @@ -2,28 +2,44 @@ OC.L10N.register( "systemtags", { "Tags" : "תגיות", + "Update" : "עדכון", + "Create" : "יצירה", + "Select tag…" : "בחירת תגית…", "Tagged files" : "קבצים שתויגו", "Select tags to filter by" : "תגיות נבחרות מסוננות על ידי", + "No tags found" : "לא נמצאו תגיות", "Please select tags to filter by" : "יש לבחור תגיות שיסוננו על ידי", "No files found for the selected tags" : "לא אותרו קבצים לתגיות הנבחרות", - "<strong>System tags</strong> for a file have been modified" : "<strong>תגיות מערכת</strong> שהשתנו עבור קובץ", - "You assigned system tag %3$s" : "שייכת תגית מערכת %3$s", - "%1$s assigned system tag %3$s" : "%1$s שייך/שייכה תגית מערכת %3$s", - "You unassigned system tag %3$s" : "הסרת שיוך של תגית מערכת %3$s", - "%1$s unassigned system tag %3$s" : "%1$s הסיר/ה שיוך תגית מערכת %3$s", - "You created system tag %2$s" : "יצרת תגית מערכת %2$s", + "Added system tag %1$s" : "נוספה תגית מערכת %1$s", + "Added system tag {systemtag}" : "נוספה תגית מערכת {systemtag}", + "%1$s added system tag %2$s" : "תגית המערכת %2$s נוספה על ידי %1$s", + "{actor} added system tag {systemtag}" : "תגית המערכת {systemtag} נוספה על ידי {actor}", + "Removed system tag %1$s" : "תגית המערכת %1$s הוסרה", + "Removed system tag {systemtag}" : "תגית המערכת {systemtag} הוסרה", + "%1$s removed system tag %2$s" : "תגית המערכת %2$s הוסרה על ידי %1$s", + "{actor} removed system tag {systemtag}" : "תגית המערכת {systemtag} הוסרה על ידי {actor}", + "You created system tag %1$s" : "יצרת את תגית המערכת %1$s", + "You created system tag {systemtag}" : "יצרת את תגית המערכת {systemtag}", "%1$s created system tag %2$s" : "%1$s יצר/יצרה תגית מערכת %2$s", - "You deleted system tag %2$s" : "מחקת תגית מערכת %2$s", + "{actor} created system tag {systemtag}" : "תגית המערכת {systemtag} נוצרה על ידי {actor}", + "You deleted system tag %1$s" : "מחקת את תגית המערכת %1$s", + "You deleted system tag {systemtag}" : "מחקת את תגית המערכת {systemtag}", "%1$s deleted system tag %2$s" : "%1$s מחק/ה תגית מערכת %2$s", - "You updated system tag %3$s to %2$s" : "עדכנת תגית מערכת %3$s ל- %2$s", + "{actor} deleted system tag {systemtag}" : "תגית המערכת {systemtag} נמחקה על ידי {actor}", "%1$s updated system tag %3$s to %2$s" : "%1$s עדכן/עדכנה תגית מערכת %3$s ל- %2$s", - "You assigned system tag %3$s to %2$s" : "שייכת תגית מערכת %3$s ל- %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s שייך/שייכה תגית מערכת %3$s ל- %2$s", - "You unassigned system tag %3$s from %2$s" : "הסרת שיוך של תגית מערכת %3$s מ- %2$s", - "%1$s unassigned system tag %3$s from %2$s" : "%1$s הסיר/ה שיוך תגית מערכת %3$s מ- %2$s", + "You added system tag %2$s to %1$s" : "הוספת את תגית המערכת %2$s אל %1$s", "%s (restricted)" : "%s (מוגבל)", "%s (invisible)" : "%s (נסתר)", + "<strong>System tags</strong> for a file have been modified" : "<strong>תגיות מערכת</strong> שהשתנו עבור קובץ", + "Collaborative tags" : "תגיות שיתופיות", + "Create and edit collaborative tags. These tags affect all users." : "יצירה ועריכה של תגיות שיתופיות. תגיות אלו משפיעות על כל המשתמשים.", + "Select tag …" : "מחיקת תגית…", "Name" : "שם", + "Delete" : "מחיקה", + "Public" : "ציבורית", + "Restricted" : "מוגבלת", + "Invisible" : "נסתרת", + "Reset" : "איפוס", "No files in here" : "אין כאן קבצים", "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו", "Size" : "גודל", diff --git a/apps/systemtags/l10n/he.json b/apps/systemtags/l10n/he.json index 0d05d252f7e..02a4e1d6708 100644 --- a/apps/systemtags/l10n/he.json +++ b/apps/systemtags/l10n/he.json @@ -1,27 +1,43 @@ { "translations": { "Tags" : "תגיות", + "Update" : "עדכון", + "Create" : "יצירה", + "Select tag…" : "בחירת תגית…", "Tagged files" : "קבצים שתויגו", "Select tags to filter by" : "תגיות נבחרות מסוננות על ידי", + "No tags found" : "לא נמצאו תגיות", "Please select tags to filter by" : "יש לבחור תגיות שיסוננו על ידי", "No files found for the selected tags" : "לא אותרו קבצים לתגיות הנבחרות", - "<strong>System tags</strong> for a file have been modified" : "<strong>תגיות מערכת</strong> שהשתנו עבור קובץ", - "You assigned system tag %3$s" : "שייכת תגית מערכת %3$s", - "%1$s assigned system tag %3$s" : "%1$s שייך/שייכה תגית מערכת %3$s", - "You unassigned system tag %3$s" : "הסרת שיוך של תגית מערכת %3$s", - "%1$s unassigned system tag %3$s" : "%1$s הסיר/ה שיוך תגית מערכת %3$s", - "You created system tag %2$s" : "יצרת תגית מערכת %2$s", + "Added system tag %1$s" : "נוספה תגית מערכת %1$s", + "Added system tag {systemtag}" : "נוספה תגית מערכת {systemtag}", + "%1$s added system tag %2$s" : "תגית המערכת %2$s נוספה על ידי %1$s", + "{actor} added system tag {systemtag}" : "תגית המערכת {systemtag} נוספה על ידי {actor}", + "Removed system tag %1$s" : "תגית המערכת %1$s הוסרה", + "Removed system tag {systemtag}" : "תגית המערכת {systemtag} הוסרה", + "%1$s removed system tag %2$s" : "תגית המערכת %2$s הוסרה על ידי %1$s", + "{actor} removed system tag {systemtag}" : "תגית המערכת {systemtag} הוסרה על ידי {actor}", + "You created system tag %1$s" : "יצרת את תגית המערכת %1$s", + "You created system tag {systemtag}" : "יצרת את תגית המערכת {systemtag}", "%1$s created system tag %2$s" : "%1$s יצר/יצרה תגית מערכת %2$s", - "You deleted system tag %2$s" : "מחקת תגית מערכת %2$s", + "{actor} created system tag {systemtag}" : "תגית המערכת {systemtag} נוצרה על ידי {actor}", + "You deleted system tag %1$s" : "מחקת את תגית המערכת %1$s", + "You deleted system tag {systemtag}" : "מחקת את תגית המערכת {systemtag}", "%1$s deleted system tag %2$s" : "%1$s מחק/ה תגית מערכת %2$s", - "You updated system tag %3$s to %2$s" : "עדכנת תגית מערכת %3$s ל- %2$s", + "{actor} deleted system tag {systemtag}" : "תגית המערכת {systemtag} נמחקה על ידי {actor}", "%1$s updated system tag %3$s to %2$s" : "%1$s עדכן/עדכנה תגית מערכת %3$s ל- %2$s", - "You assigned system tag %3$s to %2$s" : "שייכת תגית מערכת %3$s ל- %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s שייך/שייכה תגית מערכת %3$s ל- %2$s", - "You unassigned system tag %3$s from %2$s" : "הסרת שיוך של תגית מערכת %3$s מ- %2$s", - "%1$s unassigned system tag %3$s from %2$s" : "%1$s הסיר/ה שיוך תגית מערכת %3$s מ- %2$s", + "You added system tag %2$s to %1$s" : "הוספת את תגית המערכת %2$s אל %1$s", "%s (restricted)" : "%s (מוגבל)", "%s (invisible)" : "%s (נסתר)", + "<strong>System tags</strong> for a file have been modified" : "<strong>תגיות מערכת</strong> שהשתנו עבור קובץ", + "Collaborative tags" : "תגיות שיתופיות", + "Create and edit collaborative tags. These tags affect all users." : "יצירה ועריכה של תגיות שיתופיות. תגיות אלו משפיעות על כל המשתמשים.", + "Select tag …" : "מחיקת תגית…", "Name" : "שם", + "Delete" : "מחיקה", + "Public" : "ציבורית", + "Restricted" : "מוגבלת", + "Invisible" : "נסתרת", + "Reset" : "איפוס", "No files in here" : "אין כאן קבצים", "No entries found in this folder" : "לא נמצאו כניסות לתיקייה זו", "Size" : "גודל", diff --git a/apps/theming/l10n/en_GB.js b/apps/theming/l10n/en_GB.js index 211eb6dccc1..c9ca7012553 100644 --- a/apps/theming/l10n/en_GB.js +++ b/apps/theming/l10n/en_GB.js @@ -20,6 +20,7 @@ OC.L10N.register( "A PHP extension stopped the file upload" : "A PHP extension stopped the file upload", "No file uploaded" : "No file uploaded", "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme. Theming app settings might be overwritten by that." : "You are already using a custom theme. Theming app settings might be overwritten by that.", "Theming" : "Theming", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", "Name" : "Name", diff --git a/apps/theming/l10n/en_GB.json b/apps/theming/l10n/en_GB.json index 21c26cb1c2f..770c5f2a323 100644 --- a/apps/theming/l10n/en_GB.json +++ b/apps/theming/l10n/en_GB.json @@ -18,6 +18,7 @@ "A PHP extension stopped the file upload" : "A PHP extension stopped the file upload", "No file uploaded" : "No file uploaded", "Unsupported image type" : "Unsupported image type", + "You are already using a custom theme. Theming app settings might be overwritten by that." : "You are already using a custom theme. Theming app settings might be overwritten by that.", "Theming" : "Theming", "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Theming makes it possible to easily customise the look and feel of your instance and supported clients. This will be visible for all users.", "Name" : "Name", diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js index cb2fa08f604..464acad9c49 100644 --- a/apps/theming/l10n/nb.js +++ b/apps/theming/l10n/nb.js @@ -13,8 +13,11 @@ OC.L10N.register( "The file was uploaded" : "Filen ble lastet opp", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The file was only partially uploaded" : "Filen ble kun delvis nedlastet", "No file was uploaded" : "Ingen filer ble lastet opp", "Missing a temporary folder" : "Mangler midlertidig mappe", + "Could not write file to disk" : "Kunne ikke skrive fil til disk", + "A PHP extension stopped the file upload" : "A PHP-utvidelse stoppet filopplastingen", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "Theming" : "Draktvalg", diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json index b23bbdcfe95..e6f7ac32f4a 100644 --- a/apps/theming/l10n/nb.json +++ b/apps/theming/l10n/nb.json @@ -11,8 +11,11 @@ "The file was uploaded" : "Filen ble lastet opp", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The file was only partially uploaded" : "Filen ble kun delvis nedlastet", "No file was uploaded" : "Ingen filer ble lastet opp", "Missing a temporary folder" : "Mangler midlertidig mappe", + "Could not write file to disk" : "Kunne ikke skrive fil til disk", + "A PHP extension stopped the file upload" : "A PHP-utvidelse stoppet filopplastingen", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "Theming" : "Draktvalg", diff --git a/apps/updatenotification/l10n/nb.js b/apps/updatenotification/l10n/nb.js index bf6c7563447..361ea3c65cb 100644 --- a/apps/updatenotification/l10n/nb.js +++ b/apps/updatenotification/l10n/nb.js @@ -11,6 +11,7 @@ OC.L10N.register( "Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:", "Only notification for app updates are available." : "Kun varsler for app oppdateringer er tilgjengelig.", "The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av tjeneren.", + "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>", "Checked on {lastCheckedDate}" : "Sist sjekket {lastCheckedDate}", "Could not start updater, please try the manual update" : "Kunne ikke starte oppdateringen, prøv å oppdatere manuelt", "Update notifications" : "Oppdateringsvarsel", diff --git a/apps/updatenotification/l10n/nb.json b/apps/updatenotification/l10n/nb.json index a56db6331db..00946c3a317 100644 --- a/apps/updatenotification/l10n/nb.json +++ b/apps/updatenotification/l10n/nb.json @@ -9,6 +9,7 @@ "Notify members of the following groups about available updates:" : "Informer medlemmene i følgende grupper om tilgjengelig oppdateringer:", "Only notification for app updates are available." : "Kun varsler for app oppdateringer er tilgjengelig.", "The selected update channel does not support updates of the server." : "Den valgte oppdateringskanalen tilbyr ikke oppdateringer av tjeneren.", + "A new version is available: <strong>{newVersionString}</strong>" : "En ny versjon er tilgjengelig: <strong>{newVersionString}</strong>", "Checked on {lastCheckedDate}" : "Sist sjekket {lastCheckedDate}", "Could not start updater, please try the manual update" : "Kunne ikke starte oppdateringen, prøv å oppdatere manuelt", "Update notifications" : "Oppdateringsvarsel", diff --git a/apps/user_ldap/ajax/clearMappings.php b/apps/user_ldap/ajax/clearMappings.php index 01b6b7f0ef2..8e2d63e3eb2 100644 --- a/apps/user_ldap/ajax/clearMappings.php +++ b/apps/user_ldap/ajax/clearMappings.php @@ -33,13 +33,23 @@ use OCA\User_LDAP\Mapping\GroupMapping; $subject = (string)$_POST['ldap_clear_mapping']; $mapping = null; -if($subject === 'user') { - $mapping = new UserMapping(\OC::$server->getDatabaseConnection()); -} else if($subject === 'group') { - $mapping = new GroupMapping(\OC::$server->getDatabaseConnection()); -} try { - if(is_null($mapping) || !$mapping->clear()) { + if($subject === 'user') { + $mapping = new UserMapping(\OC::$server->getDatabaseConnection()); + $result = $mapping->clearCb( + function ($uid) { + \OC::$server->getUserManager()->emit('\OC\User', 'preUnassignedUserId', [$uid]); + }, + function ($uid) { + \OC::$server->getUserManager()->emit('\OC\User', 'postUnassignedUserId', [$uid]); + } + ); + } else if($subject === 'group') { + $mapping = new GroupMapping(\OC::$server->getDatabaseConnection()); + $result = $mapping->clear(); + } + + if($mapping === null || !$result) { $l = \OC::$server->getL10N('user_ldap'); throw new \Exception($l->t('Failed to clear the mappings.')); } diff --git a/apps/user_ldap/l10n/ast.js b/apps/user_ldap/l10n/ast.js index b919fc52845..71a025ffe65 100644 --- a/apps/user_ldap/l10n/ast.js +++ b/apps/user_ldap/l10n/ast.js @@ -155,11 +155,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributu UUID pa usuarios:", "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:", "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nomes d'usuariu usense p'atroxar (meta) datos. En cuenta d'identificar y reconocer usuarios, cada usuariu de LDAP tendrá'l so nome d'usuariu internu polo que rique un mapéu dende'l so nome d'usuariu al usuariu de LDAP. El nome d'usuariu creáu mapeáse al UUID del usuariu de LDAP. Amás cacheamos tamién la DN p'amenorgar la intecractividá de LDAP, pero ensin usala pa la identificación. Si la DN camuda, atoparanse los cambios. L'usu internu del nome d'usuariu ye perdayures. ", "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP", " entries available within the provided Base DN" : "entraes disponibles dientro la Base DN proporcionada", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avisu:</b> Les apps user_ldap y user_webdavauth son incompatibles. Pues esperimentar un comportamientu inesperáu. Entruga al to alministrador de sistemes pa desactivar una d'elles." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avisu:</b> Les apps user_ldap y user_webdavauth son incompatibles. Pues esperimentar un comportamientu inesperáu. Entruga al to alministrador de sistemes pa desactivar una d'elles.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nomes d'usuariu usense p'atroxar (meta) datos. En cuenta d'identificar y reconocer usuarios, cada usuariu de LDAP tendrá'l so nome d'usuariu internu polo que rique un mapéu dende'l so nome d'usuariu al usuariu de LDAP. El nome d'usuariu creáu mapeáse al UUID del usuariu de LDAP. Amás cacheamos tamién la DN p'amenorgar la intecractividá de LDAP, pero ensin usala pa la identificación. Si la DN camuda, atoparanse los cambios. L'usu internu del nome d'usuariu ye perdayures. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/ast.json b/apps/user_ldap/l10n/ast.json index e9e44a1f15f..6ab0cda853b 100644 --- a/apps/user_ldap/l10n/ast.json +++ b/apps/user_ldap/l10n/ast.json @@ -153,11 +153,11 @@ "UUID Attribute for Users:" : "Atributu UUID pa usuarios:", "UUID Attribute for Groups:" : "Atributu UUID pa Grupos:", "Username-LDAP User Mapping" : "Asignación del Nome d'usuariu LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nomes d'usuariu usense p'atroxar (meta) datos. En cuenta d'identificar y reconocer usuarios, cada usuariu de LDAP tendrá'l so nome d'usuariu internu polo que rique un mapéu dende'l so nome d'usuariu al usuariu de LDAP. El nome d'usuariu creáu mapeáse al UUID del usuariu de LDAP. Amás cacheamos tamién la DN p'amenorgar la intecractividá de LDAP, pero ensin usala pa la identificación. Si la DN camuda, atoparanse los cambios. L'usu internu del nome d'usuariu ye perdayures. ", "Clear Username-LDAP User Mapping" : "Llimpiar l'asignación de los Nomes d'usuariu de los usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Llimpiar l'asignación de los Nomes de grupu de los grupos de LDAP", " entries available within the provided Base DN" : "entraes disponibles dientro la Base DN proporcionada", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avisu:</b> Les apps user_ldap y user_webdavauth son incompatibles. Pues esperimentar un comportamientu inesperáu. Entruga al to alministrador de sistemes pa desactivar una d'elles." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avisu:</b> Les apps user_ldap y user_webdavauth son incompatibles. Pues esperimentar un comportamientu inesperáu. Entruga al to alministrador de sistemes pa desactivar una d'elles.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nomes d'usuariu usense p'atroxar (meta) datos. En cuenta d'identificar y reconocer usuarios, cada usuariu de LDAP tendrá'l so nome d'usuariu internu polo que rique un mapéu dende'l so nome d'usuariu al usuariu de LDAP. El nome d'usuariu creáu mapeáse al UUID del usuariu de LDAP. Amás cacheamos tamién la DN p'amenorgar la intecractividá de LDAP, pero ensin usala pa la identificación. Si la DN camuda, atoparanse los cambios. L'usu internu del nome d'usuariu ye perdayures. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js index fa3c76b3f51..09307c37f14 100644 --- a/apps/user_ldap/l10n/cs.js +++ b/apps/user_ldap/l10n/cs.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID atribut pro uživatele:", "UUID Attribute for Groups:" : "UUID atribut pro skupiny:", "Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAPu", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi.", "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu", "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu", " entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi." }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json index e3e8244299a..2fe6368681d 100644 --- a/apps/user_ldap/l10n/cs.json +++ b/apps/user_ldap/l10n/cs.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID atribut pro uživatele:", "UUID Attribute for Groups:" : "UUID atribut pro skupiny:", "Username-LDAP User Mapping" : "Mapování uživatelských jmen z LDAPu", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi.", "Clear Username-LDAP User Mapping" : "Zrušit mapování uživatelských jmen LDAPu", "Clear Groupname-LDAP Group Mapping" : "Zrušit mapování názvů skupin LDAPu", " entries available within the provided Base DN" : "záznamů dostupných v zadané Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím svého správce systému o zakázání jedné z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Uživatelská jména jsou používána pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý LDAP uživatel interní uživatelské jméno. To vyžaduje mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. DN informace je navíc udržována v paměti pro snížení interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Interní uživatelské jméno se používá celé. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické pro každou konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, ale pouze v testovací nebo experimentální fázi." },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/da.js b/apps/user_ldap/l10n/da.js index fe85f8c9d6e..012faf64a51 100644 --- a/apps/user_ldap/l10n/da.js +++ b/apps/user_ldap/l10n/da.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-attribut for brugere:", "UUID Attribute for Groups:" : "UUID-attribut for grupper:", "Username-LDAP User Mapping" : "Kortlægning mellem brugernavn og LDAP-bruger", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie.", "Clear Username-LDAP User Mapping" : "Ryd kortlægning mellem brugernavn og LDAP-bruger", "Clear Groupname-LDAP Group Mapping" : "Ryd kortlægning mellem gruppenavn og LDAP-gruppe", " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/da.json b/apps/user_ldap/l10n/da.json index 12f88c9d9b1..a63c58a97f4 100644 --- a/apps/user_ldap/l10n/da.json +++ b/apps/user_ldap/l10n/da.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID-attribut for brugere:", "UUID Attribute for Groups:" : "UUID-attribut for grupper:", "Username-LDAP User Mapping" : "Kortlægning mellem brugernavn og LDAP-bruger", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie.", "Clear Username-LDAP User Mapping" : "Ryd kortlægning mellem brugernavn og LDAP-bruger", "Clear Groupname-LDAP Group Mapping" : "Ryd kortlægning mellem gruppenavn og LDAP-gruppe", " entries available within the provided Base DN" : "poster tilgængelige inden for det angivne Base DN.", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Apps'ene user_ldap og user_webdavauth er ikke kompatible. Du kan opleve uventet adfærd. Spørg venligst din systemadministrator om at slå én af dem fra.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brugernavne bruges til at lagre og tildele (meta)data. For at kunne identificere og genkende brugere præcist, så vil hver LDAP-bruger have et internt brugernavn. Det oprettede brugernavn kortlægges til UUID'et for LDAP-brugeren. I tillæg mellemlagres DN'et for at mindske LDAP-interaktioner, men det benyttes ikke til identifikation. Hvis DN'et ændres, så vil ændringerne blive registreret. Det interne brugernavn anvendes overalt. Hvis kortlægningerne ryddes, så vil der være rester overalt. Rydning af kortlægningerne er ikke konfigurationssensitivt - det påvirker alle LDAP-konfigurationer! Ryd aldrig kortlægningerne i et produktionsmiljø, kun i et teststadie eller eksperimentelt stadie." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/de.js b/apps/user_ldap/l10n/de.js index eef794d556f..fae34127e5a 100644 --- a/apps/user_ldap/l10n/de.js +++ b/apps/user_ldap/l10n/de.js @@ -184,11 +184,12 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-Attribute für Benutzer:", "UUID Attribute for Groups:" : "UUID-Attribute für Gruppen:", "Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um Metadaten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen", "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen", " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/de.json b/apps/user_ldap/l10n/de.json index e7d24f09df0..77dc6c56bca 100644 --- a/apps/user_ldap/l10n/de.json +++ b/apps/user_ldap/l10n/de.json @@ -182,11 +182,12 @@ "UUID Attribute for Users:" : "UUID-Attribute für Benutzer:", "UUID Attribute for Groups:" : "UUID-Attribute für Gruppen:", "Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um Metadaten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung löschen", "Clear Groupname-LDAP Group Mapping" : "LDAP-Gruppennamenzuordnung löschen", " entries available within the provided Base DN" : "Einträge in der Vorgesehenen Base DN verfügbar", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktiere deinen Systemadministator und bitte ihn um die Deaktivierung einer der beiden Anwendungen.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Die Benutzernamen werden genutzt, um (Meta-)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Lösche niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/de_DE.js b/apps/user_ldap/l10n/de_DE.js index f0b95cac73f..2f2ea022d85 100644 --- a/apps/user_ldap/l10n/de_DE.js +++ b/apps/user_ldap/l10n/de_DE.js @@ -184,11 +184,12 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-Attribute für Benutzer:", "UUID Attribute for Groups:" : "UUID-Attribute für Gruppen:", "Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von Metadaten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung", "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung", " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/de_DE.json b/apps/user_ldap/l10n/de_DE.json index 9e05ccc3022..489d09adadb 100644 --- a/apps/user_ldap/l10n/de_DE.json +++ b/apps/user_ldap/l10n/de_DE.json @@ -182,11 +182,12 @@ "UUID Attribute for Users:" : "UUID-Attribute für Benutzer:", "UUID Attribute for Groups:" : "UUID-Attribute für Gruppen:", "Username-LDAP User Mapping" : "LDAP-Benutzernamenzuordnung", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von Metadaten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" : "Lösche LDAP-Benutzernamenzuordnung", "Clear Groupname-LDAP Group Mapping" : "Lösche LDAP-Gruppennamenzuordnung", " entries available within the provided Base DN" : "Einträge in der angegebenen Base DN verfügbar", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann deshalb zu unerwartetem Systemverhalten kommen. Bitte kontaktieren Sie Ihren Systemadministator und bitten Sie um die Deaktivierung einer der beiden Anwendungen.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Benutzernamen dienen zum Speichern und Zuweisen von (Meta-)Daten. Um Benutzer eindeutig zu identifizieren und zu erkennen, besitzt jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung des jeweiligen Benutzernamens zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzers zugeordnet. Darüber hinaus wird der DN auch zwischengespeichert, um die Interaktion über LDAP zu reduzieren, was aber nicht zur Identifikation dient. Ändert sich der DN, werden die Änderungen gefunden. Der interne Benutzername wird durchgängig verwendet. Ein Löschen der Zuordnungen führt zum systemweiten Verbleib von Restdaten. Es bleibt nicht auf eine einzelne Konfiguration beschränkt, sondern wirkt sich auf alle LDAP-Konfigurationen aus! Löschen Sie die Zuordnungen nie innerhalb einer Produktivumgebung, sondern nur in einer Test- oder Experimentierumgebung." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/el.js b/apps/user_ldap/l10n/el.js index 8e1937df7c9..fe3c19a2262 100644 --- a/apps/user_ldap/l10n/el.js +++ b/apps/user_ldap/l10n/el.js @@ -160,11 +160,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Χαρακτηριστικό UUID για Χρήστες:", "UUID Attribute for Groups:" : "Χαρακτηριστικό UUID για Ομάδες:", "Username-LDAP User Mapping" : "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο.", "Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη", "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας", " entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/el.json b/apps/user_ldap/l10n/el.json index e311b3d8632..1f29f1162ad 100644 --- a/apps/user_ldap/l10n/el.json +++ b/apps/user_ldap/l10n/el.json @@ -158,11 +158,11 @@ "UUID Attribute for Users:" : "Χαρακτηριστικό UUID για Χρήστες:", "UUID Attribute for Groups:" : "Χαρακτηριστικό UUID για Ομάδες:", "Username-LDAP User Mapping" : "Αντιστοίχιση Χρηστών Όνομα Χρήστη-LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο.", "Clear Username-LDAP User Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Χρήστη LDAP-Χρήστη", "Clear Groupname-LDAP Group Mapping" : "Διαγραφή αντιστοίχησης Ονόματος Ομάδας-LDAP Ομάδας", " entries available within the provided Base DN" : "διαθέσιμες καταχωρήσεις εντός του δηλωθέντος ", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Τα ονόματα χρηστών χρησιμοποιούνται για την αποθήκευση και τον προσδιορισμό των (μετα) δεδομένων. Προκειμένου να προσδιοριστούν με ακρίβεια και να αναγνωριστούν οι χρήστες, κάθε χρήστης LDAP θα έχει ένα εσωτερικό όνομα. Αυτό απαιτεί μια αντιστοίχιση του ονόματος χρήστη με το χρήστη LDAP. Το όνομα χρήστη που δημιουργήθηκαν αντιστοιχίζεται στην UUID του χρήστη LDAP. Επιπροσθέτως, το DN αποθηκεύεται προσωρινά (cache) ώστε να μειωθεί η αλληλεπίδραση LDAP, αλλά δεν χρησιμοποιείται για την ταυτοποίηση. Αν το DN αλλάξει, οι αλλαγές θα εντοπιστούν. Το εσωτερικό όνομα χρήστη χρησιμοποιείται παντού. Η εκκαθάριση των αντιστοιχίσεων θα αφήσει υπολείμματα παντού. Η εκκαθάριση των αντιστοιχίσεων δεν επηρεάζεται από τη διαμόρφωση, επηρεάζει όλες τις διαμορφώσεις LDAP! Μην διαγράψετε ποτέ τις αντιστοιχίσεις σε ένα λειτουργικό περιβάλλον παρά μόνο σε δοκιμές ή σε πειραματικό στάδιο." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/en_GB.js b/apps/user_ldap/l10n/en_GB.js index 5f2ca6dfa3b..a56385b7797 100644 --- a/apps/user_ldap/l10n/en_GB.js +++ b/apps/user_ldap/l10n/en_GB.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID Attribute for Users:", "UUID Attribute for Groups:" : "UUID Attribute for Groups:", "Username-LDAP User Mapping" : "Username-LDAP User Mapping", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage.", "Clear Username-LDAP User Mapping" : "Clear Username-LDAP User Mapping", "Clear Groupname-LDAP Group Mapping" : "Clear Groupname-LDAP Group Mapping", " entries available within the provided Base DN" : " entries available within the provided Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/en_GB.json b/apps/user_ldap/l10n/en_GB.json index f45e625b33a..69c29fec259 100644 --- a/apps/user_ldap/l10n/en_GB.json +++ b/apps/user_ldap/l10n/en_GB.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "UUID Attribute for Users:", "UUID Attribute for Groups:" : "UUID Attribute for Groups:", "Username-LDAP User Mapping" : "Username-LDAP User Mapping", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage.", "Clear Username-LDAP User Mapping" : "Clear Username-LDAP User Mapping", "Clear Groupname-LDAP Group Mapping" : "Clear Groupname-LDAP Group Mapping", " entries available within the provided Base DN" : " entries available within the provided Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Usernames are used to store and assign (meta) data. In order to precisely identify and recognise users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es.js b/apps/user_ldap/l10n/es.js index f847269a804..ff4ce86846d 100644 --- a/apps/user_ldap/l10n/es.js +++ b/apps/user_ldap/l10n/es.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Asignación del Nombre de usuario de un usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental.", "Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP", " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es.json b/apps/user_ldap/l10n/es.json index 3bf0944ee2e..6d5917e5e64 100644 --- a/apps/user_ldap/l10n/es.json +++ b/apps/user_ldap/l10n/es.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "Atributo UUID para usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Asignación del Nombre de usuario de un usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental.", "Clear Username-LDAP User Mapping" : "Borrar la asignación de los Nombres de usuario de los usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar la asignación de los Nombres de grupo de los grupos de LDAP", " entries available within the provided Base DN" : "entradas disponibles dentro de la BaseDN provista", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pídale a su administrador del sistema que desactive uno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_419.js b/apps/user_ldap/l10n/es_419.js index 5a3d3d29d0d..ab83878f042 100644 --- a/apps/user_ldap/l10n/es_419.js +++ b/apps/user_ldap/l10n/es_419.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_419.json b/apps/user_ldap/l10n/es_419.json index 07497d06ceb..e00c0738526 100644 --- a/apps/user_ldap/l10n/es_419.json +++ b/apps/user_ldap/l10n/es_419.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_AR.js b/apps/user_ldap/l10n/es_AR.js index c45ffc1b9b3..cfddd809572 100644 --- a/apps/user_ldap/l10n/es_AR.js +++ b/apps/user_ldap/l10n/es_AR.js @@ -171,11 +171,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Nombre del usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Nombres de usuario a los Usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos de LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_AR.json b/apps/user_ldap/l10n/es_AR.json index 910c7ac21bd..6a8e7acb79d 100644 --- a/apps/user_ldap/l10n/es_AR.json +++ b/apps/user_ldap/l10n/es_AR.json @@ -169,11 +169,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Nombre del usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Nombres de usuario a los Usuarios LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos de LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Usted puede expermientar comportamientos inesperados. Favor de solicitar a su administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los nombres de usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Nombre de usuario interno. Esto requiere un mapeo del Nombre de usuario al usuario LDAP. El nombre de usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Nombre del usuario interno se usa en todos lados. Limpiar los mapeos dejará sobras en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borre las configuraciones en el ambiente de producción, sólo hágalo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_CL.js b/apps/user_ldap/l10n/es_CL.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_CL.js +++ b/apps/user_ldap/l10n/es_CL.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_CL.json b/apps/user_ldap/l10n/es_CL.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_CL.json +++ b/apps/user_ldap/l10n/es_CL.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_CO.js b/apps/user_ldap/l10n/es_CO.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_CO.js +++ b/apps/user_ldap/l10n/es_CO.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_CO.json b/apps/user_ldap/l10n/es_CO.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_CO.json +++ b/apps/user_ldap/l10n/es_CO.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_CR.js b/apps/user_ldap/l10n/es_CR.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_CR.js +++ b/apps/user_ldap/l10n/es_CR.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_CR.json b/apps/user_ldap/l10n/es_CR.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_CR.json +++ b/apps/user_ldap/l10n/es_CR.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_DO.js b/apps/user_ldap/l10n/es_DO.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_DO.js +++ b/apps/user_ldap/l10n/es_DO.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_DO.json b/apps/user_ldap/l10n/es_DO.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_DO.json +++ b/apps/user_ldap/l10n/es_DO.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_EC.js b/apps/user_ldap/l10n/es_EC.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_EC.js +++ b/apps/user_ldap/l10n/es_EC.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_EC.json b/apps/user_ldap/l10n/es_EC.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_EC.json +++ b/apps/user_ldap/l10n/es_EC.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_GT.js b/apps/user_ldap/l10n/es_GT.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_GT.js +++ b/apps/user_ldap/l10n/es_GT.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_GT.json b/apps/user_ldap/l10n/es_GT.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_GT.json +++ b/apps/user_ldap/l10n/es_GT.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_HN.js b/apps/user_ldap/l10n/es_HN.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_HN.js +++ b/apps/user_ldap/l10n/es_HN.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_HN.json b/apps/user_ldap/l10n/es_HN.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_HN.json +++ b/apps/user_ldap/l10n/es_HN.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_MX.js b/apps/user_ldap/l10n/es_MX.js index 3c7f274aeaf..7d3ccdd314a 100644 --- a/apps/user_ldap/l10n/es_MX.js +++ b/apps/user_ldap/l10n/es_MX.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_MX.json b/apps/user_ldap/l10n/es_MX.json index efa2733f123..6d42d8d082e 100644 --- a/apps/user_ldap/l10n/es_MX.json +++ b/apps/user_ldap/l10n/es_MX.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_NI.js b/apps/user_ldap/l10n/es_NI.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_NI.js +++ b/apps/user_ldap/l10n/es_NI.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_NI.json b/apps/user_ldap/l10n/es_NI.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_NI.json +++ b/apps/user_ldap/l10n/es_NI.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_PA.js b/apps/user_ldap/l10n/es_PA.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_PA.js +++ b/apps/user_ldap/l10n/es_PA.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_PA.json b/apps/user_ldap/l10n/es_PA.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_PA.json +++ b/apps/user_ldap/l10n/es_PA.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_PE.js b/apps/user_ldap/l10n/es_PE.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_PE.js +++ b/apps/user_ldap/l10n/es_PE.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_PE.json b/apps/user_ldap/l10n/es_PE.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_PE.json +++ b/apps/user_ldap/l10n/es_PE.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_PR.js b/apps/user_ldap/l10n/es_PR.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_PR.js +++ b/apps/user_ldap/l10n/es_PR.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_PR.json b/apps/user_ldap/l10n/es_PR.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_PR.json +++ b/apps/user_ldap/l10n/es_PR.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_PY.js b/apps/user_ldap/l10n/es_PY.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_PY.js +++ b/apps/user_ldap/l10n/es_PY.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_PY.json b/apps/user_ldap/l10n/es_PY.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_PY.json +++ b/apps/user_ldap/l10n/es_PY.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_SV.js b/apps/user_ldap/l10n/es_SV.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_SV.js +++ b/apps/user_ldap/l10n/es_SV.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_SV.json b/apps/user_ldap/l10n/es_SV.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_SV.json +++ b/apps/user_ldap/l10n/es_SV.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_UY.js b/apps/user_ldap/l10n/es_UY.js index 69592f61ace..f07057218d0 100644 --- a/apps/user_ldap/l10n/es_UY.js +++ b/apps/user_ldap/l10n/es_UY.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_UY.json b/apps/user_ldap/l10n/es_UY.json index 7ce92b5fc3a..9ced23a2f01 100644 --- a/apps/user_ldap/l10n/es_UY.json +++ b/apps/user_ldap/l10n/es_UY.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. " },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/fr.js b/apps/user_ldap/l10n/fr.js index e8b7c70ac0f..34d81f3569d 100644 --- a/apps/user_ldap/l10n/fr.js +++ b/apps/user_ldap/l10n/fr.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Attribut UUID pour les Utilisateurs :", "UUID Attribute for Groups:" : "Attribut UUID pour les Groupes :", "Username-LDAP User Mapping" : "Association Nom d'utilisateur-Utilisateur LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations.", "Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP", "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP", " entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/fr.json b/apps/user_ldap/l10n/fr.json index 7581e1d0545..e9f4c95dced 100644 --- a/apps/user_ldap/l10n/fr.json +++ b/apps/user_ldap/l10n/fr.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "Attribut UUID pour les Utilisateurs :", "UUID Attribute for Groups:" : "Attribut UUID pour les Groupes :", "Username-LDAP User Mapping" : "Association Nom d'utilisateur-Utilisateur LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations.", "Clear Username-LDAP User Mapping" : "Supprimer l'association utilisateur interne-utilisateur LDAP", "Clear Groupname-LDAP Group Mapping" : "Supprimer l'association nom de groupe-groupe LDAP", " entries available within the provided Base DN" : "entrées disponibles dans le DN de base spécifié", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il en désactive une.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaître précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentations." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/hu.js b/apps/user_ldap/l10n/hu.js index d796670977f..76d8b26857f 100644 --- a/apps/user_ldap/l10n/hu.js +++ b/apps/user_ldap/l10n/hu.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "A felhasználók UUID attribútuma:", "UUID Attribute for Groups:" : "A csoportok UUID attribútuma:", "Username-LDAP User Mapping" : "Felhasználó - LDAP felhasználó hozzárendelés", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban.", "Clear Username-LDAP User Mapping" : "A felhasználó - LDAP felhasználó hozzárendelés törlése", "Clear Groupname-LDAP Group Mapping" : "A csoport - LDAP csoport hozzárendelés törlése", " entries available within the provided Base DN" : "a megadott címtár gyökér alatt elérhető bejegyzések", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Figyelem:</b> 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." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Figyelem:</b> 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.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/hu.json b/apps/user_ldap/l10n/hu.json index 1d0d5184868..87672cadadb 100644 --- a/apps/user_ldap/l10n/hu.json +++ b/apps/user_ldap/l10n/hu.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "A felhasználók UUID attribútuma:", "UUID Attribute for Groups:" : "A csoportok UUID attribútuma:", "Username-LDAP User Mapping" : "Felhasználó - LDAP felhasználó hozzárendelés", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban.", "Clear Username-LDAP User Mapping" : "A felhasználó - LDAP felhasználó hozzárendelés törlése", "Clear Groupname-LDAP Group Mapping" : "A csoport - LDAP csoport hozzárendelés törlése", " entries available within the provided Base DN" : "a megadott címtár gyökér alatt elérhető bejegyzések", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Figyelem:</b> 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." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Figyelem:</b> 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.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "A felhasználónevek adattárolásra és hozzárendelésre (meta) szolgálnak. A felhasználók pontos felismerésére és azonosítására, minden LDAP felhasználóhoz hozzárendelünk egy belső felhaszhálónevet. Ez a felhasználónév LDAP felhasználóhoz rendelését igényli. A létrehozott felhasználónév az LDAP UUID-hez kötődik. Egyben a DN tárolásra kerül az LDAP interakció csökkentésére, de nem használjuk az azonosítás során. Ha a DN változik, a változást megtaláljuk. A belső felhasználónevek újrahasznosításra kerülnek. A leképezés kitörlése mindenfelé maradványokat eredményez. A leképezések törlése nem konfiguráció érzékeny, minden LDAP konfigurációt érint! Soha ne töröld a leképezéseket éles rendszeren, csak tesztelési vagy kísérleti állapotban." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/id.js b/apps/user_ldap/l10n/id.js index 742e5067c58..df238febe6a 100644 --- a/apps/user_ldap/l10n/id.js +++ b/apps/user_ldap/l10n/id.js @@ -141,11 +141,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atribut UUID untuk Pengguna:", "UUID Attribute for Groups:" : "Atribut UUID untuk Grup:", "Username-LDAP User Mapping" : "Pemetaan Pengguna LDAP-Nama pengguna", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nama pengguna digunakan untuk menyimpan dan menetapkan (meta) data. Dalam rangka untuk mengidentifikasi dan mengenali pengguna secara tepat, setiap pengguna LDAP akan memiliki nama pengguna internal. Hal ini memerlukan sebuah pemetaan dari nama pengguna ke pengguna LDAP. Nama pengguna yang dibuat akan dipetakan pada UUID pengguna LDAP. Selain itu, DN akan di cache untuk mengurangi interaksi LDAP, tetapi tidak digunakan untuk identifikasi. Jika DN berubah, perubahan akan ditemukan. Nama pengguna internal digunakan secara menyeluruh. Membersihkan pemetaan akan mempengaruhi semua konfigurasi LDAP! JANGAN PERNAH MENGHAPUS PEMETAAN PADA LINGKUNGAN PRODUKSI, hanya gunakan dalam tahap uji coba dan pengujian.", "Clear Username-LDAP User Mapping" : "Bersihkan Pemetaan Pengguna LDAP-Nama pengguna", "Clear Groupname-LDAP Group Mapping" : "Bersihkan Pemetaan Grup LDAP-Nama grup", " entries available within the provided Base DN" : "entri tersedia didalam Base DN yang diberikan", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Peringatan:</b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami perilaku yang tidak terduga. Silakan minta administrator Anda untuk menonaktifkan salah satunya." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Peringatan:</b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami perilaku yang tidak terduga. Silakan minta administrator Anda untuk menonaktifkan salah satunya.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nama pengguna digunakan untuk menyimpan dan menetapkan (meta) data. Dalam rangka untuk mengidentifikasi dan mengenali pengguna secara tepat, setiap pengguna LDAP akan memiliki nama pengguna internal. Hal ini memerlukan sebuah pemetaan dari nama pengguna ke pengguna LDAP. Nama pengguna yang dibuat akan dipetakan pada UUID pengguna LDAP. Selain itu, DN akan di cache untuk mengurangi interaksi LDAP, tetapi tidak digunakan untuk identifikasi. Jika DN berubah, perubahan akan ditemukan. Nama pengguna internal digunakan secara menyeluruh. Membersihkan pemetaan akan mempengaruhi semua konfigurasi LDAP! JANGAN PERNAH MENGHAPUS PEMETAAN PADA LINGKUNGAN PRODUKSI, hanya gunakan dalam tahap uji coba dan pengujian." }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/id.json b/apps/user_ldap/l10n/id.json index 5dd5b5be60a..e1cd9d7e775 100644 --- a/apps/user_ldap/l10n/id.json +++ b/apps/user_ldap/l10n/id.json @@ -139,11 +139,11 @@ "UUID Attribute for Users:" : "Atribut UUID untuk Pengguna:", "UUID Attribute for Groups:" : "Atribut UUID untuk Grup:", "Username-LDAP User Mapping" : "Pemetaan Pengguna LDAP-Nama pengguna", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nama pengguna digunakan untuk menyimpan dan menetapkan (meta) data. Dalam rangka untuk mengidentifikasi dan mengenali pengguna secara tepat, setiap pengguna LDAP akan memiliki nama pengguna internal. Hal ini memerlukan sebuah pemetaan dari nama pengguna ke pengguna LDAP. Nama pengguna yang dibuat akan dipetakan pada UUID pengguna LDAP. Selain itu, DN akan di cache untuk mengurangi interaksi LDAP, tetapi tidak digunakan untuk identifikasi. Jika DN berubah, perubahan akan ditemukan. Nama pengguna internal digunakan secara menyeluruh. Membersihkan pemetaan akan mempengaruhi semua konfigurasi LDAP! JANGAN PERNAH MENGHAPUS PEMETAAN PADA LINGKUNGAN PRODUKSI, hanya gunakan dalam tahap uji coba dan pengujian.", "Clear Username-LDAP User Mapping" : "Bersihkan Pemetaan Pengguna LDAP-Nama pengguna", "Clear Groupname-LDAP Group Mapping" : "Bersihkan Pemetaan Grup LDAP-Nama grup", " entries available within the provided Base DN" : "entri tersedia didalam Base DN yang diberikan", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Peringatan:</b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami perilaku yang tidak terduga. Silakan minta administrator Anda untuk menonaktifkan salah satunya." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Peringatan:</b> Aplikasi user_ldap dan user_webdavauth tidak kompatibel. Anda mungkin akan mengalami perilaku yang tidak terduga. Silakan minta administrator Anda untuk menonaktifkan salah satunya.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nama pengguna digunakan untuk menyimpan dan menetapkan (meta) data. Dalam rangka untuk mengidentifikasi dan mengenali pengguna secara tepat, setiap pengguna LDAP akan memiliki nama pengguna internal. Hal ini memerlukan sebuah pemetaan dari nama pengguna ke pengguna LDAP. Nama pengguna yang dibuat akan dipetakan pada UUID pengguna LDAP. Selain itu, DN akan di cache untuk mengurangi interaksi LDAP, tetapi tidak digunakan untuk identifikasi. Jika DN berubah, perubahan akan ditemukan. Nama pengguna internal digunakan secara menyeluruh. Membersihkan pemetaan akan mempengaruhi semua konfigurasi LDAP! JANGAN PERNAH MENGHAPUS PEMETAAN PADA LINGKUNGAN PRODUKSI, hanya gunakan dalam tahap uji coba dan pengujian." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/it.js b/apps/user_ldap/l10n/it.js index 16f07625a5f..395c7c202da 100644 --- a/apps/user_ldap/l10n/it.js +++ b/apps/user_ldap/l10n/it.js @@ -184,11 +184,12 @@ OC.L10N.register( "UUID Attribute for Users:" : "Attributo UUID per gli utenti:", "UUID Attribute for Groups:" : "Attributo UUID per i gruppi:", "Username-LDAP User Mapping" : "Associazione Nome utente-Utente LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i metadati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Il nome utente creato. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. Il nome utente creato è associato allo UUID dell'utente LDAP. In aggiunta, il DN viene memorizzato in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.", "Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP", "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP", " entries available within the provided Base DN" : "voci disponibili all'interno del DN base", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/it.json b/apps/user_ldap/l10n/it.json index b6e6cecd302..ca807bdfb2e 100644 --- a/apps/user_ldap/l10n/it.json +++ b/apps/user_ldap/l10n/it.json @@ -182,11 +182,12 @@ "UUID Attribute for Users:" : "Attributo UUID per gli utenti:", "UUID Attribute for Groups:" : "Attributo UUID per i gruppi:", "Username-LDAP User Mapping" : "Associazione Nome utente-Utente LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i metadati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Il nome utente creato. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. Il nome utente creato è associato allo UUID dell'utente LDAP. In aggiunta, il DN viene memorizzato in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test.", "Clear Username-LDAP User Mapping" : "Cancella associazione Nome utente-Utente LDAP", "Clear Groupname-LDAP Group Mapping" : "Cancella associazione Nome gruppo-Gruppo LDAP", " entries available within the provided Base DN" : "voci disponibili all'interno del DN base", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avviso:</b> le applicazioni user_ldap e user_webdavauth sono incompatibili. Potresti riscontrare un comportamento inatteso. Chiedi al tuo amministratore di sistema di disabilitarne una.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "I nomi utente sono utilizzati per archiviare e assegnare i (meta) dati. Per identificare con precisione e riconoscere gli utenti, ogni utente LDAP avrà un nome utente interno. Ciò richiede un'associazione tra il nome utente e l'utente LDAP. In aggiunta, il DN viene mantenuto in cache per ridurre l'interazione con LDAP, ma non è utilizzato per l'identificazione. Se il DN cambia, le modifiche saranno rilevate. Il nome utente interno è utilizzato dappertutto. La cancellazione delle associazioni lascerà tracce residue ovunque e interesserà tutta la configurazione LDAP. Non cancellare mai le associazioni in un ambiente di produzione, ma solo in una fase sperimentale o di test." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ja.js b/apps/user_ldap/l10n/ja.js index 13df333c202..4ea8050205d 100644 --- a/apps/user_ldap/l10n/ja.js +++ b/apps/user_ldap/l10n/ja.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "ユーザーのUUID属性:", "UUID Attribute for Groups:" : "グループの UUID 属性:", "Username-LDAP User Mapping" : "ユーザー名とLDAPユーザのマッピング", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。", "Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする", "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする", " entries available within the provided Base DN" : "入力されたベースDNでエントリーが利用可能", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。" }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/ja.json b/apps/user_ldap/l10n/ja.json index 50132472991..27898eea6c9 100644 --- a/apps/user_ldap/l10n/ja.json +++ b/apps/user_ldap/l10n/ja.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "ユーザーのUUID属性:", "UUID Attribute for Groups:" : "グループの UUID 属性:", "Username-LDAP User Mapping" : "ユーザー名とLDAPユーザのマッピング", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。", "Clear Username-LDAP User Mapping" : "ユーザー名とLDAPユーザーのマッピングをクリアする", "Clear Groupname-LDAP Group Mapping" : "グループ名とLDAPグループのマッピングをクリアする", " entries available within the provided Base DN" : "入力されたベースDNでエントリーが利用可能", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ユーザー名は(メタ)データの保存と割り当てに使用されます。ユーザーを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザー名からLDAPユーザーへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、すべてのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ka_GE.js b/apps/user_ldap/l10n/ka_GE.js index f6a1b22017f..f4703c4b95c 100644 --- a/apps/user_ldap/l10n/ka_GE.js +++ b/apps/user_ldap/l10n/ka_GE.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID ატირბუტი მომხმარებლებისთვის:", "UUID Attribute for Groups:" : "UUID ატრიბუტი ჯგუფებისთვის:", "Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმები", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის.", "Clear Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმების გასუფთავება", "Clear Groupname-LDAP Group Mapping" : "Groupname-LDAP ჯგუფის ბმების გასუფთავება", " entries available within the provided Base DN" : "მითითებულ საბაზისო DN-ში შენატანები ხელმისაწვდომია", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>გაფრთხილება:</b> აპლიკაციები user_ldap და user_webdavauth არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>გაფრთხილება:</b> აპლიკაციები user_ldap და user_webdavauth არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის." }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/ka_GE.json b/apps/user_ldap/l10n/ka_GE.json index 497f629d480..144989f6210 100644 --- a/apps/user_ldap/l10n/ka_GE.json +++ b/apps/user_ldap/l10n/ka_GE.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID ატირბუტი მომხმარებლებისთვის:", "UUID Attribute for Groups:" : "UUID ატრიბუტი ჯგუფებისთვის:", "Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმები", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის.", "Clear Username-LDAP User Mapping" : "Username-LDAP მომხმარებლის ბმების გასუფთავება", "Clear Groupname-LDAP Group Mapping" : "Groupname-LDAP ჯგუფის ბმების გასუფთავება", " entries available within the provided Base DN" : "მითითებულ საბაზისო DN-ში შენატანები ხელმისაწვდომია", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>გაფრთხილება:</b> აპლიკაციები user_ldap და user_webdavauth არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>გაფრთხილება:</b> აპლიკაციები user_ldap და user_webdavauth არაა თავსებადი. შესაძლოა შეგვხდეთ მოულოდნელი ქმედება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს ერთ-ერთის გათიშვა.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "მომხმარებლების სახელები გამოიყენება (მეტა) მონაცემების შესანახად და დასანიშნად. ზუსტი იდენტიფიკაციისა და ამოზნობისთვის, ყოველ LDAP-ის მომხმარებელს ექნება შიდა მომხმარებელი. ეს საჭიროებს ბმას მომხმარებელსა და LDAP-ის სახელს შორის. შექმნილი მომხმარებელი ებმება LDAP-ის მომხმარებელის UUID-ს. LDAP-თან ინტერაქციის შესამცირებლად, დამატებითად კეშირდება DN, მაგრამ არ ხდება მისი მოხმარება იდენტიფიკაციისთვის. ბმების გასუფთავება ბევრ ადგილას დატოვებს კვალს. ბმების გასუფთავება არაა კონფიგურაციასთან მგრძნობიარე, ის მოქმედებს ყველა LDAP-ის კონფიგურაციაზე! არასდროს გაასუფთავოთ ბმები საწარმოო გარემოში, მოიხმარეთ ეს მხოლოდ შემოწმების ან ექსპერიმენტისთვის." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ko.js b/apps/user_ldap/l10n/ko.js index 9e01fd17212..88542a67868 100644 --- a/apps/user_ldap/l10n/ko.js +++ b/apps/user_ldap/l10n/ko.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "사용자 UUID 속성:", "UUID Attribute for Groups:" : "그룹 UUID 속성:", "Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.", "Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기", "Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기", " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>경고:</b> user_ldap, user_webdavauth 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>경고:</b> user_ldap, user_webdavauth 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오." }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/ko.json b/apps/user_ldap/l10n/ko.json index 1032c82777a..5e20231f82e 100644 --- a/apps/user_ldap/l10n/ko.json +++ b/apps/user_ldap/l10n/ko.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "사용자 UUID 속성:", "UUID Attribute for Groups:" : "그룹 UUID 속성:", "Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오.", "Clear Username-LDAP User Mapping" : "사용자 이름-LDAP 사용자 매핑 비우기", "Clear Groupname-LDAP Group Mapping" : "그룹 이름-LDAP 그룹 매핑 비우기", " entries available within the provided Base DN" : "개(지정한 DN의 기본 항목 수)", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>경고:</b> user_ldap, user_webdavauth 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>경고:</b> user_ldap, user_webdavauth 앱은 서로 호환되지 않습니다. 예상하지 못한 행동을 할 수도 있습니다. 시스템 관리자에게 연락하여 둘 중 하나의 앱의 사용을 중단하십시오.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "사용자 이름은 (메타)데이터를 저장하고 할당하는 데 사용됩니다. 사용자를 정확히 식별하기 위해서 모든 LDAP 사용자는 내부 사용자 이름을 갖고 있습니다. 이 정보에 접근하려면 사용자 이름과 LDAP 사용자 사이의 연결을 알아야 합니다. 생성된 사용자 이름은 LDAP 사용자의 UUID에 연결됩니다. LDAP에 연결하는 횟수를 줄이기 위하여 DN을 캐시에 저장하지만, 식별에는 사용하지 않습니다. DN이 변경되었을 때 변경 사항이 적용됩니다. 내부 사용자 이름은 항상 사용됩니다. 매핑을 비우면 과거 매핑의 흔적이 남습니다. 매핑을 비우는 것은 설정에 관계 없이 적용되므로 모든 LDAP 설정에 영향을 줍니다! 테스트 및 실험 단계에서만 매핑을 비우고, 상용 환경에서는 매핑을 비우지 마십시오." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/lt_LT.js b/apps/user_ldap/l10n/lt_LT.js index c4e069c3e30..9e5601ff819 100644 --- a/apps/user_ldap/l10n/lt_LT.js +++ b/apps/user_ldap/l10n/lt_LT.js @@ -173,11 +173,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID atributas naudotojams:", "UUID Attribute for Groups:" : "UUID atributas grupėms:", "Username-LDAP User Mapping" : "Naudotojo vardo - LDAP naudotojo sąsaja", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje.", "Clear Username-LDAP User Mapping" : "Išvalyti naudotojo vardo - LDAP naudotojo sąsają", "Clear Groupname-LDAP Group Mapping" : "Išvalyti grupės pavadinimo - LDAP naudotojo sąsają", " entries available within the provided Base DN" : "pasiekiami įrašai pateiktoje DN šakoje", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_ldap/l10n/lt_LT.json b/apps/user_ldap/l10n/lt_LT.json index ce14909ab38..5ec5162111f 100644 --- a/apps/user_ldap/l10n/lt_LT.json +++ b/apps/user_ldap/l10n/lt_LT.json @@ -171,11 +171,11 @@ "UUID Attribute for Users:" : "UUID atributas naudotojams:", "UUID Attribute for Groups:" : "UUID atributas grupėms:", "Username-LDAP User Mapping" : "Naudotojo vardo - LDAP naudotojo sąsaja", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje.", "Clear Username-LDAP User Mapping" : "Išvalyti naudotojo vardo - LDAP naudotojo sąsają", "Clear Groupname-LDAP Group Mapping" : "Išvalyti grupės pavadinimo - LDAP naudotojo sąsają", " entries available within the provided Base DN" : "pasiekiami įrašai pateiktoje DN šakoje", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Įspėjimas: </b> Programėlės user_ldap ir user_webdavauth yra nesuderinami. Tai gali sukelti nepageidaujamą veikimą. Paprašykite, kad sistemos administratorius vieną jų išjungtų.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Naudotojų vardai yra naudojami saugoti ir priskirti (meta) duomenis. Siekiant identifikuoti ir atpažinti naudotojus,kiekvienas LDAP naudotojas turės vidinį naudotojo vardą. Tam reikia susieti naudotojo vardą su LDAP naudotoju. Sukurtas naudotojo vardas yra susiejamas su LDAP naudotojo UUID. Papildomai DN talpinamas, kad sumažintų LDAP sąveiką, bet nenaudojamas identifikacijoje. Visur yra naudojamas vidinis naudotojo vardas. Susiejimų pašalinimas visur paliks \"pėdsaką\" ir įtakos visas LDAP konfigūracijas! Niekada susiejimų nešalinkite produkciniame serveryje." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/nb.js b/apps/user_ldap/l10n/nb.js index 8b4b1c48e9a..d7154f6aef5 100644 --- a/apps/user_ldap/l10n/nb.js +++ b/apps/user_ldap/l10n/nb.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", "Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker", "Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe", " entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt base-DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/nb.json b/apps/user_ldap/l10n/nb.json index 904a0e76723..5f4b2075a6f 100644 --- a/apps/user_ldap/l10n/nb.json +++ b/apps/user_ldap/l10n/nb.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID-attributt for brukere:", "UUID Attribute for Groups:" : "UUID-attributt for grupper:", "Username-LDAP User Mapping" : "Tilknytning av brukernavn til LDAP-bruker", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering.", "Clear Username-LDAP User Mapping" : "Nullstill tilknytning av brukernavn til LDAP-bruker", "Clear Groupname-LDAP Group Mapping" : "Nullstill tilknytning av gruppenavn til LDAP-gruppe", " entries available within the provided Base DN" : "oppføringer tilgjengelig innenfor angitt base-DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advarsel:</b> Programmene user_ldap og user_webdavauth er ikke kompatible med hverandre. Uventet oppførsel kan forekomme. Be systemadministratoren om å deaktivere én av dem.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Brukernavn brukes til å lagre og tilordne (meta)data. For at brukere skal identifiseres og gjenkjennes presist, vil hver LDAP-bruker ha et internt brukernavn. Dette krever en tilknytning fra brukernavn til LDAP-bruker. Brukernavn som opprettes blir knyttet til LDAP-brukerens UUID. I tillegg hurtiglagres DN for å redusere LDAP-kommunikasjon, men det brukes ikke til identifisering. Hvis DN endres vil endringene bli oppdaget. Det interne brukernavnet brukes alle steder. Nullstilling av tilknytningene vil etterlate seg rester overalt. Nullstilling av tilknytningene skjer ikke pr. oppsett, det påvirker alle LDAP-oppsett! Nullstill aldri tilknytningene i et produksjonsmiljø, kun ved testing eller eksperimentering." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/nl.js b/apps/user_ldap/l10n/nl.js index 9737d3487e6..3037f2aac6f 100644 --- a/apps/user_ldap/l10n/nl.js +++ b/apps/user_ldap/l10n/nl.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID attribuut voor gebruikers:", "UUID Attribute for Groups:" : "UUID attribuut voor groepen:", "Username-LDAP User Mapping" : "Gebruikersnaam-LDAP gebruikers vertaling", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving.", "Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling", "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling", " entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/nl.json b/apps/user_ldap/l10n/nl.json index b333d97d324..a7bfe9ae0cb 100644 --- a/apps/user_ldap/l10n/nl.json +++ b/apps/user_ldap/l10n/nl.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "UUID attribuut voor gebruikers:", "UUID Attribute for Groups:" : "UUID attribuut voor groepen:", "Username-LDAP User Mapping" : "Gebruikersnaam-LDAP gebruikers vertaling", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving.", "Clear Username-LDAP User Mapping" : "Leegmaken Gebruikersnaam-LDAP gebruikers vertaling", "Clear Groupname-LDAP Group Mapping" : "Leegmaken Groepsnaam-LDAP groep vertaling", " entries available within the provided Base DN" : "accounts beschikbaar binnen de provider Basis DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatibel. Je kunt onverwacht gedrag ervaren. Vraag je beheerder om een van beide apps de deactiveren.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Gebruikersnamen worden gebruikt om (meta) data op te slaan en toe te wijzen. Om gebruikers uniek te identificeren, krijgt elke LDAP-gebruiker ook een interne gebruikersnaam. Dit vereist een koppeling van de gebruikersnaam naar een LDAP-gebruiker. De gecreëerde gebruikersnaam is gekoppeld aan de UUID van de LDAP-gebruiker. Aanvullend wordt ook de 'DN' gecached om het aantal LDAP-interacties te verminderen, maar dit wordt niet gebruikt voor identificatie. Als de DN verandert, zullen de veranderingen worden gevonden. De interne gebruikersnaam wordt overal gebruikt. Het wissen van de koppeling zal overal resten achterlaten. Het wissen van koppelingen is niet configuratiegevoelig, maar het raakt wel alle LDAP instellingen! Zorg ervoor dat deze koppelingen nooit in een productieomgeving gewist worden. Maak ze alleen leeg in een test- of ontwikkelomgeving." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/pl.js b/apps/user_ldap/l10n/pl.js index 4627042cf7f..bea740cf9bf 100644 --- a/apps/user_ldap/l10n/pl.js +++ b/apps/user_ldap/l10n/pl.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atrybuty UUID dla użytkowników:", "UUID Attribute for Groups:" : "Atrybuty UUID dla grup:", "Username-LDAP User Mapping" : "Mapowanie użytkownika LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej.", "Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP", "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP", " entries available within the provided Base DN" : "wpisów dostępnych w podanym Base DN ", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej." }, "nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"); diff --git a/apps/user_ldap/l10n/pl.json b/apps/user_ldap/l10n/pl.json index bd0a89c8d2d..e6a5979a50a 100644 --- a/apps/user_ldap/l10n/pl.json +++ b/apps/user_ldap/l10n/pl.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "Atrybuty UUID dla użytkowników:", "UUID Attribute for Groups:" : "Atrybuty UUID dla grup:", "Username-LDAP User Mapping" : "Mapowanie użytkownika LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej.", "Clear Username-LDAP User Mapping" : "Czyść Mapowanie użytkownika LDAP", "Clear Groupname-LDAP Group Mapping" : "Czyść Mapowanie nazwy grupy LDAP", " entries available within the provided Base DN" : "wpisów dostępnych w podanym Base DN ", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nazwy użytkowników służą do przechowywania i przypisywania (meta) danych. W celu dokładnego określenia i rozpoznawania użytkowników, każdy użytkownik LDAP ma przypisaną wewnętrzną nazwę użytkownika. Wymaga to mapowania nazwy użytkownika do użytkownika LDAP. Utworzona nazwa użytkownika jest odwzorowywana na UUID użytkownika LDAP. Dodatkowo DN są buforowane, także w celu zmniejszenia oddziaływania LDAP, ale nie są stosowane do identyfikacji. Po zmianie DN, będzie można znaleźć zmiany. Wewnętrzna nazwa jest używana wszędzie. Usuwanie mapowania będzie miało wpływ wszędzie. Usuwanie mapowania nie jest wrażliwe na konfiguracje, dotyczy to wszystkich konfiguracji LDAP! Nigdy nie usuwaj mapowania w środowisku produkcyjnym, jest to dopuszczalne tylko w fazie eksperymentalnej, testowej." },"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/pt_BR.js b/apps/user_ldap/l10n/pt_BR.js index e09d211a066..d8025e6ba20 100644 --- a/apps/user_ldap/l10n/pt_BR.js +++ b/apps/user_ldap/l10n/pt_BR.js @@ -184,11 +184,12 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributos UUID para Usuários:", "UUID Attribute for Groups:" : "Atributos UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeamento de Usuário Username-LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Os nomes de usuários são usados para armazenar e atribuir metadados. Para identificar e reconhecer com precisão os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN também é armazenado em cache para reduzir a interação LDAP, mas não é usado para identificação. Se o DN mudar, as alterações serão encontradas. O nome de usuário interno é usado em todo lugar. Limpar os mapeamentos gerará sobras em todos os lugares. Limpar os mapeamentos não é sensível à configuração e afeta todas as configurações do LDAP! Nunca limpe os mapeamentos em um ambiente de produção, apenas em um estágio de teste ou experimental.", "Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP", "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP", " entries available within the provided Base DN" : "entradas disponíveis na Base DN fornecida", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/pt_BR.json b/apps/user_ldap/l10n/pt_BR.json index 6e1444017bb..2d74bae7700 100644 --- a/apps/user_ldap/l10n/pt_BR.json +++ b/apps/user_ldap/l10n/pt_BR.json @@ -182,11 +182,12 @@ "UUID Attribute for Users:" : "Atributos UUID para Usuários:", "UUID Attribute for Groups:" : "Atributos UUID para Grupos:", "Username-LDAP User Mapping" : "Mapeamento de Usuário Username-LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Os nomes de usuários são usados para armazenar e atribuir metadados. Para identificar e reconhecer com precisão os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN também é armazenado em cache para reduzir a interação LDAP, mas não é usado para identificação. Se o DN mudar, as alterações serão encontradas. O nome de usuário interno é usado em todo lugar. Limpar os mapeamentos gerará sobras em todos os lugares. Limpar os mapeamentos não é sensível à configuração e afeta todas as configurações do LDAP! Nunca limpe os mapeamentos em um ambiente de produção, apenas em um estágio de teste ou experimental.", "Clear Username-LDAP User Mapping" : "Limpar Mapeamento de Usuário username-LDAP", "Clear Groupname-LDAP Group Mapping" : "Limpar Mapeamento do Grupo groupname-LDAP", " entries available within the provided Base DN" : "entradas disponíveis na Base DN fornecida", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> Os aplicativos user_ldap e user_webdavauth são incompatíveis e pode haver um comportamento inesperado. Por favor, peça ao administrador do sistema para desabilitar um deles.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Nomes de usuários são usados para armazenar e atribuir dados (meta). A fim de identificar e reconhecer precisamente os usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento do nome de usuário para o usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Além disso, o DN é armazenado em cache para reduzir a interação LDAP mas não é usado para identificação. Se o DN mudar, as mudanças serão encontradas. O nome de usuário interno é usado por toda parte. Limpando os mapeamentos terá sobras em todos os lugares. A limpeza dos mapeamentos não é case sensitive e afeta todas as configurações LDAP! Nunca limpe os mapeamentos em um ambiente de produção, somente em um teste ou estágio experimental." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js index 584263865fe..934f74682cb 100644 --- a/apps/user_ldap/l10n/pt_PT.js +++ b/apps/user_ldap/l10n/pt_PT.js @@ -135,11 +135,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atributo UUID para utilizadores:", "UUID Attribute for Groups:" : "Atributo UUID para grupos:", "Username-LDAP User Mapping" : "Mapeamento do utilizador LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "O ownCloud usa nomes de utilizadores para guardar e atribuir (meta) dados. Para identificar com precisão os utilizadores, cada utilizador de LDAP tem um nome de utilizador interno. Isto requer um mapeamento entre o utilizador LDAP e o utilizador ownCloud. Adicionalmente, o DN é colocado em cache para reduzir a interação com LDAP, porém não é usado para identificação. Se o DN muda, essas alterações serão vistas pelo ownCloud. O nome interno do ownCloud é usado em todo o lado, no ownCloud. Limpar os mapeamentos deixará vestígios em todo o lado. A limpeza dos mapeamentos não é sensível à configuração, pois afeta todas as configurações de LDAP! Nunca limpe os mapeamentos num ambiente de produção, apenas o faça numa fase de testes ou experimental.", "Clear Username-LDAP User Mapping" : "Limpar mapeamento do utilizador-LDAP", "Clear Groupname-LDAP Group Mapping" : "Limpar o mapeamento do nome de grupo LDAP", " entries available within the provided Base DN" : "entradas disponíveis no ND de base fornecido", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "O ownCloud usa nomes de utilizadores para guardar e atribuir (meta) dados. Para identificar com precisão os utilizadores, cada utilizador de LDAP tem um nome de utilizador interno. Isto requer um mapeamento entre o utilizador LDAP e o utilizador ownCloud. Adicionalmente, o DN é colocado em cache para reduzir a interação com LDAP, porém não é usado para identificação. Se o DN muda, essas alterações serão vistas pelo ownCloud. O nome interno do ownCloud é usado em todo o lado, no ownCloud. Limpar os mapeamentos deixará vestígios em todo o lado. A limpeza dos mapeamentos não é sensível à configuração, pois afeta todas as configurações de LDAP! Nunca limpe os mapeamentos num ambiente de produção, apenas o faça numa fase de testes ou experimental." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json index 78ed8eddf42..3cbcc6c7915 100644 --- a/apps/user_ldap/l10n/pt_PT.json +++ b/apps/user_ldap/l10n/pt_PT.json @@ -133,11 +133,11 @@ "UUID Attribute for Users:" : "Atributo UUID para utilizadores:", "UUID Attribute for Groups:" : "Atributo UUID para grupos:", "Username-LDAP User Mapping" : "Mapeamento do utilizador LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "O ownCloud usa nomes de utilizadores para guardar e atribuir (meta) dados. Para identificar com precisão os utilizadores, cada utilizador de LDAP tem um nome de utilizador interno. Isto requer um mapeamento entre o utilizador LDAP e o utilizador ownCloud. Adicionalmente, o DN é colocado em cache para reduzir a interação com LDAP, porém não é usado para identificação. Se o DN muda, essas alterações serão vistas pelo ownCloud. O nome interno do ownCloud é usado em todo o lado, no ownCloud. Limpar os mapeamentos deixará vestígios em todo o lado. A limpeza dos mapeamentos não é sensível à configuração, pois afeta todas as configurações de LDAP! Nunca limpe os mapeamentos num ambiente de produção, apenas o faça numa fase de testes ou experimental.", "Clear Username-LDAP User Mapping" : "Limpar mapeamento do utilizador-LDAP", "Clear Groupname-LDAP Group Mapping" : "Limpar o mapeamento do nome de grupo LDAP", " entries available within the provided Base DN" : "entradas disponíveis no ND de base fornecido", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Aviso:</b> A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "O ownCloud usa nomes de utilizadores para guardar e atribuir (meta) dados. Para identificar com precisão os utilizadores, cada utilizador de LDAP tem um nome de utilizador interno. Isto requer um mapeamento entre o utilizador LDAP e o utilizador ownCloud. Adicionalmente, o DN é colocado em cache para reduzir a interação com LDAP, porém não é usado para identificação. Se o DN muda, essas alterações serão vistas pelo ownCloud. O nome interno do ownCloud é usado em todo o lado, no ownCloud. Limpar os mapeamentos deixará vestígios em todo o lado. A limpeza dos mapeamentos não é sensível à configuração, pois afeta todas as configurações de LDAP! Nunca limpe os mapeamentos num ambiente de produção, apenas o faça numa fase de testes ou experimental." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/ru.js b/apps/user_ldap/l10n/ru.js index 8baaf2d771b..875da9233a8 100644 --- a/apps/user_ldap/l10n/ru.js +++ b/apps/user_ldap/l10n/ru.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-атрибуты для пользователей:", "UUID Attribute for Groups:" : "UUID-атрибуты для групп:", "Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.", "Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP", " entries available within the provided Base DN" : "элементов доступно в предоставленном базовом DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования." }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/user_ldap/l10n/ru.json b/apps/user_ldap/l10n/ru.json index 5cefbbefb9d..c33dc5db403 100644 --- a/apps/user_ldap/l10n/ru.json +++ b/apps/user_ldap/l10n/ru.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID-атрибуты для пользователей:", "UUID Attribute for Groups:" : "UUID-атрибуты для групп:", "Username-LDAP User Mapping" : "Соответствия Имя-Пользователь LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.", "Clear Username-LDAP User Mapping" : "Очистить соответствия Имя-Пользователь LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистить соответствия Группа-Группа LDAP", " entries available within the provided Base DN" : "элементов доступно в предоставленном базовом DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth несовместимы. Вы можете наблюдать некорректное поведение. Пожалуйста, попросите вашего системного администратора отключить одно из них.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud использует имена пользователей для хранения и назначения метаданных. Для точной идентификации и распознавания пользователей, каждый пользователь LDAP будет иметь свое внутреннее имя пользователя. Это требует привязки имени пользователя ownCloud к пользователю LDAP. При создании имя пользователя назначается идентификатору UUID пользователя LDAP. Помимо этого кешируется DN для уменьшения числа обращений к LDAP, однако он не используется для идентификации. Если DN был изменён, то изменения будут найдены. Внутреннее имя ownCloud используется повсеместно в ownCloud. После сброса привязок в базе могут сохраниться остатки старой информации. Сброс привязок не привязан к конфигурации, он повлияет на все LDAP подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования." },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/sk.js b/apps/user_ldap/l10n/sk.js index 34100a0d6f0..804c9cdb8b6 100644 --- a/apps/user_ldap/l10n/sk.js +++ b/apps/user_ldap/l10n/sk.js @@ -150,11 +150,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID atribút pre používateľov:", "UUID Attribute for Groups:" : "UUID atribút pre skupiny:", "Username-LDAP User Mapping" : "Mapovanie názvov LDAP používateľských mien", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze.", "Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien", "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín", " entries available within the provided Base DN" : "dostupných záznamov v zadanej základnej DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze." }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/apps/user_ldap/l10n/sk.json b/apps/user_ldap/l10n/sk.json index 41b30d9c1c3..5512367af8e 100644 --- a/apps/user_ldap/l10n/sk.json +++ b/apps/user_ldap/l10n/sk.json @@ -148,11 +148,11 @@ "UUID Attribute for Users:" : "UUID atribút pre používateľov:", "UUID Attribute for Groups:" : "UUID atribút pre skupiny:", "Username-LDAP User Mapping" : "Mapovanie názvov LDAP používateľských mien", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze.", "Clear Username-LDAP User Mapping" : "Zrušiť mapovanie LDAP používateľských mien", "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín", " entries available within the provided Base DN" : "dostupných záznamov v zadanej základnej DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Upozornenie:</b> Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Používateľské mená sa používajú na uchovávanie a priraďovanie (meta)dát. Každý používateľ v LDAP bude mať interné používateľské meno, aby bolo možné správne identifikovať a rozpoznávať používateľov. To je vyžaduje vytvorenie mapovania používateľských mien na používateľov v LDAPe. Vytvorené používateľské meno sa namapuje na UUID používateľa v LDAPe. Naviac je sa vo vyrovnávacej pamäti udržiava DN, aby sa obmedzila nadmerná interakcia s LDAPom, ale to sa nepoužíva na identifikáciu. Ak sa DN zmení, zmena bude správne rozpoznaná. Interné používateľské meno sa používa všade. Vyčistenie mapovaní vymaže zvyšky všade. Vyčistenie mapovaní naviac nie je špecifické pre určitú konfiguráciu; bude mať vplyv na všetky konfigurácie LDAPu! Nikdy nečistite mapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze." },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/sq.js b/apps/user_ldap/l10n/sq.js index d56f9bef6b3..2cf615338e8 100644 --- a/apps/user_ldap/l10n/sq.js +++ b/apps/user_ldap/l10n/sq.js @@ -179,11 +179,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "Atribut UUID për Përdorues:", "UUID Attribute for Groups:" : "Atribut UUID për Grupe:", "Username-LDAP User Mapping" : "Përshoqërim Emër përdoruesi-Përdorues LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale.", "Clear Username-LDAP User Mapping" : "Pastro Përshoqërimin Emër përdoruesi-Përdorues LDAP", "Clear Groupname-LDAP Group Mapping" : "Pastro Përshoqërimin Emër grupi-Grup LDAP", " entries available within the provided Base DN" : " zëra të gatshëm brenda DN-së Bazë të dhënë", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/sq.json b/apps/user_ldap/l10n/sq.json index 01c3a1f2dde..3662ef627c5 100644 --- a/apps/user_ldap/l10n/sq.json +++ b/apps/user_ldap/l10n/sq.json @@ -177,11 +177,11 @@ "UUID Attribute for Users:" : "Atribut UUID për Përdorues:", "UUID Attribute for Groups:" : "Atribut UUID për Grupe:", "Username-LDAP User Mapping" : "Përshoqërim Emër përdoruesi-Përdorues LDAP", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale.", "Clear Username-LDAP User Mapping" : "Pastro Përshoqërimin Emër përdoruesi-Përdorues LDAP", "Clear Groupname-LDAP Group Mapping" : "Pastro Përshoqërimin Emër grupi-Grup LDAP", " entries available within the provided Base DN" : " zëra të gatshëm brenda DN-së Bazë të dhënë", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Kujdes:</b> user_ldap dhe user_webdavauth të aplikacionit janë të papërputhshëm. Mund t’ju ndodhin sjellje të papritura. Ju lutemi, kërkojini përgjegjësit të sistemit tuaj të çaktivizojë një prej tyre.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Emrat e përdoruesve përdoren për të depozituar dhe shpërndarë (tej) të dhëna. Që të mund të identifikohen dhe pranohen saktësisht përdoruesit, çdo përdorues LDAP do të ketë një emër të brendshëm përdoruesi. Kjo kërkon përshoqërim nga emër përdoruesi te përdorues LDAP. Emri i përdoruesit i krijuar i përshoqërohet UUID-së së përdoruesit LDAP. Tej kësaj, edhe DN-ja ruhet në fshehtinë, për të zvogëluar ndërveprim LDAP, por s’përdoret për identifikim. Nëse ndryshon DN-ja, ndryshimet do të gjenden. Emri i brendshëm i përdoruesi përdoret gjithandej. Heqja e përshoqërimeve do të lërë thërrime ngado. Heqja e përshoqërimeve nuk preket nga formësimi, prek krejt formësimet për LDAP-në! Mos i hiqni kurrë përshoqërimet në një mjedis prodhimi, vetëm në një faqë testimi ose eksperimetale." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js index 297f4ca488e..e730121cdde 100644 --- a/apps/user_ldap/l10n/sr.js +++ b/apps/user_ldap/l10n/sr.js @@ -184,11 +184,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID параметри за кориснике:", "UUID Attribute for Groups:" : "UUID параметри за групе:", "Username-LDAP User Mapping" : "Username-LDAP мапирање корисника", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази.", "Clear Username-LDAP User Mapping" : "Очисти Username-LDAP мапирање корисника", "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", " entries available within the provided Base DN" : "уноса доступно за дати базни ДН", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json index 4cc9e01ffbd..6dcf8706824 100644 --- a/apps/user_ldap/l10n/sr.json +++ b/apps/user_ldap/l10n/sr.json @@ -182,11 +182,11 @@ "UUID Attribute for Users:" : "UUID параметри за кориснике:", "UUID Attribute for Groups:" : "UUID параметри за групе:", "Username-LDAP User Mapping" : "Username-LDAP мапирање корисника", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази.", "Clear Username-LDAP User Mapping" : "Очисти Username-LDAP мапирање корисника", "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", " entries available within the provided Base DN" : "уноса доступно за дати базни ДН", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Корисничка имена се користи за чување и додељивање (мета) података. Да би се прецизно идентификовали и препознавали кориснике, сваки LDAP корисник ће имати локално корисничко име. Ово захтева мапирање од корисничког имена до LDAP корисника. Креирано корисничко име се мапира у UUID LDAP корисника. Поред тога, DN се кешира да смањи LDAP интеракцију, али се не користи за идентификацију. Ако се DN мења, промене се могу наћи. Локално корисничко име се користи свуда. Чишћење мапирања оставља свуда остатке. Чишћење мапирања није осетљиво на конфигурацију, оно утиче на све LDAP конфигурације! Никада не користит чишћење мапирања у радном окружењу, већ само у тестирању или експерименталној фази." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/sv.js b/apps/user_ldap/l10n/sv.js index 14e42e33296..60f29f4e325 100644 --- a/apps/user_ldap/l10n/sv.js +++ b/apps/user_ldap/l10n/sv.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID-attribut för användare:", "UUID Attribute for Groups:" : "UUID-attribut för grupper:", "Username-LDAP User Mapping" : "Användarnamn-LDAP användarmappning", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge.", "Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning", "Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning", " entries available within the provided Base DN" : "Poster tillgängliga inom angivet Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/sv.json b/apps/user_ldap/l10n/sv.json index 99006f9ab84..077ca66bc86 100644 --- a/apps/user_ldap/l10n/sv.json +++ b/apps/user_ldap/l10n/sv.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "UUID-attribut för användare:", "UUID Attribute for Groups:" : "UUID-attribut för grupper:", "Username-LDAP User Mapping" : "Användarnamn-LDAP användarmappning", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge.", "Clear Username-LDAP User Mapping" : "Rensa användarnamn-LDAP användarmappning", "Clear Groupname-LDAP Group Mapping" : "Rensa gruppnamn-LDAP gruppmappning", " entries available within the provided Base DN" : "Poster tillgängliga inom angivet Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dem.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Användarnamn används för att lagra och tilldela (meta) data. För att exakt identifiera och känna igen användare, kommer varje LDAP-användare att ha ett internt användarnamn. Detta kräver en mappning från användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID't för LDAP-användaren. Dessutom är DN't cachat också för att minska LDAP-interaktion, men används inte för identifiering. Om DN't ändras, kommer ändringar att hittas. Det interna användarnamnet används överallt. Rensning av mappningarna kommer att ha kvarlevor överallt. Rensning av mappningarna är inte konfigurationskänsliga, de påverka alla LDAP-konfigurationer! Rensa aldrig mappningarna i en produktionsmiljö, bara i test- eller experimentläge." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/th.js b/apps/user_ldap/l10n/th.js index 03a194f4b49..2bed9dd1d3e 100644 --- a/apps/user_ldap/l10n/th.js +++ b/apps/user_ldap/l10n/th.js @@ -132,11 +132,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "แอตทริบิวต์ UUID สำหรับผู้ใช้:", "UUID Attribute for Groups:" : "แอตทริบิวต์ UUID สำหรับกลุ่ม:", "Username-LDAP User Mapping" : "Username-LDAP ผู้ใช้ Mapping", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง", "Clear Username-LDAP User Mapping" : "ล้าง Username-LDAP ผู้ใช้ Mapping", "Clear Groupname-LDAP Group Mapping" : "ล้าง Groupname-LDAP กลุ่ม Mapping", " entries available within the provided Base DN" : "รายการที่มีอยู่ใน Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง" }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/th.json b/apps/user_ldap/l10n/th.json index 95519ebbe18..c778345a012 100644 --- a/apps/user_ldap/l10n/th.json +++ b/apps/user_ldap/l10n/th.json @@ -130,11 +130,11 @@ "UUID Attribute for Users:" : "แอตทริบิวต์ UUID สำหรับผู้ใช้:", "UUID Attribute for Groups:" : "แอตทริบิวต์ UUID สำหรับกลุ่ม:", "Username-LDAP User Mapping" : "Username-LDAP ผู้ใช้ Mapping", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง", "Clear Username-LDAP User Mapping" : "ล้าง Username-LDAP ผู้ใช้ Mapping", "Clear Groupname-LDAP Group Mapping" : "ล้าง Groupname-LDAP กลุ่ม Mapping", " entries available within the provided Base DN" : "รายการที่มีอยู่ใน Base DN", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>คำเตือน:</b> แอพฯ user_ldap และ user_webdavauth เข้ากันไม่ได้ คุณอาจจะพบเหตุการณ์ที่ไม่คาดคิด กรุณาขอให้ผู้ดูแลระบบของคุณปิดการใช้งานบางอย่างของพวกเขา", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ชื่อผู้ใช้จะใช้ในการจัดเก็บและกำหนดข้อมูล (เมตา) เพื่อรู้จักกับผู้ใช้และสามารถระบุได้อย่างแม่นยำ แต่ละ LDAP จะมีชื่อผู้ใช้ภายใน จึงต้องทำ Mapping ให้กับผู้ใช้ LDAP ชื่อผู้ใช้ที่ถูกสร้างขึ้นจะถูกแมปเข้ากับ UUID ของผู้ใช้ LDAP นอกจากนี้ DN ก็จะถูกแคชเช่นกันเพื่อลดการทำงานร่วมกันของ LDAP แต่มันก็ไม่ได้ใช้เพื่อระบุตัวตน หากมีการเปลี่ยนแปลง DN การเปลี่ยนแปลงจะถูกพบในทันที ชื่อผู้ใช้ภายในจะถูกใช้กับทั้งหมด การล้างแมปไม่มีผลต่อการกำหนดค่า LDAP ทั้งหมด! \nและจะเกิดขึ้นเฉพาะในการทดสอบหรือขั้นตอนการทดลอง" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/tr.js b/apps/user_ldap/l10n/tr.js index 0c0cea43199..f91dc2fa6e0 100644 --- a/apps/user_ldap/l10n/tr.js +++ b/apps/user_ldap/l10n/tr.js @@ -184,11 +184,12 @@ OC.L10N.register( "UUID Attribute for Users:" : "Kullanıcılar için UUID Özniteliği:", "UUID Attribute for Groups:" : "Gruplar için UUID Özniteliği:", "Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirme", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, üst veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın.", "Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır", "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır", " entries available within the provided Base DN" : "kayıt belirtilen Base DN üzerinde var", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın." }, "nplurals=2; plural=(n > 1);"); diff --git a/apps/user_ldap/l10n/tr.json b/apps/user_ldap/l10n/tr.json index d9bd5f6212e..aef6b0d9c00 100644 --- a/apps/user_ldap/l10n/tr.json +++ b/apps/user_ldap/l10n/tr.json @@ -182,11 +182,12 @@ "UUID Attribute for Users:" : "Kullanıcılar için UUID Özniteliği:", "UUID Attribute for Groups:" : "Gruplar için UUID Özniteliği:", "Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirme", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın.", + "Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, üst veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın.", "Clear Username-LDAP User Mapping" : "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Kaldır", "Clear Groupname-LDAP Group Mapping" : "Grup Adı-LDAP Grubu Eşleştirmesini Kaldır", " entries available within the provided Base DN" : "kayıt belirtilen Base DN üzerinde var", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle görüşün.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Kullanıcı adları, (üst) veri depolaması ve ataması için kullanılır. Kullanıcıları kesin olarak belirlemek ve algılamak için, her LDAP kullanıcısına bir iç kullanıcı verilir. Bu kullanıcı adı ile LDAP kullanıcısının eşleştirilmesi gerekir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID değeri ile eşleştirilir. Bunun yanında LDAP etkileşimini azaltmak için DN ön belleğe alınır ancak bu işlem kimlik belirleme için kullanılmaz. DN üzerinde yapılan değişiklikler aktarılır. İç kullanıcı her yerde kullanıldığından, bir eşleştirmeyi kaldırmak pek çok yerde kalıntılar bırakır. Eşleştirmeleri kaldırmak yalnız yapılandırmaya bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla kaldırmayın, yalnız sınama ya da deney aşamalarında kullanın." },"pluralForm" :"nplurals=2; plural=(n > 1);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js index 2bb85b2229f..00678e0eaee 100644 --- a/apps/user_ldap/l10n/uk.js +++ b/apps/user_ldap/l10n/uk.js @@ -101,10 +101,10 @@ OC.L10N.register( "UUID Attribute for Users:" : "UUID Атрибут для користувачів:", "UUID Attribute for Groups:" : "UUID Атрибут для груп:", "Username-LDAP User Mapping" : "Картографія Імен користувачів-LDAP ", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування.", "Clear Username-LDAP User Mapping" : "Очистити картографію Імен користувачів-LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистити картографію Імен груп-LDAP", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Попередження:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Попередження:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json index b7fcbbf031c..b7adace6ea6 100644 --- a/apps/user_ldap/l10n/uk.json +++ b/apps/user_ldap/l10n/uk.json @@ -99,10 +99,10 @@ "UUID Attribute for Users:" : "UUID Атрибут для користувачів:", "UUID Attribute for Groups:" : "UUID Атрибут для груп:", "Username-LDAP User Mapping" : "Картографія Імен користувачів-LDAP ", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування.", "Clear Username-LDAP User Mapping" : "Очистити картографію Імен користувачів-LDAP", "Clear Groupname-LDAP Group Mapping" : "Очистити картографію Імен груп-LDAP", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Попередження:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них." + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Попередження:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "ownCloud використовує імена користувачів для зберігання та призначення метаданих. Для точної ідентифікації та розпізнавання користувачів, кожен користувач LDAP буде мати своє внутрішнє ім'я користувача. Це вимагає прив'язки імені користувача ownCloud до користувача LDAP. При створенні ім'я користувача призначається ідентифікатором UUID користувача LDAP. Крім цього кешируєтся доменне ім'я (DN) для зменшення числа звернень до LDAP, однак воно не використовується для ідентифікації. Якщо доменне ім'я було змінено, про це стане відомо ownCloud. Внутрішнє ім'я ownCloud використовується повсюдно в ownCloud. Після скидання прив'язок в базі можуть зберегтися залишки старої інформації. Скидання прив'язок не прив'язане до конфігурації, воно вплине на всі LDAP підключення! Ні в якому разі не рекомендується скидати прив'язки якщо система вже знаходиться в експлуатації, тільки на етапі тестування." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/zh_CN.js b/apps/user_ldap/l10n/zh_CN.js index 1075f0d4146..1c528200172 100644 --- a/apps/user_ldap/l10n/zh_CN.js +++ b/apps/user_ldap/l10n/zh_CN.js @@ -183,11 +183,11 @@ OC.L10N.register( "UUID Attribute for Users:" : "用户UUID属性:", "UUID Attribute for Groups:" : "组的UUID属性:", "Username-LDAP User Mapping" : "用户名-LDAP用户映射", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。", "Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射", "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射", " entries available within the provided Base DN" : "基础DN中的可用条目", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 应用 user_ldap 和 user_webdavauth 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 应用 user_ldap 和 user_webdavauth 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。" }, "nplurals=1; plural=0;"); diff --git a/apps/user_ldap/l10n/zh_CN.json b/apps/user_ldap/l10n/zh_CN.json index 6c11d9e1c4e..42b3bb4c53d 100644 --- a/apps/user_ldap/l10n/zh_CN.json +++ b/apps/user_ldap/l10n/zh_CN.json @@ -181,11 +181,11 @@ "UUID Attribute for Users:" : "用户UUID属性:", "UUID Attribute for Groups:" : "组的UUID属性:", "Username-LDAP User Mapping" : "用户名-LDAP用户映射", - "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。", "Clear Username-LDAP User Mapping" : "清除用户-LDAP用户映射", "Clear Groupname-LDAP Group Mapping" : "清除组用户-LDAP级映射", " entries available within the provided Base DN" : "基础DN中的可用条目", "LDAP" : "LDAP", - "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 应用 user_ldap 和 user_webdavauth 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。" + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>警告:</b> 应用 user_ldap 和 user_webdavauth 之间不兼容。您可能遭遇未预料的行为。请让系统管理员禁用其中一个。", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "用户名用于存储和分配数据 (元)。为了准确地识别和确认用户,每个用户都有一个内部用户名。这需要一个 ownCloud 用户名到 LDAP 用户的映射。创建的用户名被映射到 LDAP 用户的 UUID。此外,DN 也会被缓存,以减少 LDAP 连接,但它不用于识别。DN 的变化会被监视到。内部用户名会被用于所有地方。清除映射将导致一片混乱。清除映射不是常用的设置,它会影响到所有的 LDAP 配置!千万不要在正式环境中清除映射,只有在测试或试验时才这样做。" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index 9fb37090270..2395da1ec90 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -44,6 +44,7 @@ namespace OCA\User_LDAP; use OC\HintException; +use OC\Hooks\PublicEmitter; use OCA\User_LDAP\Exceptions\ConstraintViolationException; use OCA\User_LDAP\User\IUserTools; use OCA\User_LDAP\User\Manager; @@ -52,6 +53,7 @@ use OCA\User_LDAP\Mapping\AbstractMapping; use OC\ServerNotAvailableException; use OCP\IConfig; +use OCP\IUserManager; use OCP\Util; /** @@ -95,13 +97,16 @@ class Access extends LDAPUtility implements IUserTools { private $helper; /** @var IConfig */ private $config; + /** @var IUserManager */ + private $ncUserManager; public function __construct( Connection $connection, ILDAPWrapper $ldap, Manager $userManager, Helper $helper, - IConfig $config + IConfig $config, + IUserManager $ncUserManager ) { parent::__construct($ldap); $this->connection = $connection; @@ -109,6 +114,7 @@ class Access extends LDAPUtility implements IUserTools { $this->userManager->setLdapAccess($this); $this->helper = $helper; $this->config = $config; + $this->ncUserManager = $ncUserManager; } /** @@ -605,10 +611,13 @@ class Access extends LDAPUtility implements IUserTools { // outside of core user management will still cache the user as non-existing. $originalTTL = $this->connection->ldapCacheTTL; $this->connection->setConfiguration(array('ldapCacheTTL' => 0)); - if(($isUser && $intName !== '' && !\OC::$server->getUserManager()->userExists($intName)) + if(($isUser && $intName !== '' && !$this->ncUserManager->userExists($intName)) || (!$isUser && !\OC::$server->getGroupManager()->groupExists($intName))) { if($mapper->map($fdn, $intName, $uuid)) { $this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL)); + if($this->ncUserManager instanceof PublicEmitter) { + $this->ncUserManager->emit('\OC\User', 'assignedUserId', [$intName]); + } $newlyMapped = true; return $intName; } @@ -617,6 +626,9 @@ class Access extends LDAPUtility implements IUserTools { $altName = $this->createAltInternalOwnCloudName($intName, $isUser); if(is_string($altName) && $mapper->map($fdn, $altName, $uuid)) { + if($this->ncUserManager instanceof PublicEmitter) { + $this->ncUserManager->emit('\OC\User', 'assignedUserId', [$intName]); + } $newlyMapped = true; return $altName; } @@ -738,7 +750,7 @@ class Access extends LDAPUtility implements IUserTools { //20 attempts, something else is very wrong. Avoids infinite loop. while($attempts < 20){ $altName = $name . '_' . rand(1000,9999); - if(!\OC::$server->getUserManager()->userExists($altName)) { + if(!$this->ncUserManager->userExists($altName)) { return $altName; } $attempts++; diff --git a/apps/user_ldap/lib/AccessFactory.php b/apps/user_ldap/lib/AccessFactory.php index 45ff779bb01..f03f7f74202 100644 --- a/apps/user_ldap/lib/AccessFactory.php +++ b/apps/user_ldap/lib/AccessFactory.php @@ -26,6 +26,7 @@ namespace OCA\User_LDAP; use OCA\User_LDAP\User\Manager; use OCP\IConfig; +use OCP\IUserManager; class AccessFactory { /** @var ILDAPWrapper */ @@ -36,17 +37,21 @@ class AccessFactory { protected $helper; /** @var IConfig */ protected $config; + /** @var IUserManager */ + private $ncUserManager; public function __construct( ILDAPWrapper $ldap, Manager $userManager, Helper $helper, - IConfig $config) + IConfig $config, + IUserManager $ncUserManager) { $this->ldap = $ldap; $this->userManager = $userManager; $this->helper = $helper; $this->config = $config; + $this->ncUserManager = $ncUserManager; } public function get(Connection $connection) { @@ -55,7 +60,8 @@ class AccessFactory { $this->ldap, $this->userManager, $this->helper, - $this->config + $this->config, + $this->ncUserManager ); } } diff --git a/apps/user_ldap/lib/Jobs/Sync.php b/apps/user_ldap/lib/Jobs/Sync.php index 4ef0636a2eb..0abb9331a2f 100644 --- a/apps/user_ldap/lib/Jobs/Sync.php +++ b/apps/user_ldap/lib/Jobs/Sync.php @@ -376,7 +376,8 @@ class Sync extends TimedJob { $this->ldap, $this->userManager, $this->ldapHelper, - $this->config + $this->config, + $this->ncUserManager ); } } diff --git a/apps/user_ldap/lib/Jobs/UpdateGroups.php b/apps/user_ldap/lib/Jobs/UpdateGroups.php index 2b57874c62f..c36ec80b93e 100644 --- a/apps/user_ldap/lib/Jobs/UpdateGroups.php +++ b/apps/user_ldap/lib/Jobs/UpdateGroups.php @@ -192,7 +192,7 @@ class UpdateGroups extends \OC\BackgroundJob\TimedJob { \OC::$server->getUserManager(), \OC::$server->getNotificationManager()); $connector = new Connection($ldapWrapper, $configPrefixes[0]); - $ldapAccess = new Access($connector, $ldapWrapper, $userManager, $helper, \OC::$server->getConfig()); + $ldapAccess = new Access($connector, $ldapWrapper, $userManager, $helper, \OC::$server->getConfig(), \OC::$server->getUserManager()); $groupMapper = new GroupMapping($dbc); $userMapper = new UserMapping($dbc); $ldapAccess->setGroupMapper($groupMapper); diff --git a/apps/user_ldap/lib/Mapping/AbstractMapping.php b/apps/user_ldap/lib/Mapping/AbstractMapping.php index f5f56ce03d6..c7d737a7631 100644 --- a/apps/user_ldap/lib/Mapping/AbstractMapping.php +++ b/apps/user_ldap/lib/Mapping/AbstractMapping.php @@ -279,6 +279,32 @@ abstract class AbstractMapping { } /** + * clears the mapping table one by one and executing a callback with + * each row's id (=owncloud_name col) + * + * @param callable $preCallback + * @param callable $postCallback + * @return bool true on success, false when at least one row was not + * deleted + */ + public function clearCb(Callable $preCallback, Callable $postCallback): bool { + $picker = $this->dbc->getQueryBuilder(); + $picker->select('owncloud_name') + ->from($this->getTableName()); + $cursor = $picker->execute(); + $result = true; + while($id = $cursor->fetchColumn(0)) { + $preCallback($id); + if($isUnmapped = $this->unmap($id)) { + $postCallback($id); + } + $result &= $isUnmapped; + } + $cursor->closeCursor(); + return $result; + } + + /** * returns the number of entries in the mappings table * * @return int diff --git a/apps/user_ldap/lib/Proxy.php b/apps/user_ldap/lib/Proxy.php index ab5434f9fe5..8b5ff996085 100644 --- a/apps/user_ldap/lib/Proxy.php +++ b/apps/user_ldap/lib/Proxy.php @@ -82,7 +82,7 @@ abstract class Proxy { new Manager($ocConfig, $fs, $log, $avatarM, new \OCP\Image(), $db, $coreUserManager, $coreNotificationManager); $connector = new Connection($this->ldap, $configPrefix); - $access = new Access($connector, $this->ldap, $userManager, new Helper($ocConfig), $ocConfig); + $access = new Access($connector, $this->ldap, $userManager, new Helper($ocConfig), $ocConfig, $coreUserManager); $access->setUserMapper($userMap); $access->setGroupMapper($groupMap); self::$accesses[$configPrefix] = $access; diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index 5a2b993c334..e56e4675e39 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -396,7 +396,7 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn \OC::$server->getLogger()->info('Cleaning up after user ' . $uid, array('app' => 'user_ldap')); - $this->access->getUserMapper()->unmap($uid); + $this->access->getUserMapper()->unmap($uid); // we don't emit unassign signals here, since it is implicit to delete signals fired from core $this->access->userManager->invalidate($uid); return true; } diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php index 23c4976c2fa..cb1168f1b51 100644 --- a/apps/user_ldap/lib/Wizard.php +++ b/apps/user_ldap/lib/Wizard.php @@ -89,11 +89,11 @@ class Wizard extends LDAPUtility { * * @param string $filter the LDAP search filter * @param string $type a string being either 'users' or 'groups'; - * @return bool|int + * @return int * @throws \Exception */ - public function countEntries($filter, $type) { - $reqs = array('ldapHost', 'ldapPort', 'ldapBase'); + public function countEntries(string $filter, string $type): int { + $reqs = ['ldapHost', 'ldapPort', 'ldapBase']; if($type === 'users') { $reqs[] = 'ldapUserFilter'; } @@ -101,7 +101,7 @@ class Wizard extends LDAPUtility { throw new \Exception('Requirements not met', 400); } - $attr = array('dn'); // default + $attr = ['dn']; // default $limit = 1001; if($type === 'groups') { $result = $this->access->countGroups($filter, $attr, $limit); @@ -113,22 +113,21 @@ class Wizard extends LDAPUtility { throw new \Exception('Internal error: Invalid object type', 500); } - return $result; + return (int)$result; } /** * formats the return value of a count operation to the string to be * inserted. * - * @param bool|int $count - * @return int|string + * @param int $count + * @return string */ - private function formatCountResult($count) { - $formatted = ($count !== false) ? $count : 0; - if($formatted > 1000) { - $formatted = '> 1000'; + private function formatCountResult(int $count): string { + if($count > 1000) { + return '> 1000'; } - return $formatted; + return (string)$count; } public function countGroups() { @@ -141,7 +140,7 @@ class Wizard extends LDAPUtility { } try { - $groupsTotal = $this->formatCountResult($this->countEntries($filter, 'groups')); + $groupsTotal = $this->countEntries($filter, 'groups'); } catch (\Exception $e) { //400 can be ignored, 500 is forwarded if($e->getCode() === 500) { @@ -149,7 +148,12 @@ class Wizard extends LDAPUtility { } return false; } - $output = self::$l->n('%s group found', '%s groups found', $groupsTotal, array($groupsTotal)); + $output = self::$l->n( + '%s group found', + '%s groups found', + $groupsTotal, + [$this->formatCountResult($groupsTotal)] + ); $this->result->addChange('ldap_group_count', $output); return $this->result; } @@ -161,8 +165,13 @@ class Wizard extends LDAPUtility { public function countUsers() { $filter = $this->access->getFilterForUserCount(); - $usersTotal = $this->formatCountResult($this->countEntries($filter, 'users')); - $output = self::$l->n('%s user found', '%s users found', $usersTotal, array($usersTotal)); + $usersTotal = $this->countEntries($filter, 'users'); + $output = self::$l->n( + '%s user found', + '%s users found', + $usersTotal, + [$this->formatCountResult($usersTotal)] + ); $this->result->addChange('ldap_user_count', $output); return $this->result; } @@ -175,7 +184,7 @@ class Wizard extends LDAPUtility { */ public function countInBaseDN() { // we don't need to provide a filter in this case - $total = $this->countEntries(null, 'objects'); + $total = $this->countEntries('', 'objects'); if($total === false) { throw new \Exception('invalid results received'); } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index d22b31ac333..6d69d0aeb15 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -121,7 +121,7 @@ style('user_ldap', 'settings'); <p class="ldapIndent"><label for="ldap_expert_uuid_user_attr"><?php p($l->t('UUID Attribute for Users:'));?></label><input type="text" id="ldap_expert_uuid_user_attr" name="ldap_expert_uuid_user_attr" data-default="<?php p($_['ldap_expert_uuid_user_attr_default']); ?>" /></p> <p class="ldapIndent"><label for="ldap_expert_uuid_group_attr"><?php p($l->t('UUID Attribute for Groups:'));?></label><input type="text" id="ldap_expert_uuid_group_attr" name="ldap_expert_uuid_group_attr" data-default="<?php p($_['ldap_expert_uuid_group_attr_default']); ?>" /></p> <p><strong><?php p($l->t('Username-LDAP User Mapping'));?></strong></p> - <p class="ldapIndent"><?php p($l->t('Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage.'));?></p> + <p class="ldapIndent"><?php p($l->t('Usernames are used to store and assign metadata. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage.'));?></p> <p class="ldapIndent"><button type="button" id="ldap_action_clear_user_mappings" name="ldap_action_clear_user_mappings"><?php p($l->t('Clear Username-LDAP User Mapping'));?></button><br/><button type="button" id="ldap_action_clear_group_mappings" name="ldap_action_clear_group_mappings"><?php p($l->t('Clear Groupname-LDAP Group Mapping'));?></button></p> <?php print_unescaped($_['settingControls']); ?> </fieldset> diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index 336b92af04f..43a34959c54 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -72,6 +72,8 @@ class AccessTest extends TestCase { private $helper; /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ private $config; + /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ + private $ncUserManager; /** @var Access */ private $access; @@ -82,13 +84,15 @@ class AccessTest extends TestCase { $this->helper = $this->createMock(Helper::class); $this->config = $this->createMock(IConfig::class); $this->userMapper = $this->createMock(UserMapping::class); + $this->ncUserManager = $this->createMock(IUserManager::class); $this->access = new Access( $this->connection, $this->ldap, $this->userManager, $this->helper, - $this->config + $this->config, + $this->ncUserManager ); $this->access->setUserMapper($this->userMapper); } @@ -227,7 +231,7 @@ class AccessTest extends TestCase { list($lw, $con, $um, $helper) = $this->getConnectorAndLdapMock(); /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $config */ $config = $this->createMock(IConfig::class); - $access = new Access($con, $lw, $um, $helper, $config); + $access = new Access($con, $lw, $um, $helper, $config, $this->ncUserManager); $lw->expects($this->exactly(1)) ->method('explodeDN') @@ -250,7 +254,7 @@ class AccessTest extends TestCase { /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject $config */ $config = $this->createMock(IConfig::class); $lw = new LDAP(); - $access = new Access($con, $lw, $um, $helper, $config); + $access = new Access($con, $lw, $um, $helper, $config, $this->ncUserManager); if(!function_exists('ldap_explode_dn')) { $this->markTestSkipped('LDAP Module not available'); @@ -431,7 +435,7 @@ class AccessTest extends TestCase { $attribute => array('count' => 1, $dnFromServer) ))); - $access = new Access($con, $lw, $um, $helper, $config); + $access = new Access($con, $lw, $um, $helper, $config, $this->ncUserManager); $values = $access->readAttribute('uid=whoever,dc=example,dc=org', $attribute); $this->assertSame($values[0], strtolower($dnFromServer)); } diff --git a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php index d3d33a82da9..54d8b49cdc8 100644 --- a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php +++ b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php @@ -235,6 +235,29 @@ abstract class AbstractMappingTest extends \Test\TestCase { } /** + * tests clear() for successful update. + */ + public function testClearCb() { + list($mapper, $data) = $this->initTest(); + + $callbackCalls = 0; + $test = $this; + + $callback = function (string $id) use ($test, &$callbackCalls) { + $test->assertTrue(trim($id) !== ''); + $callbackCalls++; + }; + + $done = $mapper->clearCb($callback, $callback); + $this->assertTrue($done); + $this->assertSame(count($data) * 2, $callbackCalls); + foreach($data as $entry) { + $name = $mapper->getNameByUUID($entry['uuid']); + $this->assertFalse($name); + } + } + + /** * tests getList() method */ public function testList() { diff --git a/apps/workflowengine/l10n/el.js b/apps/workflowengine/l10n/el.js index 359f0fe5529..50c5e42e7d9 100644 --- a/apps/workflowengine/l10n/el.js +++ b/apps/workflowengine/l10n/el.js @@ -1,6 +1,7 @@ OC.L10N.register( "workflowengine", { + "Unable to retrieve the group list" : "Αδύνατη η ανάκτηση λίστας της ομάδας", "Saved" : "Αποθηκεύτηκε", "Saving failed:" : "Απέτυχε η αποθήκευση:", "File MIME type" : "Τύπος αρχείου MIME", diff --git a/apps/workflowengine/l10n/el.json b/apps/workflowengine/l10n/el.json index 66473d4a06c..c445a8a10d2 100644 --- a/apps/workflowengine/l10n/el.json +++ b/apps/workflowengine/l10n/el.json @@ -1,4 +1,5 @@ { "translations": { + "Unable to retrieve the group list" : "Αδύνατη η ανάκτηση λίστας της ομάδας", "Saved" : "Αποθηκεύτηκε", "Saving failed:" : "Απέτυχε η αποθήκευση:", "File MIME type" : "Τύπος αρχείου MIME", diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js index d8fcc3a7e07..6849de50d51 100644 --- a/apps/workflowengine/l10n/nb.js +++ b/apps/workflowengine/l10n/nb.js @@ -1,6 +1,7 @@ OC.L10N.register( "workflowengine", { + "Unable to retrieve the group list" : "Kunne ikke hente gruppelisten", "Saved" : "Lagret", "Saving failed:" : "Lagring mislyktes:", "File MIME type" : "Filens MIME-type", diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json index 808df45cafd..ba9186aca27 100644 --- a/apps/workflowengine/l10n/nb.json +++ b/apps/workflowengine/l10n/nb.json @@ -1,4 +1,5 @@ { "translations": { + "Unable to retrieve the group list" : "Kunne ikke hente gruppelisten", "Saved" : "Lagret", "Saving failed:" : "Lagring mislyktes:", "File MIME type" : "Filens MIME-type", diff --git a/apps/workflowengine/l10n/zh_CN.js b/apps/workflowengine/l10n/zh_CN.js index 0d56201cf52..cf45cb709f9 100644 --- a/apps/workflowengine/l10n/zh_CN.js +++ b/apps/workflowengine/l10n/zh_CN.js @@ -1,6 +1,7 @@ OC.L10N.register( "workflowengine", { + "Unable to retrieve the group list" : "无法获取用户分组列表", "Saved" : "已保存", "Saving failed:" : "保存失败:", "File MIME type" : "文件MIME类型", diff --git a/apps/workflowengine/l10n/zh_CN.json b/apps/workflowengine/l10n/zh_CN.json index e756bddee80..7eae6cc3cf8 100644 --- a/apps/workflowengine/l10n/zh_CN.json +++ b/apps/workflowengine/l10n/zh_CN.json @@ -1,4 +1,5 @@ { "translations": { + "Unable to retrieve the group list" : "无法获取用户分组列表", "Saved" : "已保存", "Saving failed:" : "保存失败:", "File MIME type" : "文件MIME类型", diff --git a/build/autoloaderchecker.sh b/build/autoloaderchecker.sh index ffa157f6c80..ffa157f6c80 100644..100755 --- a/build/autoloaderchecker.sh +++ b/build/autoloaderchecker.sh diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index 0aead766f2a..9769037f190 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -39,6 +39,7 @@ require __DIR__ . '/../../vendor/autoload.php'; trait BasicStructure { use Auth; + use Download; use Trashbin; /** @var string */ @@ -356,8 +357,41 @@ trait BasicStructure { * @param string $text */ public function modifyTextOfFile($user, $filename, $text) { - self::removeFile("../../data/$user/files", "$filename"); - file_put_contents("../../data/$user/files" . "$filename", "$text"); + self::removeFile($this->getDataDirectory() . "/$user/files", "$filename"); + file_put_contents($this->getDataDirectory() . "/$user/files" . "$filename", "$text"); + } + + private function getDataDirectory() { + // Based on "runOcc" from CommandLine trait + $args = ['config:system:get', 'datadirectory']; + $args = array_map(function($arg) { + return escapeshellarg($arg); + }, $args); + $args[] = '--no-ansi --no-warnings'; + $args = implode(' ', $args); + + $descriptor = [ + 0 => ['pipe', 'r'], + 1 => ['pipe', 'w'], + 2 => ['pipe', 'w'], + ]; + $process = proc_open('php console.php ' . $args, $descriptor, $pipes, $ocPath = '../..'); + $lastStdOut = stream_get_contents($pipes[1]); + proc_close($process); + + return trim($lastStdOut); + } + + /** + * @Given file :filename is created :times times in :user user data + * @param string $filename + * @param string $times + * @param string $user + */ + public function fileIsCreatedTimesInUserData($filename, $times, $user) { + for ($i = 0; $i < $times; $i++) { + file_put_contents($this->getDataDirectory() . "/$user/files" . "$filename-$i", "content-$i"); + } } public function createFileSpecificSize($name, $size) { diff --git a/build/integration/features/bootstrap/Download.php b/build/integration/features/bootstrap/Download.php new file mode 100644 index 00000000000..90e2bdf67ac --- /dev/null +++ b/build/integration/features/bootstrap/Download.php @@ -0,0 +1,143 @@ +<?php + +/** + * + * @copyright Copyright (c) 2018, Daniel Calviño Sánchez (danxuliu@gmail.com) + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +use GuzzleHttp\Client; +use GuzzleHttp\Message\ResponseInterface; + +require __DIR__ . '/../../vendor/autoload.php'; + +trait Download { + + /** @var string **/ + private $downloadedFile; + + /** @AfterScenario **/ + public function cleanupDownloadedFile() { + $this->downloadedFile = null; + } + + /** + * @When user :user downloads zip file for entries :entries in folder :folder + */ + public function userDownloadsZipFileForEntriesInFolder($user, $entries, $folder) { + $this->asAn($user); + $this->sendingToDirectUrl('GET', "/index.php/apps/files/ajax/download.php?dir=" . $folder . "&files=[" . $entries . "]"); + $this->theHTTPStatusCodeShouldBe('200'); + + $this->getDownloadedFile(); + } + + private function getDownloadedFile() { + $this->downloadedFile = ''; + + $body = $this->response->getBody(); + while (!$body->eof()) { + $this->downloadedFile .= $body->read(8192); + } + $body->close(); + } + + /** + * @Then the downloaded zip file is a zip32 file + */ + public function theDownloadedZipFileIsAZip32File() { + // assertNotContains is not used to prevent the whole file from being + // printed in case of error. + PHPUnit_Framework_Assert::assertTrue( + strpos($this->downloadedFile, "\x50\x4B\x06\x06") === false, + "File contains the zip64 end of central dir signature" + ); + } + + /** + * @Then the downloaded zip file is a zip64 file + */ + public function theDownloadedZipFileIsAZip64File() { + // assertNotContains is not used to prevent the whole file from being + // printed in case of error. + PHPUnit_Framework_Assert::assertTrue( + strpos($this->downloadedFile, "\x50\x4B\x06\x06") !== false, + "File does not contain the zip64 end of central dir signature" + ); + } + + /** + * @Then the downloaded zip file contains a file named :fileName with the contents of :sourceFileName from :user data + */ + public function theDownloadedZipFileContainsAFileNamedWithTheContentsOfFromData($fileName, $sourceFileName, $user) { + $fileHeaderRegExp = '/'; + $fileHeaderRegExp .= "\x50\x4B\x03\x04"; // Local file header signature + $fileHeaderRegExp .= '.{22,22}'; // Ignore from "version needed to extract" to "uncompressed size" + $fileHeaderRegExp .= preg_quote(pack('v', strlen($fileName)), '/'); // File name length + $fileHeaderRegExp .= '(.{2,2})'; // Get "extra field length" + $fileHeaderRegExp .= preg_quote($fileName, '/'); // File name + $fileHeaderRegExp .= '/s'; // PCRE_DOTALL, so all characters (including bytes that happen to be new line characters) match + + // assertRegExp is not used to prevent the whole file from being printed + // in case of error and to be able to get the extra field length. + PHPUnit_Framework_Assert::assertEquals( + 1, preg_match($fileHeaderRegExp, $this->downloadedFile, $matches), + "Local header for file did not appear once in zip file" + ); + + $extraFieldLength = unpack('vextraFieldLength', $matches[1])['extraFieldLength']; + $expectedFileContents = file_get_contents($this->getDataDirectory() . "/$user/files" . $sourceFileName); + + $fileHeaderAndContentRegExp = '/'; + $fileHeaderAndContentRegExp .= "\x50\x4B\x03\x04"; // Local file header signature + $fileHeaderAndContentRegExp .= '.{22,22}'; // Ignore from "version needed to extract" to "uncompressed size" + $fileHeaderAndContentRegExp .= preg_quote(pack('v', strlen($fileName)), '/'); // File name length + $fileHeaderAndContentRegExp .= '.{2,2}'; // Ignore "extra field length" + $fileHeaderAndContentRegExp .= preg_quote($fileName, '/'); // File name + $fileHeaderAndContentRegExp .= '.{' . $extraFieldLength . ',' . $extraFieldLength . '}'; // Ignore "extra field" + $fileHeaderAndContentRegExp .= preg_quote($expectedFileContents, '/'); // File contents + $fileHeaderAndContentRegExp .= '/s'; // PCRE_DOTALL, so all characters (including bytes that happen to be new line characters) match + + // assertRegExp is not used to prevent the whole file from being printed + // in case of error. + PHPUnit_Framework_Assert::assertEquals( + 1, preg_match($fileHeaderAndContentRegExp, $this->downloadedFile), + "Local header and contents for file did not appear once in zip file" + ); + } + + /** + * @Then the downloaded zip file contains a folder named :folderName + */ + public function theDownloadedZipFileContainsAFolderNamed($folderName) { + $folderHeaderRegExp = '/'; + $folderHeaderRegExp .= "\x50\x4B\x03\x04"; // Local file header signature + $folderHeaderRegExp .= '.{22,22}'; // Ignore from "version needed to extract" to "uncompressed size" + $folderHeaderRegExp .= preg_quote(pack('v', strlen($folderName)), '/'); // File name length + $folderHeaderRegExp .= '.{2,2}'; // Ignore "extra field length" + $folderHeaderRegExp .= preg_quote($folderName, '/'); // File name + $folderHeaderRegExp .= '/s'; // PCRE_DOTALL, so all characters (including bytes that happen to be new line characters) match + + // assertRegExp is not used to prevent the whole file from being printed + // in case of error. + PHPUnit_Framework_Assert::assertEquals( + 1, preg_match($folderHeaderRegExp, $this->downloadedFile), + "Local header for folder did not appear once in zip file" + ); + } +} diff --git a/build/integration/features/download.feature b/build/integration/features/download.feature new file mode 100644 index 00000000000..16d346b0150 --- /dev/null +++ b/build/integration/features/download.feature @@ -0,0 +1,294 @@ +Feature: download + + Scenario: downloading 2 small files returns a zip32 + Given using new dav path + And user "user0" exists + And User "user0" copies file "/welcome.txt" to "/welcome2.txt" + When user "user0" downloads zip file for entries '"welcome.txt","welcome2.txt"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/welcome.txt" from "user0" data + And the downloaded zip file contains a file named "welcome2.txt" with the contents of "/welcome2.txt" from "user0" data + + Scenario: downloading a small file and a directory returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/emptySubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","emptySubFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "emptySubFolder/" + + Scenario: downloading a small file and 2 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/subFolder" + And user "user0" created a folder "/subFolder/emptySubSubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","subFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "subFolder/" + And the downloaded zip file contains a folder named "subFolder/emptySubSubFolder/" + + Scenario: downloading dir with 2 small files returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/sparseFolder/welcome.txt" + And User "user0" copies file "/welcome.txt" to "/sparseFolder/welcome2.txt" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a file named "sparseFolder/welcome2.txt" with the contents of "/sparseFolder/welcome2.txt" from "user0" data + + Scenario: downloading dir with a small file and a directory returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/sparseFolder/welcome.txt" + And user "user0" created a folder "/sparseFolder/emptySubFolder" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "sparseFolder/emptySubFolder/" + + Scenario: downloading dir with a small file and 2 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/sparseFolder/welcome.txt" + And user "user0" created a folder "/sparseFolder/subFolder" + And user "user0" created a folder "/sparseFolder/subFolder/emptySubSubFolder" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "sparseFolder/subFolder/" + And the downloaded zip file contains a folder named "sparseFolder/subFolder/emptySubSubFolder/" + + Scenario: downloading (from folder) 2 small files returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/welcome.txt" + And User "user0" copies file "/welcome.txt" to "/baseFolder/welcome2.txt" + When user "user0" downloads zip file for entries '"welcome.txt","welcome2.txt"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/baseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a file named "welcome2.txt" with the contents of "/baseFolder/welcome2.txt" from "user0" data + + Scenario: downloading (from folder) a small file and a directory returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/welcome.txt" + And user "user0" created a folder "/baseFolder/emptySubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","emptySubFolder"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/baseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "emptySubFolder/" + + Scenario: downloading (from folder) a small file and 2 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/welcome.txt" + And user "user0" created a folder "/baseFolder/subFolder" + And user "user0" created a folder "/baseFolder/subFolder/emptySubSubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","subFolder"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/baseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "subFolder/" + And the downloaded zip file contains a folder named "subFolder/emptySubSubFolder/" + + Scenario: downloading (from folder) dir with 2 small files returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And user "user0" created a folder "/baseFolder/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/sparseFolder/welcome.txt" + And User "user0" copies file "/welcome.txt" to "/baseFolder/sparseFolder/welcome2.txt" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/baseFolder/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a file named "sparseFolder/welcome2.txt" with the contents of "/baseFolder/sparseFolder/welcome2.txt" from "user0" data + + Scenario: downloading (from folder) dir with a small file and a directory returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And user "user0" created a folder "/baseFolder/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/sparseFolder/welcome.txt" + And user "user0" created a folder "/baseFolder/sparseFolder/emptySubFolder" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/baseFolder/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "sparseFolder/emptySubFolder/" + + Scenario: downloading (from folder) dir with a small file and 2 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/baseFolder" + And user "user0" created a folder "/baseFolder/sparseFolder" + And User "user0" copies file "/welcome.txt" to "/baseFolder/sparseFolder/welcome.txt" + And user "user0" created a folder "/baseFolder/sparseFolder/subFolder" + And user "user0" created a folder "/baseFolder/sparseFolder/subFolder/emptySubSubFolder" + When user "user0" downloads zip file for entries '"sparseFolder"' in folder "/baseFolder/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "sparseFolder/" + And the downloaded zip file contains a file named "sparseFolder/welcome.txt" with the contents of "/baseFolder/sparseFolder/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "sparseFolder/subFolder/" + And the downloaded zip file contains a folder named "sparseFolder/subFolder/emptySubSubFolder/" + + @large + Scenario: downloading small file and dir with 65524 small files and 9 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/crowdedFolder" + And user "user0" created a folder "/crowdedFolder/subFolder1" + And file "/crowdedFolder/subFolder1/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder1" + And user "user0" created a folder "/crowdedFolder/subFolder2" + And file "/crowdedFolder/subFolder2/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder2" + And user "user0" created a folder "/crowdedFolder/subFolder3" + And file "/crowdedFolder/subFolder3/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder3" + And user "user0" created a folder "/crowdedFolder/subFolder4" + And file "/crowdedFolder/subFolder4/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder4" + And user "user0" created a folder "/crowdedFolder/subFolder5" + And file "/crowdedFolder/subFolder5/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder5" + And user "user0" created a folder "/crowdedFolder/subFolder6" + And file "/crowdedFolder/subFolder6/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder6" + And user "user0" created a folder "/crowdedFolder/subFolder7" + And file "/crowdedFolder/subFolder7/test.txt" is created "5524" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder7" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","crowdedFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder1/" + And the downloaded zip file contains a file named "crowdedFolder/subFolder1/test.txt-0" with the contents of "/crowdedFolder/subFolder1/test.txt-0" from "user0" data + And the downloaded zip file contains a file named "crowdedFolder/subFolder7/test.txt-5523" with the contents of "/crowdedFolder/subFolder7/test.txt-5523" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder/" + + @large + Scenario: downloading dir with 65525 small files and 9 nested directories returns a zip32 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/crowdedFolder" + And user "user0" created a folder "/crowdedFolder/subFolder1" + And file "/crowdedFolder/subFolder1/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder1" + And user "user0" created a folder "/crowdedFolder/subFolder2" + And file "/crowdedFolder/subFolder2/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder2" + And user "user0" created a folder "/crowdedFolder/subFolder3" + And file "/crowdedFolder/subFolder3/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder3" + And user "user0" created a folder "/crowdedFolder/subFolder4" + And file "/crowdedFolder/subFolder4/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder4" + And user "user0" created a folder "/crowdedFolder/subFolder5" + And file "/crowdedFolder/subFolder5/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder5" + And user "user0" created a folder "/crowdedFolder/subFolder6" + And file "/crowdedFolder/subFolder6/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder6" + And user "user0" created a folder "/crowdedFolder/subFolder7" + And file "/crowdedFolder/subFolder7/test.txt" is created "5525" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder7" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder" + When user "user0" downloads zip file for entries '"crowdedFolder"' in folder "/" + Then the downloaded zip file is a zip32 file + And the downloaded zip file contains a folder named "crowdedFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder1/" + And the downloaded zip file contains a file named "crowdedFolder/subFolder1/test.txt-0" with the contents of "/crowdedFolder/subFolder1/test.txt-0" from "user0" data + And the downloaded zip file contains a file named "crowdedFolder/subFolder7/test.txt-5524" with the contents of "/crowdedFolder/subFolder7/test.txt-5524" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder/" + + @large + Scenario: downloading small file and dir with 65524 small files and 10 nested directories returns a zip64 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/crowdedFolder" + And user "user0" created a folder "/crowdedFolder/subFolder1" + And file "/crowdedFolder/subFolder1/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder1" + And user "user0" created a folder "/crowdedFolder/subFolder2" + And file "/crowdedFolder/subFolder2/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder2" + And user "user0" created a folder "/crowdedFolder/subFolder3" + And file "/crowdedFolder/subFolder3/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder3" + And user "user0" created a folder "/crowdedFolder/subFolder4" + And file "/crowdedFolder/subFolder4/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder4" + And user "user0" created a folder "/crowdedFolder/subFolder5" + And file "/crowdedFolder/subFolder5/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder5" + And user "user0" created a folder "/crowdedFolder/subFolder6" + And file "/crowdedFolder/subFolder6/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder6" + And user "user0" created a folder "/crowdedFolder/subFolder7" + And file "/crowdedFolder/subFolder7/test.txt" is created "5524" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder7" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/emptySubSubFolder" + When user "user0" downloads zip file for entries '"welcome.txt","crowdedFolder"' in folder "/" + Then the downloaded zip file is a zip64 file + And the downloaded zip file contains a file named "welcome.txt" with the contents of "/welcome.txt" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder1/" + And the downloaded zip file contains a file named "crowdedFolder/subFolder1/test.txt-0" with the contents of "/crowdedFolder/subFolder1/test.txt-0" from "user0" data + And the downloaded zip file contains a file named "crowdedFolder/subFolder7/test.txt-5523" with the contents of "/crowdedFolder/subFolder7/test.txt-5523" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/emptySubSubFolder/" + + @large + Scenario: downloading dir with 65525 small files and 10 nested directories returns a zip64 + Given using new dav path + And user "user0" exists + And user "user0" created a folder "/crowdedFolder" + And user "user0" created a folder "/crowdedFolder/subFolder1" + And file "/crowdedFolder/subFolder1/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder1" + And user "user0" created a folder "/crowdedFolder/subFolder2" + And file "/crowdedFolder/subFolder2/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder2" + And user "user0" created a folder "/crowdedFolder/subFolder3" + And file "/crowdedFolder/subFolder3/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder3" + And user "user0" created a folder "/crowdedFolder/subFolder4" + And file "/crowdedFolder/subFolder4/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder4" + And user "user0" created a folder "/crowdedFolder/subFolder5" + And file "/crowdedFolder/subFolder5/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder5" + And user "user0" created a folder "/crowdedFolder/subFolder6" + And file "/crowdedFolder/subFolder6/test.txt" is created "10000" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder6" + And user "user0" created a folder "/crowdedFolder/subFolder7" + And file "/crowdedFolder/subFolder7/test.txt" is created "5525" times in "user0" user data + And invoking occ with "files:scan --path /user0/files/crowdedFolder/subFolder7" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder" + And user "user0" created a folder "/crowdedFolder/subFolder7/emptySubSubFolder" + When user "user0" downloads zip file for entries '"crowdedFolder"' in folder "/" + Then the downloaded zip file is a zip64 file + And the downloaded zip file contains a folder named "crowdedFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder1/" + And the downloaded zip file contains a file named "crowdedFolder/subFolder1/test.txt-0" with the contents of "/crowdedFolder/subFolder1/test.txt-0" from "user0" data + And the downloaded zip file contains a file named "crowdedFolder/subFolder7/test.txt-5524" with the contents of "/crowdedFolder/subFolder7/test.txt-5524" from "user0" data + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/subSubFolder/emptySubSubSubFolder/" + And the downloaded zip file contains a folder named "crowdedFolder/subFolder7/emptySubSubFolder/" diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature index 84e2e30baa1..647bcb1704b 100644 --- a/build/integration/features/provisioning-v1.feature +++ b/build/integration/features/provisioning-v1.feature @@ -5,7 +5,7 @@ Feature: provisioning Scenario: Getting an not existing user Given As an "admin" When sending "GET" to "/cloud/users/test" - Then the OCS status code should be "998" + Then the OCS status code should be "404" And the HTTP status code should be "200" Scenario: Listing all users @@ -264,7 +264,7 @@ Feature: provisioning And user "not-user" does not exist And group "new-group" exists When sending "GET" to "/cloud/users/not-user/subadmins" - Then the OCS status code should be "101" + Then the OCS status code should be "404" And the HTTP status code should be "200" Scenario: Getting subadmin users of a group diff --git a/build/integration/run.sh b/build/integration/run.sh index 45c2bcdaf2b..b747bb52c6b 100755 --- a/build/integration/run.sh +++ b/build/integration/run.sh @@ -2,6 +2,12 @@ OC_PATH=../../ OCC=${OC_PATH}occ +TAGS="" +if [ "$1" = "--tags" ]; then + TAGS="--tags=$2" + + shift 2 +fi SCENARIO_TO_RUN=$1 HIDE_OC_LOGS=$2 @@ -52,7 +58,7 @@ if [ "$INSTALLED" == "true" ]; then fi -vendor/bin/behat --strict -f junit -f pretty $SCENARIO_TO_RUN +vendor/bin/behat --strict -f junit -f pretty $TAGS $SCENARIO_TO_RUN RESULT=$? kill $PHPPID diff --git a/config/config.sample.php b/config/config.sample.php index ba5f3d68146..d1341feb0d2 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -764,9 +764,9 @@ $CONFIG = array( * old logfile reaches your limit. If a rotated log file is already present, it * will be overwritten. * - * Defaults to ``0`` (no rotation) + * Defaults to 100 MB */ -'log_rotate_size' => false, +'log_rotate_size' => 100 * 1024 * 1024, /** diff --git a/core/Command/Log/File.php b/core/Command/Log/File.php index e5db2c1acc4..8be01d2b6ef 100644 --- a/core/Command/Log/File.php +++ b/core/Command/Log/File.php @@ -105,7 +105,7 @@ class File extends Command implements Completion\CompletionAwareInterface { $defaultLogFile = rtrim($dataDir, '/').'/nextcloud.log'; $output->writeln('Log file: '.$this->config->getSystemValue('logfile', $defaultLogFile)); - $rotateSize = $this->config->getSystemValue('log_rotate_size', 0); + $rotateSize = $this->config->getSystemValue('log_rotate_size', 100*1024*1024); if ($rotateSize) { $rotateString = \OCP\Util::humanFileSize($rotateSize); } else { diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php index 23bd42a0f18..ab9d98df8d6 100644 --- a/core/Controller/ClientFlowLoginController.php +++ b/core/Controller/ClientFlowLoginController.php @@ -213,6 +213,44 @@ class ClientFlowLoginController extends Controller { * @param string $clientIdentifier * @return TemplateResponse */ + public function grantPage($stateToken = '', + $clientIdentifier = '') { + if(!$this->isValidToken($stateToken)) { + return $this->stateTokenForbiddenResponse(); + } + + $clientName = $this->getClientName(); + $client = null; + if($clientIdentifier !== '') { + $client = $this->clientMapper->getByIdentifier($clientIdentifier); + $clientName = $client->getName(); + } + + return new TemplateResponse( + $this->appName, + 'loginflow/grant', + [ + 'client' => $clientName, + 'clientIdentifier' => $clientIdentifier, + 'instanceName' => $this->defaults->getName(), + 'urlGenerator' => $this->urlGenerator, + 'stateToken' => $stateToken, + 'serverHost' => $this->request->getServerHost(), + 'oauthState' => $this->session->get('oauth.state'), + ], + 'guest' + ); + } + + /** + * @NoAdminRequired + * @NoCSRFRequired + * @UseSession + * + * @param string $stateToken + * @param string $clientIdentifier + * @return TemplateResponse + */ public function redirectPage($stateToken = '', $clientIdentifier = '') { if(!$this->isValidToken($stateToken)) { diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php index d0a91320e1f..2235439d956 100644 --- a/core/Controller/LoginController.php +++ b/core/Controller/LoginController.php @@ -33,6 +33,7 @@ namespace OC\Core\Controller; +use OC\Authentication\Token\IToken; use OC\Authentication\TwoFactorAuth\Manager; use OC\Security\Bruteforce\Throttler; use OC\User\Session; @@ -137,11 +138,11 @@ class LoginController extends Controller { * * @param string $user * @param string $redirect_url - * @param string $remember_login * * @return TemplateResponse|RedirectResponse */ - public function showLoginForm($user, $redirect_url, $remember_login) { + public function showLoginForm(string $user = null, string $redirect_url = null): Http\Response { + if ($this->userSession->isLoggedIn()) { return new RedirectResponse(OC_Util::getDefaultPageUrl()); } @@ -184,8 +185,6 @@ class LoginController extends Controller { } $parameters['alt_login'] = OC_App::getAlternativeLogIns(); - $parameters['rememberLoginState'] = !empty($remember_login) ? $remember_login : 0; - $parameters['hideRemeberLoginState'] = !empty($redirect_url) && $this->session->exists('client.flow.state.token'); if ($user !== null && $user !== '') { $parameters['loginName'] = $user; @@ -240,7 +239,7 @@ class LoginController extends Controller { * @param string $timezone_offset * @return RedirectResponse */ - public function tryLogin($user, $password, $redirect_url, $remember_login = false, $timezone = '', $timezone_offset = '') { + public function tryLogin($user, $password, $redirect_url, $remember_login = true, $timezone = '', $timezone_offset = '') { if(!is_string($user)) { throw new \InvalidArgumentException('Username must be string'); } @@ -288,7 +287,7 @@ class LoginController extends Controller { // TODO: remove password checks from above and let the user session handle failures // requires https://github.com/owncloud/core/pull/24616 $this->userSession->completeLogin($loginResult, ['loginName' => $user, 'password' => $password]); - $this->userSession->createSessionToken($this->request, $loginResult->getUID(), $user, $password, (int)$remember_login); + $this->userSession->createSessionToken($this->request, $loginResult->getUID(), $user, $password, IToken::REMEMBER); // User has successfully logged in, now remove the password reset link, when it is available $this->config->deleteUserValue($loginResult->getUID(), 'core', 'lostpassword'); diff --git a/core/Migrations/Version14000Date20180404140050.php b/core/Migrations/Version14000Date20180404140050.php new file mode 100644 index 00000000000..d7077caa149 --- /dev/null +++ b/core/Migrations/Version14000Date20180404140050.php @@ -0,0 +1,80 @@ +<?php +declare(strict_types=1); +/** + * @copyright Copyright (c) 2018 Roeland Jago Douma <roeland@famdouma.nl> + * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Core\Migrations; + +use OCP\DB\ISchemaWrapper; +use OCP\IDBConnection; +use OCP\Migration\SimpleMigrationStep; +use OCP\Migration\IOutput; + +/** + * Auto-generated migration step: Please modify to your needs! + */ +class Version14000Date20180404140050 extends SimpleMigrationStep { + + /** @var IDBConnection */ + private $connection; + + public function __construct(IDBConnection $connection) { + $this->connection = $connection; + } + + /** + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * @return null|ISchemaWrapper + */ + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) { + /** @var ISchemaWrapper $schema */ + $schema = $schemaClosure(); + + $table = $schema->getTable('users'); + + $table->addColumn('uid_lower', 'string', [ + 'notnull' => false, + 'length' => 64, + 'default' => '', + ]); + $table->addIndex(['uid_lower'], 'user_uid_lower'); + + return $schema; + } + + /** + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @param array $options + * + * @suppress SqlInjectionChecker + */ + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { + $qb = $this->connection->getQueryBuilder(); + + $qb->update('users') + ->set('uid_lower', $qb->func()->lower('uid')); + $qb->execute(); + } +} diff --git a/core/css/apps.scss b/core/css/apps.scss index 6b3ab623704..624f7984293 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -233,7 +233,7 @@ kbd { > a, > .app-navigation-entry-bullet { /* hide icon or bullet if loading state*/ - background: none !important; + background: transparent !important; } } /* Main entry link */ @@ -281,6 +281,12 @@ kbd { border: none; border-radius: 50%; cursor: pointer; + transition: background 100ms ease-in-out; + + + a { + /* hide icon if bullet, can't have both */ + background: transparent !important; + } } /* popover fix the flex positionning of the li parent */ @@ -337,7 +343,7 @@ kbd { margin: 0; z-index: 110; } - &:after { + &:before { position: absolute; height: 44px; width: 44px; @@ -357,13 +363,14 @@ kbd { -webkit-transform: rotate(-90deg); -ms-transform: rotate(-90deg); transform: rotate(-90deg); + z-index: 50; } /* force padding on link no matter if 'a' has an icon class */ > a:first-child { padding-left: 44px; } - &:after, + &:before, > a { transition: background 100ms ease-in-out, transform 250ms ease-in-out, @@ -375,12 +382,15 @@ kbd { } &:hover, &:focus { - &:after { + &:before { opacity: 1; } + .app-navigation-entry-bullet { + background: transparent !important; + } } &.open { - &:after { + &:before { -webkit-transform: rotate(0); -ms-transform: rotate(0); transform: rotate(0); @@ -467,7 +477,7 @@ kbd { height: 38px; flex: 0 0 36px; &:not(:last-child) { - border-radius: 0; + border-radius: 0 !important; } &:not(:first-child) { margin-left: -1px; diff --git a/core/css/header.scss b/core/css/header.scss index b1141476a0e..8e520957889 100644 --- a/core/css/header.scss +++ b/core/css/header.scss @@ -49,7 +49,7 @@ left: 0; right: 0; z-index: 2000; - height: 45px; + height: 50px; background-color: $color-primary; box-sizing: border-box; justify-content: space-between; @@ -57,10 +57,8 @@ /* LOGO and APP NAME -------------------------------------------------------- */ #nextcloud { - padding: 5px; - padding-bottom: 0; - height: 45px; - /* header height */ + padding: 8px 12px; + height: 100%; box-sizing: border-box; opacity: 1; &:focus { @@ -82,8 +80,8 @@ position: absolute; max-width: 350px; max-height: 280px; - right: 0; - top: 44px; + right: 5px; + top: 50px; margin: 0; &:not(.popovermenu) { @@ -100,7 +98,7 @@ width: 0; position: absolute; pointer-events: none; - right: 12px; + right: 10px; } } .logo { @@ -161,13 +159,14 @@ .header-right { > div, > form { + height: 100%; position: relative; > .menutoggle { display: flex; justify-content: center; align-items: center; - width: 44px; - height: 44px; + width: 50px; + height: 100%; cursor: pointer; opacity: 0.6; padding: 0; @@ -225,14 +224,14 @@ /* NAVIGATION --------------------------------------------------------------- */ nav[role='navigation'] { display: inline-block; - width: 44px; - height: 44px; - margin-left: -44px; + width: 50px; + height: 50px; + margin-left: -50px; } .header-left #navigation { position: relative; - left: 22px; /* half the togglemenu */ + left: 25px; /* half the togglemenu */ transform: translateX(-50%); width: 160px; } @@ -340,14 +339,15 @@ nav[role='navigation'] { #settings { display: inline-block; + height: 100%; color: rgba($color-primary-text, 0.7); cursor: pointer; - margin-right: 13px; flex: 0 0 auto; /* User menu on the right */ #expand { opacity: 1; /* override icon opacity */ + padding-right: 12px; img { opacity: .7; @@ -407,6 +407,9 @@ nav[role='navigation'] { } #expanddiv { + &.menu { + right: 17px; + } a { display: inline-flex; align-items: center; @@ -439,23 +442,24 @@ nav[role='navigation'] { #appmenu { display: inline-block; width: auto; + min-width: 50px; + height: 100%; clear: both; - min-width: 88px; li { float: left; display: inline-block; position: relative; vertical-align: top !important; - height: 45px; + height: 100%; cursor: pointer; a { position: relative; display: inline-block; margin: 0; - padding: 12px; - height: 21px; + padding: 15px 15px; + height: 20px; text-align: center; vertical-align: top !important; opacity: .6; @@ -496,7 +500,6 @@ nav[role='navigation'] { border-radius: $border-radius; border-top-left-radius: 0; border-top-right-radius: 0; - margin-top: 0; color: rgba($color-main-text, .7); width: auto; left: 50%; diff --git a/core/css/icons.scss b/core/css/icons.scss index b4505e24e18..775decfa3a8 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -443,6 +443,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } +.icon-video-switch { + background-image: url('../img/actions/video-switch.svg?v=1'); +} + .icon-view-close { background-image: url('../img/actions/view-close.svg?v=1'); } diff --git a/core/css/inputs.scss b/core/css/inputs.scss index caa8209bdbd..7509575f9e5 100644 --- a/core/css/inputs.scss +++ b/core/css/inputs.scss @@ -219,7 +219,7 @@ input { background-clip: padding-box; /* Avoid background under border */ background-color: $color-main-background !important; opacity: 1; - width: 16px; + width: 34px; padding: 7px 6px; cursor: pointer; &:disabled { @@ -247,6 +247,7 @@ input { + .icon-confirm { border-color: $color-primary-element !important; border-left-color: transparent !important; + z-index: 2; /* above previous input */ } } } diff --git a/core/css/mobile.scss b/core/css/mobile.scss index ebc7e094cdb..cfc8c002e17 100644 --- a/core/css/mobile.scss +++ b/core/css/mobile.scss @@ -134,10 +134,8 @@ table.multiselect thead { @media only screen and (max-width: 480px) { #header .header-right .menu { - max-width: calc(100vw - 26px); + max-width: calc(100vw - 10px); position: fixed; - right: 13px; - top: 45px; &::after { display: none !important; } @@ -158,9 +156,14 @@ table.multiselect thead { width: 0; position: absolute; pointer-events: none; - right: 13px; + right: 15px; z-index: 2001; display: none; } + + /* settings need a different offset, since they have a right padding */ + &#settings::after { + right: 27px; + } } } diff --git a/core/css/public.scss b/core/css/public.scss index 6a175de6431..cc2c6bd0826 100644 --- a/core/css/public.scss +++ b/core/css/public.scss @@ -1,7 +1,7 @@ #body-public { .header-right { - span:not(.popovermenu) a { + #header-primary-action a { color: $color-primary-text; } @@ -16,7 +16,32 @@ #header-secondary-action { margin-right: 13px; + + ul li { + min-width: 270px; + } + #save-external-share { + form { + display: flex; + margin: 0; + } + .hidden { + display: none; + } + #save-button-confirm { + flex-grow: 0; + } + } } + } + + #content { + height: initial; + min-height: calc(100vh - 160px); + } + /* force layout to make sure the content element's height matches its contents' height */ + .ie #content { + display: inline-block; } } diff --git a/core/css/styles.scss b/core/css/styles.scss index 0b15718eefd..0bbd89f075b 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -184,17 +184,18 @@ body { padding: 3px; padding-left: 25px; padding-right: 20px; - background: transparent url('../img/actions/search-white.svg?v=1') no-repeat 6px center; + background: transparent url('../img/actions/search-white.svg?v=1') no-repeat center center; color: $color-primary-text; border: 0; border-radius: $border-radius; - margin-top: 3px; + margin-top: 9px; width: 0; cursor: pointer; -webkit-transition: all 100ms; transition: all 100ms; opacity: .6; &:focus, &:active, &:valid { + background-position-x: 6px; color: $color-primary-text; width: 155px; cursor: text; @@ -207,10 +208,11 @@ body { & ~ .icon-close-white { display: inline; position: absolute; - width: 15px; - height: 32px; - right: 3px; + width: 30px; + height: 100%; + right: 0; top: 0; + margin: 0; &, &:focus, &:active, &:hover { border: none; background-color: transparent; @@ -287,7 +289,7 @@ body { width: 100%; overflow-x: hidden; /* prevent horizontal scrollbar */ - padding-top: 45px; + padding-top: 50px; box-sizing: border-box; } diff --git a/core/img/actions/video-switch.svg b/core/img/actions/video-switch.svg new file mode 100644 index 00000000000..239470c1a9d --- /dev/null +++ b/core/img/actions/video-switch.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewbox="0 0 16 16"><path d="m3 3c-1.108 0-2 0.892-2 2v6c0 1.108 0.892 2 2 2h6c1.108 0 2-0.892 2-2v-1.334l4 3.334v-10l-4 3.334v-1.334c0-1.108-0.892-2-2-2h-6zm1.5 3v1.4277h3.4277v-1.4277l2 2-2 2v-1.4277h-3.4277v1.4277l-2-2 2-2z"/></svg> diff --git a/core/js/js.js b/core/js/js.js index 26dbbdb6e63..3d5f489895d 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1553,10 +1553,6 @@ function initCore() { if(appList.length-1-appCount >= 1) { appCount--; } - // show at least one icon - if(appCount < 1) { - appCount = 1; - } $('#more-apps a').removeClass('active'); var lastShownApp; diff --git a/core/js/public/publicpage.js b/core/js/public/publicpage.js index 31b862ba12a..e71bdff12ae 100644 --- a/core/js/public/publicpage.js +++ b/core/js/public/publicpage.js @@ -22,8 +22,26 @@ $(document).ready(function () { - console.log('public'); - $('#body-public .header-right .menutoggle').click(function() { + $('#body-public').find('.header-right .menutoggle').click(function() { $(this).next('.popovermenu').toggleClass('open'); }); + + $('#save-external-share').find('label').click(function () { + $(this).toggleClass('hidden'); + $('.save-form').toggleClass('hidden') + $('#remote_address').focus(); + }); + +}); + +$(document).mouseup(function(e) { + var toggle = $('#body-public').find('.header-right .menutoggle'); + var container = toggle.next('.popovermenu'); + + // if the target of the click isn't the menu toggle, nor a descendant of the + // menu toggle, nor the container nor a descendant of the container + if (!toggle.is(e.target) && toggle.has(e.target).length === 0 && + !container.is(e.target) && container.has(e.target).length === 0) { + container.removeClass('open'); + } }); diff --git a/core/l10n/af.js b/core/l10n/af.js new file mode 100644 index 00000000000..94c6a0af41c --- /dev/null +++ b/core/l10n/af.js @@ -0,0 +1,266 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "Kies asb. ’n lêer.", + "File is too big" : "Lêer is te groot", + "The selected file is not an image." : "Die gekose lêer is nie ’n beeld nie.", + "The selected file cannot be read." : "Die gekose lêer kan nie gelees word nie.", + "Invalid file provided" : "Ongeldige lêer verskaf", + "No image or file provided" : "Geen beeld of lêer verskaf nie", + "Unknown filetype" : "Onbekende lêertipe", + "Invalid image" : "Ongeldige beeld", + "An error occurred. Please contact your admin." : "'n Fout het voorgekom. Kontak asseblief u administrateur.", + "No temporary profile picture available, try again" : "Geen tydelike profiel foto beskikbaar nie, probeer weer", + "No crop data provided" : "Geen snoei data verskaf nie", + "No valid crop data provided" : "Geen geldige snoei data verskaf nie", + "Crop is not square" : "Snoei is nie vierkantig nie", + "State token does not match" : "Staat tekseenheid pas nie", + "Password reset is disabled" : "Wagwoord herstel is gedeaktiveer", + "Couldn't reset password because the token is invalid" : "Kon nie wagwoord herstel nie aangesien die tekseenheid ongeldig is", + "Couldn't reset password because the token is expired" : "Kon nie wagwoord herstel nie aangesien die tekseenheid verval het", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon nie die herstel e-pos stuur nie aangesien daar geen e-pos adres met die gebruikersnaam geassosieer is nie. Kontak asseblief jou administrateur.", + "%s password reset" : "%s wagwoord herstel", + "Password reset" : "Wagwoord herstel", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op die volgende knoppie om jou wagwoord te herstel. As jy nie 'n wagwoord herstel aangevra het nie, moet die e-pos geïgnoreer word.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op die volgende skakel om jou wagwoord te herstel. As jy nie 'n wagwoord herstel aangevra het nie, moet die e-pos geïgnoreer word.", + "Reset your password" : "Herstel jou wagwoord", + "Couldn't send reset email. Please contact your administrator." : "Kon nie die herstel e-pos stuur nie. Kontak asseblief jou administrateur.", + "Couldn't send reset email. Please make sure your username is correct." : "Kon nie die herstel e-pos stuur nie. Kontroleer jou gebruikersnaam.", + "Preparing update" : "Berei bywerking voor", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Herstel waarskuwing: ", + "Repair error: " : "Herstel fout: ", + "[%d / %d]: Checking table %s" : "[%d / %d]: Ondersoek tans tabel %s", + "Turned on maintenance mode" : "Onderhoudsmodus is aangeskakel", + "Turned off maintenance mode" : "Onderhoudsmodus is afgeskakel", + "Maintenance mode is kept active" : "Onderhoudsmodus word aktief gehou", + "Updating database schema" : "Werk tans databasis skema by", + "Updated database" : "Databasis is bygewerk", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Ondersoek tans of die databasis skema bygewerk kan word (afhangende van die databasis grootte kan dit lank neem)", + "Checked database schema update" : "Databasis skema bywerking nagegaan", + "Checking updates of apps" : "Kontroleer tans bywerking vir toeps", + "Checking for update of app \"%s\" in appstore" : "Kontroleer tans bywerking vir toep \"%s\" in die toepwinkel", + "Update app \"%s\" from appstore" : "Werk toep \"%s\" van die toepwinkel by", + "Updated \"%s\" to %s" : "\"%s\" na %s bygewerk", + "Starting code integrity check" : "Kode integriteit word tans nagegaan", + "Finished code integrity check" : "Kode integriteit is suksesvol nagegaan", + "%s (incompatible)" : "%s (onversoenbaar)", + "Following apps have been disabled: %s" : "Die volgende toeps is gedeaktiveer: %s", + "Already up to date" : "Reeds op datum", + "Search contacts …" : "Soek kontakte …", + "No contacts found" : "Geen kontakte gevind nie", + "Show all contacts …" : "Vertoon alle kontakte …", + "Could not load your contacts" : "Kon nie u kontakte laai nie", + "Loading your contacts …" : "Laai tans u kontakte …", + "Looking for {term} …" : "Soek tans vir {term} …", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Daar was probleme met die nagaan van die kode integriteit. Meer inligting…</a>", + "No action available" : "Geen beskikbare aksies nie", + "Settings" : "Instellings", + "Connection to server lost" : "Verbinding met bediener verloor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probleem om bladsy te laai, herlaai in %n sekonde","Probleem om bladsy te laai, herlaai in %n sekondes"], + "Saving..." : "Stoor tans…", + "Dismiss" : "Ontslaan", + "This action requires you to confirm your password" : "Die aksie vereis dat jy jou wagwoord bevestig", + "Authentication required" : "Verifikasie word vereis", + "Password" : "Wagwoord", + "Cancel" : "Kanselleer", + "Confirm" : "Bevestig", + "Failed to authenticate, try again" : "Kon nie verifieer nie, probeer weer", + "seconds ago" : "sekondes gelede", + "Logging in …" : "Meld tans aan …", + "I know what I'm doing" : "Ek weet wat ek doen", + "Password can not be changed. Please contact your administrator." : "Wagwoord kan nie verander word nie. Kontak asseblief u administrateur.", + "Reset password" : "Herstel wagwoord", + "Sending email …" : "Stuur tans e-pos …", + "No" : "Nee", + "Yes" : "Ja", + "No files in here" : "Geen lêers hier nie", + "Choose" : "Kies", + "Copy" : "Kopieer", + "Move" : "Skuif", + "OK" : "OK", + "read-only" : "lees-alleen", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} lêerkonflik","{count} lêerkonflikte"], + "One file conflict" : "Een lêerkonflik", + "New Files" : "Nuwe lêers", + "Already existing files" : "Reeds bestaande lêers", + "Which files do you want to keep?" : "Watter lêers wil jy hou?", + "Continue" : "Gaan voort", + "(all selected)" : "(almal gekies)", + "({count} selected)" : "({count} gekies)", + "Pending" : "Hangend", + "Copy to {folder}" : "Kopieer na {folder}", + "Move to {folder}" : "Skuif na {folder}", + "Very weak password" : "Baie swak wagwoord", + "Weak password" : "Swak wagwoord", + "So-so password" : "Gemiddelde wagwoord", + "Good password" : "Goeie wagwoord", + "Strong password" : "Sterk wagwoord", + "Error occurred while checking server setup" : "'n Fout het voorgekom tydens die nagaan van die bediener se konfigurasie", + "Shared" : "Gedeel", + "Shared with" : "Gedeel met", + "Shared by" : "Gedeel deur", + "Error setting expiration date" : "Fout terwyl vervaldatum stel", + "The public link will expire no later than {days} days after it is created" : "Die publieke skakel sal presies {days} na dit geskep is verval", + "Set expiration date" : "Stel vervaldatum", + "Expiration" : "Verval", + "Expiration date" : "Vervaldatum", + "Choose a password for the public link" : "Kies 'n wagwoord vir die publieke skakel", + "Choose a password for the public link or press the \"Enter\" key" : "Kies 'n wagwoord vir die publieke skakel, of druk die \"Enter\" sleutel", + "Copied!" : "Gekopieer!", + "Not supported!" : "Word nie ondersteun nie!", + "Press ⌘-C to copy." : "Druk ⌘-C om te kopieer.", + "Press Ctrl-C to copy." : "Druk Ctrl-C om te kopieer.", + "Resharing is not allowed" : "Herdeling word nie toegelaat nie", + "Share to {name}" : "Deel met {name}", + "Share link" : "Deel skakel", + "Link" : "Skakel", + "Password protect" : "Beskerm met 'n wagwoord", + "Allow editing" : "Laat redigering toe", + "Email link to person" : "Stuur die skakel per e-pos na die persoon", + "Send" : "Stuur", + "Allow upload and editing" : "Laat oplaai en redigering toe", + "Read only" : "Leesalleen", + "File drop (upload only)" : "Lêer val (slegs oplaai)", + "Shared with you and the group {group} by {owner}" : "Gedeel met u en die groep {group} deur {owner}", + "Shared with you by {owner}" : "Gedeel met u deur {owner}", + "Choose a password for the mail share" : "Kies 'n wagwoord vir die e-pos lêer deel ", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} gedeel via skakel", + "group" : "groep", + "remote" : "afgeleë", + "email" : "e-pos", + "shared by {sharer}" : "gedeel deur {sharer}", + "Unshare" : "Ontdeel", + "Can reshare" : "Kan herdeel", + "Can edit" : "Kan redigeer", + "Can create" : "Kan skep", + "Can change" : "Kan verander", + "Can delete" : "Kan skrap", + "Access control" : "Toegangsbeheer", + "Could not unshare" : "Kon nie ontdeel nie", + "Error while sharing" : "Fout terwyl deel", + "Share details could not be loaded for this item." : "Deel besonderhede kon nie vir die item gelaai word nie.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Ten minste {count} karakter word benodig vir outomatiese aanvulling","Ten minste {count} karakters word benodig vir outomatiese aanvulling"], + "No users or groups found for {search}" : "Geen gebruikers of groepe gevind vir {search}", + "No users found for {search}" : "Geen gebruiker gevind vir {search}", + "An error occurred (\"{message}\"). Please try again" : "'n Fout het voorgekom (\"{message}\"). Probeer asseblief weer", + "An error occurred. Please try again" : "'n Fout het voorgekom. Probeer asseblief weer", + "{sharee} (group)" : "{sharee} (groep)", + "{sharee} (remote)" : "{sharee} (afgeleë)", + "{sharee} (email)" : "{sharee} (e-pos)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Deel", + "Name or email address..." : "Naam of e-posadres...", + "Name or federated cloud ID..." : "Naam of gefedereerde wolk-id...", + "Name, federated cloud ID or email address..." : "Naam, gefedereerde wolk-id of e-pos adres...", + "Name..." : "Naam...", + "Error" : "Fout", + "Error removing share" : "Fout terwyl deel verwyder word", + "Non-existing tag #{tag}" : "Merker #{tag} bestaan nie", + "restricted" : "beperk", + "invisible" : "onsigbaar", + "({scope})" : "({scope})", + "Delete" : "Skrap", + "Rename" : "Hernoem", + "Collaborative tags" : "Samewerkende merkers", + "No tags found" : "Geen merkers gevind nie", + "unknown text" : "onbekende teks", + "Hello world!" : "Hallo wêreld!", + "sunny" : "sonnig", + "Hello {name}, the weather is {weather}" : "Hallo {name}, die weer is {weather}", + "Hello {name}" : "Hallo {name}", + "new" : "nuwe", + "_download %n file_::_download %n files_" : ["%n leër afgelaai","%n leërs afgelaai"], + "Update to {version}" : "Werk by na {version}", + "An error occurred." : "'n Fout het voorgekom.", + "Please reload the page." : "Herlaai asseblief die bladsy.", + "Continue to Nextcloud" : "Gaan voort na Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Die bywerking was suksesvol. U gaan oor %n sekonde na Nextcloud herlei word.","Die bywerking was suksesvol. U gaan oor %n sekondes na Nextcloud herlei word."], + "Searching other places" : "Soek tans in ander plekke", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} soek resultaat in 'n ander gids","{count} soek resultate in ander gidse"], + "Personal" : "Persoonlik", + "Users" : "Gebruikers", + "Apps" : "Toeps", + "Admin" : "Admin", + "Help" : "Hulp", + "Access forbidden" : "Toegang verbode", + "File not found" : "Lêer nie gevind nie", + "The specified document has not been found on the server." : "Die gekose dokument was nie op die bediener gevind nie.", + "You can click here to return to %s." : "U kan hier klik om terug te keer na %s", + "Internal Server Error" : "Interne bediener fout", + "The server was unable to complete your request." : "Die bediener was nie in staat om u versoek voltooi nie.", + "More details can be found in the server log." : "Meer besonderhede kan in die bediener joernaal gevind word.", + "Technical details" : "Tegniese besonderhede", + "Remote Address: %s" : "Afgeleë adres: %s", + "Request ID: %s" : "Versoek id: %s", + "Type: %s" : "Tipe: %s", + "Code: %s" : "Kode: %s", + "Message: %s" : "Boodskap: %s", + "File: %s" : "Lêer: %s", + "Line: %s" : "Lyn: %s", + "Trace" : "Spoor", + "Security warning" : "Sekuriteit waarskuwing", + "Username" : "Gebruikernaam", + "Storage & database" : "Berging & databasis", + "Data folder" : "Data gids", + "Only %s is available." : "Slegs %s is beskikbaar.", + "Database user" : "Databasis gebruiker", + "Database password" : "Databasis wagwoord", + "Database name" : "Databasis naam", + "Database host" : "Databasis gasheer", + "SQLite will be used as database." : "SQLite sal as databasis gebruik word.", + "Finish setup" : "Voltooi opstelling", + "Finishing …" : "Maak klaar …", + "Need help?" : "Hulp nodig?", + "See the documentation" : "Lees die dokumentasie", + "More apps" : "Meer toeps", + "Search" : "Soek", + "Reset search" : "Herstel soek", + "Confirm your password" : "Bevestig jou wagwoord", + "Please contact your administrator." : "Kontak asseblief jou administrateur.", + "An internal error occurred." : "'n Interne fout het voorgekom.", + "Please try again or contact your administrator." : "Probeer asseblief weer of kontak jou administrateur.", + "Username or email" : "Gebruikersnaam of e-pos", + "Log in" : "Meld aan", + "Wrong password." : "Verkeerde wagwoord.", + "Forgot password?" : "Wagwoord vergeet?", + "Back to login" : "Terug na aanmelding", + "App token" : "Toep-tekseenheid", + "Grant access" : "Verleen toegang", + "Account access" : "Rekening toegang", + "Redirecting …" : "Herlei …", + "New password" : "Nuwe wagwoord", + "New Password" : "Nuwe wagwoord", + "Two-factor authentication" : "Twee-faktor-verifikasie", + "Cancel log in" : "Kanselleer aanmelding", + "Use backup code" : "Gebruik rugsteun kode", + "Error while validating your second factor" : "Fout terwyl u tweede faktor gevalideer word", + "Depending on your configuration, this button could also work to trust the domain:" : "Afhangende van u konfigurasie, kan die knoppie ook gebruik word om die domein te vertrou:", + "Add \"%s\" as trusted domain" : "Voeg \"%s\" as 'n vertroude domein by", + "App update required" : "Toep bywerking benodig", + "%s will be updated to version %s" : "%s sal na %s bygewerk word", + "These apps will be updated:" : "Die volgende toeps sal bygewerk word:", + "These incompatible apps will be disabled:" : "Die volgende onversoenbare toeps sal gedeaktiveer word:", + "The theme %s has been disabled." : "Die tema %s is gedeaktiveer.", + "Start update" : "Begin bywerking", + "Detailed logs" : "Gedetailleerde joernale", + "Update needed" : "Bywerking benodig", + "Thank you for your patience." : "Dankie vir u geduld.", + "%s (3rdparty)" : "%s (3departy)", + "There was an error loading your contacts" : "Fout terwyl u kontakte gelaai word", + "Shared with {recipients}" : "Gedeel met {recipients}", + "Share with other people by entering a user or group or an email address." : "Deel met ander deur 'n gebruiker, groep of e-posadres in te vul. ", + "The server encountered an internal error and was unable to complete your request." : "Die bediener het 'n interne fout ondervind en was nie in staat om u versoek voltooi nie.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontak asseblief die bediener administrateur indien die fout herhaaldelik voorkom. Sluit die volgende tegniese besonderhede by u verslag aan.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Vir inligting oor hoe om u bediener behoorlik in te stelr, sien asseblief die <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentasie</a>.", + "This action requires you to confirm your password:" : "Die aksie vereis die bevestiging van u wagwoord:", + "Wrong password. Reset it?" : "Verkeerde wagwoord. Herstel dit?", + "Stay logged in" : "Bly aangemeld", + "Alternative Logins" : "Alternatiewe aanmeldings", + "You are about to grant \"%s\" access to your %s account." : "U is op die punt om \"%s\" toegang tot u %s rekening te verleen", + "Alternative login using app token" : "Alternatiewe aanmelding met die toep-tekseenheid", + "You are accessing the server from an untrusted domain." : "U besoek die bediener vanaf 'n domein wat nie vertrou word nie.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Vir hulp, sien die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentasie</a>.", + "Back to log in" : "Terug na aanmelding" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/af.json b/core/l10n/af.json new file mode 100644 index 00000000000..c176352dbfa --- /dev/null +++ b/core/l10n/af.json @@ -0,0 +1,264 @@ +{ "translations": { + "Please select a file." : "Kies asb. ’n lêer.", + "File is too big" : "Lêer is te groot", + "The selected file is not an image." : "Die gekose lêer is nie ’n beeld nie.", + "The selected file cannot be read." : "Die gekose lêer kan nie gelees word nie.", + "Invalid file provided" : "Ongeldige lêer verskaf", + "No image or file provided" : "Geen beeld of lêer verskaf nie", + "Unknown filetype" : "Onbekende lêertipe", + "Invalid image" : "Ongeldige beeld", + "An error occurred. Please contact your admin." : "'n Fout het voorgekom. Kontak asseblief u administrateur.", + "No temporary profile picture available, try again" : "Geen tydelike profiel foto beskikbaar nie, probeer weer", + "No crop data provided" : "Geen snoei data verskaf nie", + "No valid crop data provided" : "Geen geldige snoei data verskaf nie", + "Crop is not square" : "Snoei is nie vierkantig nie", + "State token does not match" : "Staat tekseenheid pas nie", + "Password reset is disabled" : "Wagwoord herstel is gedeaktiveer", + "Couldn't reset password because the token is invalid" : "Kon nie wagwoord herstel nie aangesien die tekseenheid ongeldig is", + "Couldn't reset password because the token is expired" : "Kon nie wagwoord herstel nie aangesien die tekseenheid verval het", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon nie die herstel e-pos stuur nie aangesien daar geen e-pos adres met die gebruikersnaam geassosieer is nie. Kontak asseblief jou administrateur.", + "%s password reset" : "%s wagwoord herstel", + "Password reset" : "Wagwoord herstel", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op die volgende knoppie om jou wagwoord te herstel. As jy nie 'n wagwoord herstel aangevra het nie, moet die e-pos geïgnoreer word.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Klik op die volgende skakel om jou wagwoord te herstel. As jy nie 'n wagwoord herstel aangevra het nie, moet die e-pos geïgnoreer word.", + "Reset your password" : "Herstel jou wagwoord", + "Couldn't send reset email. Please contact your administrator." : "Kon nie die herstel e-pos stuur nie. Kontak asseblief jou administrateur.", + "Couldn't send reset email. Please make sure your username is correct." : "Kon nie die herstel e-pos stuur nie. Kontroleer jou gebruikersnaam.", + "Preparing update" : "Berei bywerking voor", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "Herstel waarskuwing: ", + "Repair error: " : "Herstel fout: ", + "[%d / %d]: Checking table %s" : "[%d / %d]: Ondersoek tans tabel %s", + "Turned on maintenance mode" : "Onderhoudsmodus is aangeskakel", + "Turned off maintenance mode" : "Onderhoudsmodus is afgeskakel", + "Maintenance mode is kept active" : "Onderhoudsmodus word aktief gehou", + "Updating database schema" : "Werk tans databasis skema by", + "Updated database" : "Databasis is bygewerk", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Ondersoek tans of die databasis skema bygewerk kan word (afhangende van die databasis grootte kan dit lank neem)", + "Checked database schema update" : "Databasis skema bywerking nagegaan", + "Checking updates of apps" : "Kontroleer tans bywerking vir toeps", + "Checking for update of app \"%s\" in appstore" : "Kontroleer tans bywerking vir toep \"%s\" in die toepwinkel", + "Update app \"%s\" from appstore" : "Werk toep \"%s\" van die toepwinkel by", + "Updated \"%s\" to %s" : "\"%s\" na %s bygewerk", + "Starting code integrity check" : "Kode integriteit word tans nagegaan", + "Finished code integrity check" : "Kode integriteit is suksesvol nagegaan", + "%s (incompatible)" : "%s (onversoenbaar)", + "Following apps have been disabled: %s" : "Die volgende toeps is gedeaktiveer: %s", + "Already up to date" : "Reeds op datum", + "Search contacts …" : "Soek kontakte …", + "No contacts found" : "Geen kontakte gevind nie", + "Show all contacts …" : "Vertoon alle kontakte …", + "Could not load your contacts" : "Kon nie u kontakte laai nie", + "Loading your contacts …" : "Laai tans u kontakte …", + "Looking for {term} …" : "Soek tans vir {term} …", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Daar was probleme met die nagaan van die kode integriteit. Meer inligting…</a>", + "No action available" : "Geen beskikbare aksies nie", + "Settings" : "Instellings", + "Connection to server lost" : "Verbinding met bediener verloor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probleem om bladsy te laai, herlaai in %n sekonde","Probleem om bladsy te laai, herlaai in %n sekondes"], + "Saving..." : "Stoor tans…", + "Dismiss" : "Ontslaan", + "This action requires you to confirm your password" : "Die aksie vereis dat jy jou wagwoord bevestig", + "Authentication required" : "Verifikasie word vereis", + "Password" : "Wagwoord", + "Cancel" : "Kanselleer", + "Confirm" : "Bevestig", + "Failed to authenticate, try again" : "Kon nie verifieer nie, probeer weer", + "seconds ago" : "sekondes gelede", + "Logging in …" : "Meld tans aan …", + "I know what I'm doing" : "Ek weet wat ek doen", + "Password can not be changed. Please contact your administrator." : "Wagwoord kan nie verander word nie. Kontak asseblief u administrateur.", + "Reset password" : "Herstel wagwoord", + "Sending email …" : "Stuur tans e-pos …", + "No" : "Nee", + "Yes" : "Ja", + "No files in here" : "Geen lêers hier nie", + "Choose" : "Kies", + "Copy" : "Kopieer", + "Move" : "Skuif", + "OK" : "OK", + "read-only" : "lees-alleen", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} lêerkonflik","{count} lêerkonflikte"], + "One file conflict" : "Een lêerkonflik", + "New Files" : "Nuwe lêers", + "Already existing files" : "Reeds bestaande lêers", + "Which files do you want to keep?" : "Watter lêers wil jy hou?", + "Continue" : "Gaan voort", + "(all selected)" : "(almal gekies)", + "({count} selected)" : "({count} gekies)", + "Pending" : "Hangend", + "Copy to {folder}" : "Kopieer na {folder}", + "Move to {folder}" : "Skuif na {folder}", + "Very weak password" : "Baie swak wagwoord", + "Weak password" : "Swak wagwoord", + "So-so password" : "Gemiddelde wagwoord", + "Good password" : "Goeie wagwoord", + "Strong password" : "Sterk wagwoord", + "Error occurred while checking server setup" : "'n Fout het voorgekom tydens die nagaan van die bediener se konfigurasie", + "Shared" : "Gedeel", + "Shared with" : "Gedeel met", + "Shared by" : "Gedeel deur", + "Error setting expiration date" : "Fout terwyl vervaldatum stel", + "The public link will expire no later than {days} days after it is created" : "Die publieke skakel sal presies {days} na dit geskep is verval", + "Set expiration date" : "Stel vervaldatum", + "Expiration" : "Verval", + "Expiration date" : "Vervaldatum", + "Choose a password for the public link" : "Kies 'n wagwoord vir die publieke skakel", + "Choose a password for the public link or press the \"Enter\" key" : "Kies 'n wagwoord vir die publieke skakel, of druk die \"Enter\" sleutel", + "Copied!" : "Gekopieer!", + "Not supported!" : "Word nie ondersteun nie!", + "Press ⌘-C to copy." : "Druk ⌘-C om te kopieer.", + "Press Ctrl-C to copy." : "Druk Ctrl-C om te kopieer.", + "Resharing is not allowed" : "Herdeling word nie toegelaat nie", + "Share to {name}" : "Deel met {name}", + "Share link" : "Deel skakel", + "Link" : "Skakel", + "Password protect" : "Beskerm met 'n wagwoord", + "Allow editing" : "Laat redigering toe", + "Email link to person" : "Stuur die skakel per e-pos na die persoon", + "Send" : "Stuur", + "Allow upload and editing" : "Laat oplaai en redigering toe", + "Read only" : "Leesalleen", + "File drop (upload only)" : "Lêer val (slegs oplaai)", + "Shared with you and the group {group} by {owner}" : "Gedeel met u en die groep {group} deur {owner}", + "Shared with you by {owner}" : "Gedeel met u deur {owner}", + "Choose a password for the mail share" : "Kies 'n wagwoord vir die e-pos lêer deel ", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} gedeel via skakel", + "group" : "groep", + "remote" : "afgeleë", + "email" : "e-pos", + "shared by {sharer}" : "gedeel deur {sharer}", + "Unshare" : "Ontdeel", + "Can reshare" : "Kan herdeel", + "Can edit" : "Kan redigeer", + "Can create" : "Kan skep", + "Can change" : "Kan verander", + "Can delete" : "Kan skrap", + "Access control" : "Toegangsbeheer", + "Could not unshare" : "Kon nie ontdeel nie", + "Error while sharing" : "Fout terwyl deel", + "Share details could not be loaded for this item." : "Deel besonderhede kon nie vir die item gelaai word nie.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Ten minste {count} karakter word benodig vir outomatiese aanvulling","Ten minste {count} karakters word benodig vir outomatiese aanvulling"], + "No users or groups found for {search}" : "Geen gebruikers of groepe gevind vir {search}", + "No users found for {search}" : "Geen gebruiker gevind vir {search}", + "An error occurred (\"{message}\"). Please try again" : "'n Fout het voorgekom (\"{message}\"). Probeer asseblief weer", + "An error occurred. Please try again" : "'n Fout het voorgekom. Probeer asseblief weer", + "{sharee} (group)" : "{sharee} (groep)", + "{sharee} (remote)" : "{sharee} (afgeleë)", + "{sharee} (email)" : "{sharee} (e-pos)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Deel", + "Name or email address..." : "Naam of e-posadres...", + "Name or federated cloud ID..." : "Naam of gefedereerde wolk-id...", + "Name, federated cloud ID or email address..." : "Naam, gefedereerde wolk-id of e-pos adres...", + "Name..." : "Naam...", + "Error" : "Fout", + "Error removing share" : "Fout terwyl deel verwyder word", + "Non-existing tag #{tag}" : "Merker #{tag} bestaan nie", + "restricted" : "beperk", + "invisible" : "onsigbaar", + "({scope})" : "({scope})", + "Delete" : "Skrap", + "Rename" : "Hernoem", + "Collaborative tags" : "Samewerkende merkers", + "No tags found" : "Geen merkers gevind nie", + "unknown text" : "onbekende teks", + "Hello world!" : "Hallo wêreld!", + "sunny" : "sonnig", + "Hello {name}, the weather is {weather}" : "Hallo {name}, die weer is {weather}", + "Hello {name}" : "Hallo {name}", + "new" : "nuwe", + "_download %n file_::_download %n files_" : ["%n leër afgelaai","%n leërs afgelaai"], + "Update to {version}" : "Werk by na {version}", + "An error occurred." : "'n Fout het voorgekom.", + "Please reload the page." : "Herlaai asseblief die bladsy.", + "Continue to Nextcloud" : "Gaan voort na Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Die bywerking was suksesvol. U gaan oor %n sekonde na Nextcloud herlei word.","Die bywerking was suksesvol. U gaan oor %n sekondes na Nextcloud herlei word."], + "Searching other places" : "Soek tans in ander plekke", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} soek resultaat in 'n ander gids","{count} soek resultate in ander gidse"], + "Personal" : "Persoonlik", + "Users" : "Gebruikers", + "Apps" : "Toeps", + "Admin" : "Admin", + "Help" : "Hulp", + "Access forbidden" : "Toegang verbode", + "File not found" : "Lêer nie gevind nie", + "The specified document has not been found on the server." : "Die gekose dokument was nie op die bediener gevind nie.", + "You can click here to return to %s." : "U kan hier klik om terug te keer na %s", + "Internal Server Error" : "Interne bediener fout", + "The server was unable to complete your request." : "Die bediener was nie in staat om u versoek voltooi nie.", + "More details can be found in the server log." : "Meer besonderhede kan in die bediener joernaal gevind word.", + "Technical details" : "Tegniese besonderhede", + "Remote Address: %s" : "Afgeleë adres: %s", + "Request ID: %s" : "Versoek id: %s", + "Type: %s" : "Tipe: %s", + "Code: %s" : "Kode: %s", + "Message: %s" : "Boodskap: %s", + "File: %s" : "Lêer: %s", + "Line: %s" : "Lyn: %s", + "Trace" : "Spoor", + "Security warning" : "Sekuriteit waarskuwing", + "Username" : "Gebruikernaam", + "Storage & database" : "Berging & databasis", + "Data folder" : "Data gids", + "Only %s is available." : "Slegs %s is beskikbaar.", + "Database user" : "Databasis gebruiker", + "Database password" : "Databasis wagwoord", + "Database name" : "Databasis naam", + "Database host" : "Databasis gasheer", + "SQLite will be used as database." : "SQLite sal as databasis gebruik word.", + "Finish setup" : "Voltooi opstelling", + "Finishing …" : "Maak klaar …", + "Need help?" : "Hulp nodig?", + "See the documentation" : "Lees die dokumentasie", + "More apps" : "Meer toeps", + "Search" : "Soek", + "Reset search" : "Herstel soek", + "Confirm your password" : "Bevestig jou wagwoord", + "Please contact your administrator." : "Kontak asseblief jou administrateur.", + "An internal error occurred." : "'n Interne fout het voorgekom.", + "Please try again or contact your administrator." : "Probeer asseblief weer of kontak jou administrateur.", + "Username or email" : "Gebruikersnaam of e-pos", + "Log in" : "Meld aan", + "Wrong password." : "Verkeerde wagwoord.", + "Forgot password?" : "Wagwoord vergeet?", + "Back to login" : "Terug na aanmelding", + "App token" : "Toep-tekseenheid", + "Grant access" : "Verleen toegang", + "Account access" : "Rekening toegang", + "Redirecting …" : "Herlei …", + "New password" : "Nuwe wagwoord", + "New Password" : "Nuwe wagwoord", + "Two-factor authentication" : "Twee-faktor-verifikasie", + "Cancel log in" : "Kanselleer aanmelding", + "Use backup code" : "Gebruik rugsteun kode", + "Error while validating your second factor" : "Fout terwyl u tweede faktor gevalideer word", + "Depending on your configuration, this button could also work to trust the domain:" : "Afhangende van u konfigurasie, kan die knoppie ook gebruik word om die domein te vertrou:", + "Add \"%s\" as trusted domain" : "Voeg \"%s\" as 'n vertroude domein by", + "App update required" : "Toep bywerking benodig", + "%s will be updated to version %s" : "%s sal na %s bygewerk word", + "These apps will be updated:" : "Die volgende toeps sal bygewerk word:", + "These incompatible apps will be disabled:" : "Die volgende onversoenbare toeps sal gedeaktiveer word:", + "The theme %s has been disabled." : "Die tema %s is gedeaktiveer.", + "Start update" : "Begin bywerking", + "Detailed logs" : "Gedetailleerde joernale", + "Update needed" : "Bywerking benodig", + "Thank you for your patience." : "Dankie vir u geduld.", + "%s (3rdparty)" : "%s (3departy)", + "There was an error loading your contacts" : "Fout terwyl u kontakte gelaai word", + "Shared with {recipients}" : "Gedeel met {recipients}", + "Share with other people by entering a user or group or an email address." : "Deel met ander deur 'n gebruiker, groep of e-posadres in te vul. ", + "The server encountered an internal error and was unable to complete your request." : "Die bediener het 'n interne fout ondervind en was nie in staat om u versoek voltooi nie.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Kontak asseblief die bediener administrateur indien die fout herhaaldelik voorkom. Sluit die volgende tegniese besonderhede by u verslag aan.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Vir inligting oor hoe om u bediener behoorlik in te stelr, sien asseblief die <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentasie</a>.", + "This action requires you to confirm your password:" : "Die aksie vereis die bevestiging van u wagwoord:", + "Wrong password. Reset it?" : "Verkeerde wagwoord. Herstel dit?", + "Stay logged in" : "Bly aangemeld", + "Alternative Logins" : "Alternatiewe aanmeldings", + "You are about to grant \"%s\" access to your %s account." : "U is op die punt om \"%s\" toegang tot u %s rekening te verleen", + "Alternative login using app token" : "Alternatiewe aanmelding met die toep-tekseenheid", + "You are accessing the server from an untrusted domain." : "U besoek die bediener vanaf 'n domein wat nie vertrou word nie.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Vir hulp, sien die <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentasie</a>.", + "Back to log in" : "Terug na aanmelding" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/core/l10n/ar.js b/core/l10n/ar.js index 5b4bd4f736f..c969fa60655 100644 --- a/core/l10n/ar.js +++ b/core/l10n/ar.js @@ -181,8 +181,8 @@ OC.L10N.register( "Wrong password." : "كلمة السر خاطئة.", "Forgot password?" : "هل نسيت كلمة السر ؟", "Back to login" : "العودة إلى تسجيل الدخول", - "Account access" : "حساب النفاذ", "Grant access" : "السماح بالنفاذ", + "Account access" : "حساب النفاذ", "Redirecting …" : "عملية التحويل جارية …", "New password" : "كلمات سر جديدة", "New Password" : "كلمة السر الجديدة", diff --git a/core/l10n/ar.json b/core/l10n/ar.json index ece43d3d706..f5ce13382bb 100644 --- a/core/l10n/ar.json +++ b/core/l10n/ar.json @@ -179,8 +179,8 @@ "Wrong password." : "كلمة السر خاطئة.", "Forgot password?" : "هل نسيت كلمة السر ؟", "Back to login" : "العودة إلى تسجيل الدخول", - "Account access" : "حساب النفاذ", "Grant access" : "السماح بالنفاذ", + "Account access" : "حساب النفاذ", "Redirecting …" : "عملية التحويل جارية …", "New password" : "كلمات سر جديدة", "New Password" : "كلمة السر الجديدة", diff --git a/core/l10n/ast.js b/core/l10n/ast.js index d2ea2d0a8a5..fdc0d82dc90 100644 --- a/core/l10n/ast.js +++ b/core/l10n/ast.js @@ -216,10 +216,8 @@ OC.L10N.register( "Username or email" : "Nome d'usuariu o corréu", "Log in" : "Aniciar sesión", "Wrong password." : "Contraseña incorreuta", - "Stay logged in" : "Caltener sesión", - "You are about to grant %s access to your %s account." : "Tas a pìques de conceder a %s l'accesu a la to cuenta %s.", "App token" : "Pase d'aplicación", - "Alternative login using app token" : "Aniciu de sesión alternativu usando pase d'aplicación", + "You are about to grant %s access to your %s account." : "Tas a pìques de conceder a %s l'accesu a la to cuenta %s.", "Redirecting …" : "Redirixendo...", "New password" : "Contraseña nueva", "New Password" : "Contraseña nueva", @@ -242,6 +240,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparti con otra xente introduciendo un usuariu, grupu, ID de ñube federada o direición de corréu.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparti con otra xente introduciendo un usuariu, grupu o ID de ñube federada.", "Share with other people by entering a user or group or an email address." : "Comparti con otra xente introduciendo un usuariu, grupu o direición de corréu.", - "Alternative Logins" : "Anicios de sesión alternativos" + "Stay logged in" : "Caltener sesión", + "Alternative Logins" : "Anicios de sesión alternativos", + "Alternative login using app token" : "Aniciu de sesión alternativu usando pase d'aplicación" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/ast.json b/core/l10n/ast.json index 0ef4167cca1..f878f98531c 100644 --- a/core/l10n/ast.json +++ b/core/l10n/ast.json @@ -214,10 +214,8 @@ "Username or email" : "Nome d'usuariu o corréu", "Log in" : "Aniciar sesión", "Wrong password." : "Contraseña incorreuta", - "Stay logged in" : "Caltener sesión", - "You are about to grant %s access to your %s account." : "Tas a pìques de conceder a %s l'accesu a la to cuenta %s.", "App token" : "Pase d'aplicación", - "Alternative login using app token" : "Aniciu de sesión alternativu usando pase d'aplicación", + "You are about to grant %s access to your %s account." : "Tas a pìques de conceder a %s l'accesu a la to cuenta %s.", "Redirecting …" : "Redirixendo...", "New password" : "Contraseña nueva", "New Password" : "Contraseña nueva", @@ -240,6 +238,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparti con otra xente introduciendo un usuariu, grupu, ID de ñube federada o direición de corréu.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparti con otra xente introduciendo un usuariu, grupu o ID de ñube federada.", "Share with other people by entering a user or group or an email address." : "Comparti con otra xente introduciendo un usuariu, grupu o direición de corréu.", - "Alternative Logins" : "Anicios de sesión alternativos" + "Stay logged in" : "Caltener sesión", + "Alternative Logins" : "Anicios de sesión alternativos", + "Alternative login using app token" : "Aniciu de sesión alternativu usando pase d'aplicación" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/bg.js b/core/l10n/bg.js index 1d4c40405b9..e81ddcd8640 100644 --- a/core/l10n/bg.js +++ b/core/l10n/bg.js @@ -229,7 +229,6 @@ OC.L10N.register( "Username or email" : "Потребител или имейл", "Log in" : "Вписване", "Wrong password." : "Грешна парола", - "Stay logged in" : "Остани вписан", "Forgot password?" : "Забравена парола?", "Redirecting …" : "Пренасочване ...", "New password" : "Нова парола", @@ -258,6 +257,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "Страницата ще се зареди автоматично, когато %s е отново на линия.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Свържете се със системния администратор ако това съобщение се задържи твърде дълго или се е появило неочаквано.", "Thank you for your patience." : "Благодарим за търпението.", + "Stay logged in" : "Остани вписан", "Alternative Logins" : "Алтернативни методи на вписване" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/bg.json b/core/l10n/bg.json index 2da4ccf013c..e58d48c4e55 100644 --- a/core/l10n/bg.json +++ b/core/l10n/bg.json @@ -227,7 +227,6 @@ "Username or email" : "Потребител или имейл", "Log in" : "Вписване", "Wrong password." : "Грешна парола", - "Stay logged in" : "Остани вписан", "Forgot password?" : "Забравена парола?", "Redirecting …" : "Пренасочване ...", "New password" : "Нова парола", @@ -256,6 +255,7 @@ "This page will refresh itself when the %s instance is available again." : "Страницата ще се зареди автоматично, когато %s е отново на линия.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Свържете се със системния администратор ако това съобщение се задържи твърде дълго или се е появило неочаквано.", "Thank you for your patience." : "Благодарим за търпението.", + "Stay logged in" : "Остани вписан", "Alternative Logins" : "Алтернативни методи на вписване" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/ca.js b/core/l10n/ca.js index 6b22059b390..666fa63cab1 100644 --- a/core/l10n/ca.js +++ b/core/l10n/ca.js @@ -254,14 +254,12 @@ OC.L10N.register( "Username or email" : "Nom d'usuari o correu electrònic", "Log in" : "Inici de sessió", "Wrong password." : "Contrasenya incorrecta.", - "Stay logged in" : "Mantén la sessió connectada", "Forgot password?" : "Has oblidat la contrasenya?", "Back to login" : "Torna a accedir", + "App token" : "Testimoni d'aplicació", + "Grant access" : "Concedeix accés", "Account access" : "Compte d'accés", "You are about to grant %s access to your %s account." : "Estàs a punt d'autoritzar a %s a accedir al teu compte %s.", - "Grant access" : "Concedeix accés", - "App token" : "Testimoni d'aplicació", - "Alternative login using app token" : "Acreditació alternativa utilitzat testimoni d'aplicació", "Redirecting …" : "Redirigint …", "New password" : "Contrasenya nova", "New Password" : "Contrasenya nova", @@ -295,7 +293,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartir amb altres persones introduint un usuari o grup, un ID de núvol federat o una adreça d’email.", "Share with other people by entering a user or group or a federated cloud ID." : "Compartir amb altres persones introduint un usuari o grup o ID de núvol federat.", "Share with other people by entering a user or group or an email address." : "Compartir amb altres persones introduint un usuari o grup o una adreça d’email.", + "Stay logged in" : "Mantén la sessió connectada", "Alternative Logins" : "Acreditacions alternatives", + "Alternative login using app token" : "Acreditació alternativa utilitzat testimoni d'aplicació", "Back to log in" : "Torna a l'accés" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/ca.json b/core/l10n/ca.json index c6568e87dba..a51eac3cf5e 100644 --- a/core/l10n/ca.json +++ b/core/l10n/ca.json @@ -252,14 +252,12 @@ "Username or email" : "Nom d'usuari o correu electrònic", "Log in" : "Inici de sessió", "Wrong password." : "Contrasenya incorrecta.", - "Stay logged in" : "Mantén la sessió connectada", "Forgot password?" : "Has oblidat la contrasenya?", "Back to login" : "Torna a accedir", + "App token" : "Testimoni d'aplicació", + "Grant access" : "Concedeix accés", "Account access" : "Compte d'accés", "You are about to grant %s access to your %s account." : "Estàs a punt d'autoritzar a %s a accedir al teu compte %s.", - "Grant access" : "Concedeix accés", - "App token" : "Testimoni d'aplicació", - "Alternative login using app token" : "Acreditació alternativa utilitzat testimoni d'aplicació", "Redirecting …" : "Redirigint …", "New password" : "Contrasenya nova", "New Password" : "Contrasenya nova", @@ -293,7 +291,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Compartir amb altres persones introduint un usuari o grup, un ID de núvol federat o una adreça d’email.", "Share with other people by entering a user or group or a federated cloud ID." : "Compartir amb altres persones introduint un usuari o grup o ID de núvol federat.", "Share with other people by entering a user or group or an email address." : "Compartir amb altres persones introduint un usuari o grup o una adreça d’email.", + "Stay logged in" : "Mantén la sessió connectada", "Alternative Logins" : "Acreditacions alternatives", + "Alternative login using app token" : "Acreditació alternativa utilitzat testimoni d'aplicació", "Back to log in" : "Torna a l'accés" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/cs.js b/core/l10n/cs.js index 943f34daed8..5bfaf8da808 100644 --- a/core/l10n/cs.js +++ b/core/l10n/cs.js @@ -273,13 +273,11 @@ OC.L10N.register( "Log in" : "Přihlásit", "Wrong password." : "Chybné heslo.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Bylo rozpoznáno několik neplatných pokusů o přihlášeni z Vaší IP. Další přihlášení bude možné za 30 sekund.", - "Stay logged in" : "Neodhlašovat", "Forgot password?" : "Zapomněli jste heslo?", + "App token" : "Token aplikace", + "Grant access" : "Povolit přístup", "Account access" : "Přístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte se povolit %s přístup k vašemu %s účtu.", - "Grant access" : "Povolit přístup", - "App token" : "Token aplikace", - "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", "Redirecting …" : "Přesměrovávání …", "New password" : "Nové heslo", "New Password" : "Nové heslo", @@ -335,8 +333,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Pro informace, jak správně nastavit váš server, se podívejte do <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentace</a>.", "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Wrong password. Reset it?" : "Nesprávné heslo. Resetovat?", + "Stay logged in" : "Neodhlašovat", "Alternative Logins" : "Alternativní přihlášení", "You are about to grant \"%s\" access to your %s account." : "Chystáte se povolit %s přístup k vašemu %s účtu.", + "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", "You are accessing the server from an untrusted domain." : "Přistupujete na server z nedůvěryhodné domény.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontaktujte prosím svého správce. Pokud spravujete tuto instalaci, nastavte \"trusted_domains\" v souboru config/config.php. Příklad konfigurace najdete v souboru config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "V závislosti na vaší konfiguraci vám může být, jako správci, umožněno použití tlačítka níže k označení této domény jako důvěryhodné.", diff --git a/core/l10n/cs.json b/core/l10n/cs.json index 84585ccc920..f6974e188e6 100644 --- a/core/l10n/cs.json +++ b/core/l10n/cs.json @@ -271,13 +271,11 @@ "Log in" : "Přihlásit", "Wrong password." : "Chybné heslo.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Bylo rozpoznáno několik neplatných pokusů o přihlášeni z Vaší IP. Další přihlášení bude možné za 30 sekund.", - "Stay logged in" : "Neodhlašovat", "Forgot password?" : "Zapomněli jste heslo?", + "App token" : "Token aplikace", + "Grant access" : "Povolit přístup", "Account access" : "Přístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte se povolit %s přístup k vašemu %s účtu.", - "Grant access" : "Povolit přístup", - "App token" : "Token aplikace", - "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", "Redirecting …" : "Přesměrovávání …", "New password" : "Nové heslo", "New Password" : "Nové heslo", @@ -333,8 +331,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Pro informace, jak správně nastavit váš server, se podívejte do <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentace</a>.", "This action requires you to confirm your password:" : "Tato akce vyžaduje potvrzení vašeho hesla:", "Wrong password. Reset it?" : "Nesprávné heslo. Resetovat?", + "Stay logged in" : "Neodhlašovat", "Alternative Logins" : "Alternativní přihlášení", "You are about to grant \"%s\" access to your %s account." : "Chystáte se povolit %s přístup k vašemu %s účtu.", + "Alternative login using app token" : "Alternativní přihlášení pomocí tokenu aplikace", "You are accessing the server from an untrusted domain." : "Přistupujete na server z nedůvěryhodné domény.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontaktujte prosím svého správce. Pokud spravujete tuto instalaci, nastavte \"trusted_domains\" v souboru config/config.php. Příklad konfigurace najdete v souboru config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "V závislosti na vaší konfiguraci vám může být, jako správci, umožněno použití tlačítka níže k označení této domény jako důvěryhodné.", diff --git a/core/l10n/da.js b/core/l10n/da.js index d98816a4042..36e83e337a7 100644 --- a/core/l10n/da.js +++ b/core/l10n/da.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Log ind", "Wrong password." : "Forkert kodeord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Vi har registreret flere ugyldige loginforsøg fra din IP. Derfor bliver din næste login sat op til 30 sekunder.", - "Stay logged in" : "Forbliv logget ind", "Forgot password?" : "Glemt adgangskode?", "Back to login" : "Tilbage til log in", + "App token" : "App token", + "Grant access" : "Giv adgang", "Account access" : "Konto adgang", "You are about to grant %s access to your %s account." : "Du er ved at tildele %s adgang til din %s konto.", - "Grant access" : "Giv adgang", - "App token" : "App token", - "Alternative login using app token" : "Alternativ login ved brug af \"app token\"", "Redirecting …" : "Viderstiller", "New password" : "Ny adgangskode", "New Password" : "Ny adgangskode", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information om, hvordan du konfigurerer din server korrekt se <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentationen</a>.", "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", "Wrong password. Reset it?" : "Forkert kodeord. Skal det nulstilles?", + "Stay logged in" : "Forbliv logget ind", "Alternative Logins" : "Alternative logins", "You are about to grant \"%s\" access to your %s account." : "Du er ved at tildele %s adgang til din %s konto.", + "Alternative login using app token" : "Alternativ login ved brug af \"app token\"", "You are accessing the server from an untrusted domain." : "Du tilgår serveren fra et utroværdigt domæne.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontakt venligst din administrator. Hvis du er administratoren af denne server, skal du konfigurerer \"trusted-domains\" i filen config/config.php. Et eksempel på hvordan kan findes i filen config/config.sample.php", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Afhænger af din konfiguration, da du som administrator eventuelt også er i stand til at gøre brug af knappen nedenfor til at tildele tillid til dette domæne.", diff --git a/core/l10n/da.json b/core/l10n/da.json index a8d286d31aa..ecf07551c5f 100644 --- a/core/l10n/da.json +++ b/core/l10n/da.json @@ -273,14 +273,12 @@ "Log in" : "Log ind", "Wrong password." : "Forkert kodeord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Vi har registreret flere ugyldige loginforsøg fra din IP. Derfor bliver din næste login sat op til 30 sekunder.", - "Stay logged in" : "Forbliv logget ind", "Forgot password?" : "Glemt adgangskode?", "Back to login" : "Tilbage til log in", + "App token" : "App token", + "Grant access" : "Giv adgang", "Account access" : "Konto adgang", "You are about to grant %s access to your %s account." : "Du er ved at tildele %s adgang til din %s konto.", - "Grant access" : "Giv adgang", - "App token" : "App token", - "Alternative login using app token" : "Alternativ login ved brug af \"app token\"", "Redirecting …" : "Viderstiller", "New password" : "Ny adgangskode", "New Password" : "Ny adgangskode", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information om, hvordan du konfigurerer din server korrekt se <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentationen</a>.", "This action requires you to confirm your password:" : "Denne handling kræver at du bekræfter dit kodeord:", "Wrong password. Reset it?" : "Forkert kodeord. Skal det nulstilles?", + "Stay logged in" : "Forbliv logget ind", "Alternative Logins" : "Alternative logins", "You are about to grant \"%s\" access to your %s account." : "Du er ved at tildele %s adgang til din %s konto.", + "Alternative login using app token" : "Alternativ login ved brug af \"app token\"", "You are accessing the server from an untrusted domain." : "Du tilgår serveren fra et utroværdigt domæne.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontakt venligst din administrator. Hvis du er administratoren af denne server, skal du konfigurerer \"trusted-domains\" i filen config/config.php. Et eksempel på hvordan kan findes i filen config/config.sample.php", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Afhænger af din konfiguration, da du som administrator eventuelt også er i stand til at gøre brug af knappen nedenfor til at tildele tillid til dette domæne.", diff --git a/core/l10n/de.js b/core/l10n/de.js index 39a82794e2b..255d4839211 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -275,14 +275,15 @@ OC.L10N.register( "Log in" : "Anmelden", "Wrong password." : "Falsches Passwort.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Deiner IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.", - "Stay logged in" : "Angemeldet bleiben", "Forgot password?" : "Passwort vergessen?", "Back to login" : "Zur Anmeldung wechseln", + "Connect to your account" : "Verbinde Dich mit Deinem Konto", + "Please log in before granting %s access to your %s account." : "Bitte anmelden, bevor Du %s Zugriff auf Dein %s-Konto gewährst.", + "App token" : "App-Token", + "Grant access" : "Zugriff gewähren", + "Alternative log in using app token" : "Alternative Anmeldung via App-Token", "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Du bist dabei, %s Zugriff auf Dein %s-Konto zu gewähren.", - "Grant access" : "Zugriff gewähren", - "App token" : "App-Token", - "Alternative login using app token" : "Alternative Anmeldung via App-Token", "Redirecting …" : "Weiterleiten…", "New password" : "Neues Passwort", "New Password" : "Neues Passwort", @@ -339,8 +340,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Informationen zum richtigen Konfigurieren Deines Servers kannst Du der <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Dokumentation</a> entnehmen.", "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?", + "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", "You are about to grant \"%s\" access to your %s account." : "Du bist dabei \"%s\" Zugriff auf Dein %s-Konto zu gewähren.", + "Alternative login using app token" : "Alternative Anmeldung via App-Token", "You are accessing the server from an untrusted domain." : "Du greifst von einer nicht vertrauenswürdigen Domäne auf den Server zu.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Bitte kontaktiere Deinen Administrator. Wenn Du Administrator dieser Instanz bist, konfiguriere die „trusted_domains“-Einstellung in config/config.php. Eine Beispielkonfiguration ist in config/config.sample.php verfügbar.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Wenn es Deine Konfiguration zulässt, kannst Du als Administrator die folgende Schaltfläche benutzen, um diese Domain als vertrauenswürdig einzustufen.", diff --git a/core/l10n/de.json b/core/l10n/de.json index bb3ff027631..1f4232f356f 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -273,14 +273,15 @@ "Log in" : "Anmelden", "Wrong password." : "Falsches Passwort.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Deiner IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.", - "Stay logged in" : "Angemeldet bleiben", "Forgot password?" : "Passwort vergessen?", "Back to login" : "Zur Anmeldung wechseln", + "Connect to your account" : "Verbinde Dich mit Deinem Konto", + "Please log in before granting %s access to your %s account." : "Bitte anmelden, bevor Du %s Zugriff auf Dein %s-Konto gewährst.", + "App token" : "App-Token", + "Grant access" : "Zugriff gewähren", + "Alternative log in using app token" : "Alternative Anmeldung via App-Token", "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Du bist dabei, %s Zugriff auf Dein %s-Konto zu gewähren.", - "Grant access" : "Zugriff gewähren", - "App token" : "App-Token", - "Alternative login using app token" : "Alternative Anmeldung via App-Token", "Redirecting …" : "Weiterleiten…", "New password" : "Neues Passwort", "New Password" : "Neues Passwort", @@ -337,8 +338,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Informationen zum richtigen Konfigurieren Deines Servers kannst Du der <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Dokumentation</a> entnehmen.", "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Dir:", "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?", + "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", "You are about to grant \"%s\" access to your %s account." : "Du bist dabei \"%s\" Zugriff auf Dein %s-Konto zu gewähren.", + "Alternative login using app token" : "Alternative Anmeldung via App-Token", "You are accessing the server from an untrusted domain." : "Du greifst von einer nicht vertrauenswürdigen Domäne auf den Server zu.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Bitte kontaktiere Deinen Administrator. Wenn Du Administrator dieser Instanz bist, konfiguriere die „trusted_domains“-Einstellung in config/config.php. Eine Beispielkonfiguration ist in config/config.sample.php verfügbar.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Wenn es Deine Konfiguration zulässt, kannst Du als Administrator die folgende Schaltfläche benutzen, um diese Domain als vertrauenswürdig einzustufen.", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 407b2bc4d11..8644e753e84 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -275,14 +275,15 @@ OC.L10N.register( "Log in" : "Anmelden", "Wrong password." : "Falsches Passwort.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.", - "Stay logged in" : "Angemeldet bleiben", "Forgot password?" : "Passwort vergessen?", "Back to login" : "Zur Anmeldung wechseln", + "Connect to your account" : "Verbinden Sie sich mit Ihrem Konto", + "Please log in before granting %s access to your %s account." : "Bitte anmelden, bevor Du %s Zugriff auf Dein %s-Konto gewährst.", + "App token" : "App-Token", + "Grant access" : "Zugriff gewähren", + "Alternative log in using app token" : "Alternative Anmeldung via App-Token", "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Sie sind dabei, %s Zugriff auf Ihr %s-Konto zu gewähren.", - "Grant access" : "Zugriff gewähren", - "App token" : "App-Token", - "Alternative login using app token" : "Alternative Anmeldung via App-Token", "Redirecting …" : "Weiterleiten…", "New password" : "Neues Passwort", "New Password" : "Neues Passwort", @@ -339,8 +340,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Informationen zum richtigen Konfigurieren Ihres Servers können Sie der <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Dokumentation</a> entnehmen.", "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?", + "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", "You are about to grant \"%s\" access to your %s account." : "Sie sind dabei \"%s\" Zugriff auf Ihr %s-Konto zu gewähren.", + "Alternative login using app token" : "Alternative Anmeldung via App-Token", "You are accessing the server from an untrusted domain." : "Sie greifen von einer nicht vertrauenswürdigen Domain auf den Server zu.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator dieser Instanz sind, konfigurieren Sie bitte die „trusted_domain“-Einstellung in config/config.php. Eine Beispielkonfiguration ist in config/config.sample.php verfügbar.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Wenn es Ihre Konfiguration zulässt, können Sie als Administrator gegebenenfalls den Button unten benutzen, um diese Domain als vertrauenswürdig einzustufen.", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index ffdba67da91..93b1349adfe 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -273,14 +273,15 @@ "Log in" : "Anmelden", "Wrong password." : "Falsches Passwort.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert.", - "Stay logged in" : "Angemeldet bleiben", "Forgot password?" : "Passwort vergessen?", "Back to login" : "Zur Anmeldung wechseln", + "Connect to your account" : "Verbinden Sie sich mit Ihrem Konto", + "Please log in before granting %s access to your %s account." : "Bitte anmelden, bevor Du %s Zugriff auf Dein %s-Konto gewährst.", + "App token" : "App-Token", + "Grant access" : "Zugriff gewähren", + "Alternative log in using app token" : "Alternative Anmeldung via App-Token", "Account access" : "Kontozugriff ", "You are about to grant %s access to your %s account." : "Sie sind dabei, %s Zugriff auf Ihr %s-Konto zu gewähren.", - "Grant access" : "Zugriff gewähren", - "App token" : "App-Token", - "Alternative login using app token" : "Alternative Anmeldung via App-Token", "Redirecting …" : "Weiterleiten…", "New password" : "Neues Passwort", "New Password" : "Neues Passwort", @@ -337,8 +338,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Informationen zum richtigen Konfigurieren Ihres Servers können Sie der <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">Dokumentation</a> entnehmen.", "This action requires you to confirm your password:" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen:", "Wrong password. Reset it?" : "Falsches Passwort. Soll es zurückgesetzt werden?", + "Stay logged in" : "Angemeldet bleiben", "Alternative Logins" : "Alternative Anmeldung", "You are about to grant \"%s\" access to your %s account." : "Sie sind dabei \"%s\" Zugriff auf Ihr %s-Konto zu gewähren.", + "Alternative login using app token" : "Alternative Anmeldung via App-Token", "You are accessing the server from an untrusted domain." : "Sie greifen von einer nicht vertrauenswürdigen Domain auf den Server zu.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Bitte kontaktieren Sie Ihren Administrator. Wenn Sie Administrator dieser Instanz sind, konfigurieren Sie bitte die „trusted_domain“-Einstellung in config/config.php. Eine Beispielkonfiguration ist in config/config.sample.php verfügbar.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Wenn es Ihre Konfiguration zulässt, können Sie als Administrator gegebenenfalls den Button unten benutzen, um diese Domain als vertrauenswürdig einzustufen.", diff --git a/core/l10n/el.js b/core/l10n/el.js index f4db1fd40d0..e1f94bc1ea4 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -249,12 +249,11 @@ OC.L10N.register( "Username or email" : "Όνομα χρήστη ή email", "Log in" : "Είσοδος", "Wrong password." : "Λάθος συνθηματικό.", - "Stay logged in" : "Μείνετε συνδεδεμένος", + "Back to login" : "Πίσω στην είσοδο", + "App token" : "Διακριτικό εφαρμογής", + "Grant access" : "Παροχή άδειας πρόσβασης", "Account access" : "Πρόσβαση λογαριασμού", "You are about to grant %s access to your %s account." : "Πρόκειται να δώσετε άδεια πρόσβασης στο \"%s\" στον λογαριασμό σας \" %s\".", - "Grant access" : "Παροχή άδειας πρόσβασης", - "App token" : "Διακριτικό εφαρμογής", - "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", "Redirecting …" : "Γίνεται ανακατεύθυνση ...", "New password" : "Νέο συνθηματικό", "New Password" : "Νέο Συνθηματικό", @@ -284,6 +283,11 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα, το ID του federated cloud ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", "Share with other people by entering a user or group or a federated cloud ID." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή το ID του federated cloud.", "Share with other people by entering a user or group or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", - "Alternative Logins" : "Εναλλακτικές είσοδοι" + "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", + "Wrong password. Reset it?" : "Εσφαλμένο συνθηματικό. Επαναφορά;", + "Stay logged in" : "Μείνετε συνδεδεμένος", + "Alternative Logins" : "Εναλλακτικές είσοδοι", + "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", + "You are accessing the server from an untrusted domain." : "Η προσπέλαση του διακομιστή γίνεται από μη έμπιστο τομέα." }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/el.json b/core/l10n/el.json index 9deaf61c905..4268fb4cecf 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -247,12 +247,11 @@ "Username or email" : "Όνομα χρήστη ή email", "Log in" : "Είσοδος", "Wrong password." : "Λάθος συνθηματικό.", - "Stay logged in" : "Μείνετε συνδεδεμένος", + "Back to login" : "Πίσω στην είσοδο", + "App token" : "Διακριτικό εφαρμογής", + "Grant access" : "Παροχή άδειας πρόσβασης", "Account access" : "Πρόσβαση λογαριασμού", "You are about to grant %s access to your %s account." : "Πρόκειται να δώσετε άδεια πρόσβασης στο \"%s\" στον λογαριασμό σας \" %s\".", - "Grant access" : "Παροχή άδειας πρόσβασης", - "App token" : "Διακριτικό εφαρμογής", - "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", "Redirecting …" : "Γίνεται ανακατεύθυνση ...", "New password" : "Νέο συνθηματικό", "New Password" : "Νέο Συνθηματικό", @@ -282,6 +281,11 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα, το ID του federated cloud ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", "Share with other people by entering a user or group or a federated cloud ID." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή το ID του federated cloud.", "Share with other people by entering a user or group or an email address." : "Διαμοιραστείτε με άλλους εισάγοντας τον χρήστη ή την ομάδα ή μια διεύθυνση ηλεκτρονικού ταχυδρομείου.", - "Alternative Logins" : "Εναλλακτικές είσοδοι" + "This action requires you to confirm your password:" : "Αυτή η ενέργεια απαιτεί επιβεβαίωση του συνθηματικού σας:", + "Wrong password. Reset it?" : "Εσφαλμένο συνθηματικό. Επαναφορά;", + "Stay logged in" : "Μείνετε συνδεδεμένος", + "Alternative Logins" : "Εναλλακτικές είσοδοι", + "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", + "You are accessing the server from an untrusted domain." : "Η προσπέλαση του διακομιστή γίνεται από μη έμπιστο τομέα." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 39cf80a66af..396988d1681 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Log in", "Wrong password." : "Wrong password.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.", - "Stay logged in" : "Stay logged in", "Forgot password?" : "Forgot password?", "Back to login" : "Back to login", + "App token" : "App token", + "Grant access" : "Grant access", "Account access" : "Account access", "You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.", - "Grant access" : "Grant access", - "App token" : "App token", - "Alternative login using app token" : "Alternative login using app token", "Redirecting …" : "Redirecting …", "New password" : "New password", "New Password" : "New Password", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", "This action requires you to confirm your password:" : "This action requires you to confirm your password:", "Wrong password. Reset it?" : "Wrong password. Reset it?", + "Stay logged in" : "Stay logged in", "Alternative Logins" : "Alternative Logins", "You are about to grant \"%s\" access to your %s account." : "You are about to grant \"%s\" access to your %s account.", + "Alternative login using app token" : "Alternative login using app token", "You are accessing the server from an untrusted domain." : "You are accessing the server from an untrusted domain.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain.", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 29dc93f6e87..6f096e82102 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -273,14 +273,12 @@ "Log in" : "Log in", "Wrong password." : "Wrong password.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.", - "Stay logged in" : "Stay logged in", "Forgot password?" : "Forgot password?", "Back to login" : "Back to login", + "App token" : "App token", + "Grant access" : "Grant access", "Account access" : "Account access", "You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.", - "Grant access" : "Grant access", - "App token" : "App token", - "Alternative login using app token" : "Alternative login using app token", "Redirecting …" : "Redirecting …", "New password" : "New password", "New Password" : "New Password", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", "This action requires you to confirm your password:" : "This action requires you to confirm your password:", "Wrong password. Reset it?" : "Wrong password. Reset it?", + "Stay logged in" : "Stay logged in", "Alternative Logins" : "Alternative Logins", "You are about to grant \"%s\" access to your %s account." : "You are about to grant \"%s\" access to your %s account.", + "Alternative login using app token" : "Alternative login using app token", "You are accessing the server from an untrusted domain." : "You are accessing the server from an untrusted domain.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain.", diff --git a/core/l10n/es.js b/core/l10n/es.js index 5e364fb0834..ae7e4b731e1 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Iniciar sesión", "Wrong password." : "Contraseña incorrecta.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos inválidos desde tu IP. Por tanto, tu próximo intento se retrasará 30 segundos.", - "Stay logged in" : "Permanecer autenticado", "Forgot password?" : "¿Contraseña olvidada?", "Back to login" : "Volver a la identificación", + "App token" : "Token de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Estás a punto de conceder a %s acceso a tu cuenta de %s", - "Grant access" : "Conceder acceso", - "App token" : "Token de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando el token de la aplicación", "Redirecting …" : "Redireccionando...", "New password" : "Nueva contraseña", "New Password" : "Contraseña nueva", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para información sobre cómo configurar correctamente tu servidor, consulta por favor la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Wrong password. Reset it?" : "Contraseña errónea. ¿Restablecerla?", + "Stay logged in" : "Permanecer autenticado", "Alternative Logins" : "Inicios de sesión alternativos", "You are about to grant \"%s\" access to your %s account." : "Vas a conceder acceso a \"%s\" a tu cuenta %s.", + "Alternative login using app token" : "Inicio de sesión alternativo usando el token de la aplicación", "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no confiado.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor, contacta con tu administrador. Si eres un administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Se ofrece una configuración de ejemplo en config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como administrador puedes tener la posibilidad de usar el botón a continuación para confiar en este dominio.", diff --git a/core/l10n/es.json b/core/l10n/es.json index f67d14025bf..abcea52de53 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -273,14 +273,12 @@ "Log in" : "Iniciar sesión", "Wrong password." : "Contraseña incorrecta.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos inválidos desde tu IP. Por tanto, tu próximo intento se retrasará 30 segundos.", - "Stay logged in" : "Permanecer autenticado", "Forgot password?" : "¿Contraseña olvidada?", "Back to login" : "Volver a la identificación", + "App token" : "Token de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Estás a punto de conceder a %s acceso a tu cuenta de %s", - "Grant access" : "Conceder acceso", - "App token" : "Token de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando el token de la aplicación", "Redirecting …" : "Redireccionando...", "New password" : "Nueva contraseña", "New Password" : "Contraseña nueva", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para información sobre cómo configurar correctamente tu servidor, consulta por favor la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Wrong password. Reset it?" : "Contraseña errónea. ¿Restablecerla?", + "Stay logged in" : "Permanecer autenticado", "Alternative Logins" : "Inicios de sesión alternativos", "You are about to grant \"%s\" access to your %s account." : "Vas a conceder acceso a \"%s\" a tu cuenta %s.", + "Alternative login using app token" : "Inicio de sesión alternativo usando el token de la aplicación", "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no confiado.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor, contacta con tu administrador. Si eres un administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Se ofrece una configuración de ejemplo en config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como administrador puedes tener la posibilidad de usar el botón a continuación para confiar en este dominio.", diff --git a/core/l10n/es_419.js b/core/l10n/es_419.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_419.js +++ b/core/l10n/es_419.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_419.json b/core/l10n/es_419.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_419.json +++ b/core/l10n/es_419.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_AR.js b/core/l10n/es_AR.js index 8a7b125cf75..5b6f4475e82 100644 --- a/core/l10n/es_AR.js +++ b/core/l10n/es_AR.js @@ -244,11 +244,9 @@ OC.L10N.register( "Username or email" : "Nombre de usuario o contraseña", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", + "App token" : "Ficha de la aplicación", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Está a punto de concederle a \"%s\" acceso a su cuenta %s.", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -278,6 +276,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparta con otras personas ingresando un usuario, un grupo, un ID de nube federado o una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparta con otras personas ingresando un usuario, un grupo o un ID de nube federado.", "Share with other people by entering a user or group or an email address." : "Comparta con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", - "Alternative Logins" : "Accesos Alternativos" + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_AR.json b/core/l10n/es_AR.json index 443ad130632..939980c2f01 100644 --- a/core/l10n/es_AR.json +++ b/core/l10n/es_AR.json @@ -242,11 +242,9 @@ "Username or email" : "Nombre de usuario o contraseña", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", + "App token" : "Ficha de la aplicación", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Está a punto de concederle a \"%s\" acceso a su cuenta %s.", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -276,6 +274,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparta con otras personas ingresando un usuario, un grupo, un ID de nube federado o una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparta con otras personas ingresando un usuario, un grupo o un ID de nube federado.", "Share with other people by entering a user or group or an email address." : "Comparta con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", - "Alternative Logins" : "Accesos Alternativos" + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_CL.js b/core/l10n/es_CL.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_CL.js +++ b/core/l10n/es_CL.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_CL.json b/core/l10n/es_CL.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_CL.json +++ b/core/l10n/es_CL.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_CO.js b/core/l10n/es_CO.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_CO.js +++ b/core/l10n/es_CO.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_CO.json b/core/l10n/es_CO.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_CO.json +++ b/core/l10n/es_CO.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_CR.js b/core/l10n/es_CR.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_CR.js +++ b/core/l10n/es_CR.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_CR.json b/core/l10n/es_CR.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_CR.json +++ b/core/l10n/es_CR.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_DO.js b/core/l10n/es_DO.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_DO.js +++ b/core/l10n/es_DO.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_DO.json b/core/l10n/es_DO.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_DO.json +++ b/core/l10n/es_DO.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_EC.js b/core/l10n/es_EC.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_EC.js +++ b/core/l10n/es_EC.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_EC.json b/core/l10n/es_EC.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_EC.json +++ b/core/l10n/es_EC.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_GT.js b/core/l10n/es_GT.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_GT.js +++ b/core/l10n/es_GT.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_GT.json b/core/l10n/es_GT.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_GT.json +++ b/core/l10n/es_GT.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_HN.js b/core/l10n/es_HN.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_HN.js +++ b/core/l10n/es_HN.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_HN.json b/core/l10n/es_HN.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_HN.json +++ b/core/l10n/es_HN.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js index 19097be05f8..619c5f3a84e 100644 --- a/core/l10n/es_MX.js +++ b/core/l10n/es_MX.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back to login" : "Regresar al inicio de sesión", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>. ", "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", "You are about to grant \"%s\" access to your %s account." : "Estás a punto de otorgar a \"%s\" acceso a ty cuenta %s.", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "You are accessing the server from an untrusted domain." : "Estas accediendo al servidor desde un dominio no de confianza.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json index cbaf2c6a1af..854e019fd69 100644 --- a/core/l10n/es_MX.json +++ b/core/l10n/es_MX.json @@ -273,14 +273,12 @@ "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Hemos detectado múltiples intentos de inicio de sesión desde tu IP. Por lo tanto tu siguiente incio de sesión se retrasará hasta 30 segundos. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", "Back to login" : "Regresar al inicio de sesión", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>. ", "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", "You are about to grant \"%s\" access to your %s account." : "Estás a punto de otorgar a \"%s\" acceso a ty cuenta %s.", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "You are accessing the server from an untrusted domain." : "Estas accediendo al servidor desde un dominio no de confianza.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", diff --git a/core/l10n/es_NI.js b/core/l10n/es_NI.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_NI.js +++ b/core/l10n/es_NI.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_NI.json b/core/l10n/es_NI.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_NI.json +++ b/core/l10n/es_NI.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_PA.js b/core/l10n/es_PA.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_PA.js +++ b/core/l10n/es_PA.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_PA.json b/core/l10n/es_PA.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_PA.json +++ b/core/l10n/es_PA.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_PE.js b/core/l10n/es_PE.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_PE.js +++ b/core/l10n/es_PE.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_PE.json b/core/l10n/es_PE.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_PE.json +++ b/core/l10n/es_PE.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_PR.js b/core/l10n/es_PR.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_PR.js +++ b/core/l10n/es_PR.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_PR.json b/core/l10n/es_PR.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_PR.json +++ b/core/l10n/es_PR.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_PY.js b/core/l10n/es_PY.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_PY.js +++ b/core/l10n/es_PY.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_PY.json b/core/l10n/es_PY.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_PY.json +++ b/core/l10n/es_PY.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_SV.js b/core/l10n/es_SV.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_SV.js +++ b/core/l10n/es_SV.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_SV.json b/core/l10n/es_SV.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_SV.json +++ b/core/l10n/es_SV.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/es_UY.js b/core/l10n/es_UY.js index 31d28e71d75..28ebba045f0 100644 --- a/core/l10n/es_UY.js +++ b/core/l10n/es_UY.js @@ -271,13 +271,11 @@ OC.L10N.register( "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -311,7 +309,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_UY.json b/core/l10n/es_UY.json index 05baee7e25b..805b605e40d 100644 --- a/core/l10n/es_UY.json +++ b/core/l10n/es_UY.json @@ -269,13 +269,11 @@ "Username or email" : "Usuario o correo electrónico", "Log in" : "Ingresar", "Wrong password." : "Contraseña inválida. ", - "Stay logged in" : "Mantener la sesión abierta", "Forgot password?" : "¿Olvidaste tu contraseña?", + "App token" : "Ficha de la aplicación", + "Grant access" : "Conceder acceso", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", - "Grant access" : "Conceder acceso", - "App token" : "Ficha de la aplicación", - "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Redirecting …" : "Redireccionando ... ", "New password" : "Nueva contraseña", "New Password" : "Nueva Contraseña", @@ -309,7 +307,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Stay logged in" : "Mantener la sesión abierta", "Alternative Logins" : "Accesos Alternativos", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", "Back to log in" : "Regresar al inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 7d043e9ff08..147a110ffdb 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -251,11 +251,10 @@ OC.L10N.register( "Username or email" : "Kasutajanimi või e-posti aadress", "Log in" : "Logi sisse", "Wrong password." : "Vale parool.", - "Stay logged in" : "Püsi sisselogituna", "Forgot password?" : "Unustasid parooli?", + "Grant access" : "Anna ligipääs", "Account access" : "Konto ligipääs", "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", - "Grant access" : "Anna ligipääs", "Redirecting …" : "Ümbersuunamine ...", "New password" : "Uus parool", "New Password" : "Uus parool", @@ -287,6 +286,7 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Jaga teiste inimestega sisestades kasutaja või grupi, liitpilve ID või e-posti aadressi.", "Share with other people by entering a user or group or a federated cloud ID." : "Jaga teiste inimestega, sisestades kasutaja või grupi või liitpilve ID.", "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", + "Stay logged in" : "Püsi sisselogituna", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Back to log in" : "Tagasi sisselogimise lehele" }, diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index 69afce35ed6..9e5237bbf90 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -249,11 +249,10 @@ "Username or email" : "Kasutajanimi või e-posti aadress", "Log in" : "Logi sisse", "Wrong password." : "Vale parool.", - "Stay logged in" : "Püsi sisselogituna", "Forgot password?" : "Unustasid parooli?", + "Grant access" : "Anna ligipääs", "Account access" : "Konto ligipääs", "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", - "Grant access" : "Anna ligipääs", "Redirecting …" : "Ümbersuunamine ...", "New password" : "Uus parool", "New Password" : "Uus parool", @@ -285,6 +284,7 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Jaga teiste inimestega sisestades kasutaja või grupi, liitpilve ID või e-posti aadressi.", "Share with other people by entering a user or group or a federated cloud ID." : "Jaga teiste inimestega, sisestades kasutaja või grupi või liitpilve ID.", "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", + "Stay logged in" : "Püsi sisselogituna", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Back to log in" : "Tagasi sisselogimise lehele" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/core/l10n/eu.js b/core/l10n/eu.js index d51746dab90..44aff24713d 100644 --- a/core/l10n/eu.js +++ b/core/l10n/eu.js @@ -250,11 +250,9 @@ OC.L10N.register( "Username or email" : "Erabiltzaile izena edo e-posta", "Log in" : "Hasi saioa", "Wrong password." : "Pasahitz okerra.", - "Stay logged in" : "Ez amaitu saioa", + "App token" : "Aplikazio-tokena", "Account access" : "Kontuaren sarbidea", "You are about to grant %s access to your %s account." : "%s kontuari %sra sarbidea emango diozu", - "App token" : "Aplikazio-tokena", - "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta", "Redirecting …" : "Birbideratzen...", "New password" : "Pasahitz berria", "New Password" : "Pasahitz Berria", @@ -287,6 +285,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea, federatutako hodei baten IDa edo e-posta helbide bat sartuta.", "Share with other people by entering a user or group or a federated cloud ID." : "Parteka ezazu jendearekin taldeko erabiltzailea edo federatutako hodei baten IDa sartuta.", "Share with other people by entering a user or group or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea edo e-posta helbide bat sartuta.", - "Alternative Logins" : "Beste erabiltzaile izenak" + "Stay logged in" : "Ez amaitu saioa", + "Alternative Logins" : "Beste erabiltzaile izenak", + "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/eu.json b/core/l10n/eu.json index 2785601535a..0b26ec66074 100644 --- a/core/l10n/eu.json +++ b/core/l10n/eu.json @@ -248,11 +248,9 @@ "Username or email" : "Erabiltzaile izena edo e-posta", "Log in" : "Hasi saioa", "Wrong password." : "Pasahitz okerra.", - "Stay logged in" : "Ez amaitu saioa", + "App token" : "Aplikazio-tokena", "Account access" : "Kontuaren sarbidea", "You are about to grant %s access to your %s account." : "%s kontuari %sra sarbidea emango diozu", - "App token" : "Aplikazio-tokena", - "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta", "Redirecting …" : "Birbideratzen...", "New password" : "Pasahitz berria", "New Password" : "Pasahitz Berria", @@ -285,6 +283,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea, federatutako hodei baten IDa edo e-posta helbide bat sartuta.", "Share with other people by entering a user or group or a federated cloud ID." : "Parteka ezazu jendearekin taldeko erabiltzailea edo federatutako hodei baten IDa sartuta.", "Share with other people by entering a user or group or an email address." : "Parteka ezazu jendearekin taldeko erabiltzailea edo e-posta helbide bat sartuta.", - "Alternative Logins" : "Beste erabiltzaile izenak" + "Stay logged in" : "Ez amaitu saioa", + "Alternative Logins" : "Beste erabiltzaile izenak", + "Alternative login using app token" : "Ordezko saio-hasiera aplikazio-tokena erabilta" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/fa.js b/core/l10n/fa.js index c5cd911cf3f..ec4af169e17 100644 --- a/core/l10n/fa.js +++ b/core/l10n/fa.js @@ -247,9 +247,8 @@ OC.L10N.register( "Username or email" : "نام کاربری یا ایمیل", "Log in" : "ورود", "Wrong password." : "گذرواژه اشتباه.", - "Stay logged in" : "در سیستم بمانید", - "Account access" : "دسترسی به حساب", "App token" : "App token", + "Account access" : "دسترسی به حساب", "New password" : "گذرواژه جدید", "New Password" : "رمزعبور جدید", "Cancel log in" : "لغو ورود", @@ -266,6 +265,7 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "با وارد کردن یک کاربر یا گروه، شناسه Federated Cloud یا آدرس ایمیل با دیگران به اشتراک بگذارید.", "Share with other people by entering a user or group or a federated cloud ID." : "با وارد کردن یک کاربر یا گروه یا شناسه Federated Cloud با افراد دیگر به اشتراک بگذارید.", "Share with other people by entering a user or group or an email address." : "با وارد کردن یک کاربر یا گروه یا یک آدرس ایمیل با افراد دیگر به اشتراک بگذارید.", + "Stay logged in" : "در سیستم بمانید", "Alternative Logins" : "ورود متناوب" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/fa.json b/core/l10n/fa.json index acfb3ae0501..d95a8e11d40 100644 --- a/core/l10n/fa.json +++ b/core/l10n/fa.json @@ -245,9 +245,8 @@ "Username or email" : "نام کاربری یا ایمیل", "Log in" : "ورود", "Wrong password." : "گذرواژه اشتباه.", - "Stay logged in" : "در سیستم بمانید", - "Account access" : "دسترسی به حساب", "App token" : "App token", + "Account access" : "دسترسی به حساب", "New password" : "گذرواژه جدید", "New Password" : "رمزعبور جدید", "Cancel log in" : "لغو ورود", @@ -264,6 +263,7 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "با وارد کردن یک کاربر یا گروه، شناسه Federated Cloud یا آدرس ایمیل با دیگران به اشتراک بگذارید.", "Share with other people by entering a user or group or a federated cloud ID." : "با وارد کردن یک کاربر یا گروه یا شناسه Federated Cloud با افراد دیگر به اشتراک بگذارید.", "Share with other people by entering a user or group or an email address." : "با وارد کردن یک کاربر یا گروه یا یک آدرس ایمیل با افراد دیگر به اشتراک بگذارید.", + "Stay logged in" : "در سیستم بمانید", "Alternative Logins" : "ورود متناوب" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/fi.js b/core/l10n/fi.js index 747f8ac6b6a..1216e654f98 100644 --- a/core/l10n/fi.js +++ b/core/l10n/fi.js @@ -272,14 +272,12 @@ OC.L10N.register( "Log in" : "Kirjaudu sisään", "Wrong password." : "Väärä salasana.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Useita virheellisiä kirjautumisyrityksiä havaittiin IP-osoitteestasi. Siksi seuraava yritys sallitaan vasta 30:n sekunnin päästä.", - "Stay logged in" : "Pysy sisäänkirjautuneena", "Forgot password?" : "Unohditko salasanasi?", "Back to login" : "Palaa kirjautumiseen", + "App token" : "Sovellusvaltuutus", + "Grant access" : "Myönnä pääsy", "Account access" : "Tilin käyttö", "You are about to grant %s access to your %s account." : "Olet antamassa lupaa laitteelle %s päästä sinun %s tilille.", - "Grant access" : "Myönnä pääsy", - "App token" : "Sovellusvaltuutus", - "Alternative login using app token" : "Kirjaudu vaihtoehtoisella tavalla sovellusvaltuutusta käyttämällä", "Redirecting …" : "Ohjataan uudelleen…", "New password" : "Uusi salasana", "New Password" : "Uusi salasana", @@ -333,7 +331,9 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Lisätietoja palvelimen kunnollisista asetuksista on <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">ohjeissa</a>.", "This action requires you to confirm your password:" : "Tämä toiminto vaatii, että vahvistat salasanasi:", "Wrong password. Reset it?" : "Väärä salasana. Nollataanko se?", + "Stay logged in" : "Pysy sisäänkirjautuneena", "Alternative Logins" : "Vaihtoehtoiset kirjautumistavat", + "Alternative login using app token" : "Kirjaudu vaihtoehtoisella tavalla sovellusvaltuutusta käyttämällä", "You are accessing the server from an untrusted domain." : "Olet yhteydessä palvelimeen epäluotettavasta verkko-osoitteesta.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Ota yhteys ylläpitoon, tai jos olet tämän palvelun ylläpitäjä, määritä \"trusted_domains\"-asetus config/config.php-tiedostossa. Esimerkkimääritys on tiedostossa config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Asetuksista riippuen, ylläpitäjänä saatat pystyä alla olevalla painikkeella lisäämään tämän verkkotunnuksen luotetuksi.", diff --git a/core/l10n/fi.json b/core/l10n/fi.json index 3d2a447ff6a..91704760dee 100644 --- a/core/l10n/fi.json +++ b/core/l10n/fi.json @@ -270,14 +270,12 @@ "Log in" : "Kirjaudu sisään", "Wrong password." : "Väärä salasana.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Useita virheellisiä kirjautumisyrityksiä havaittiin IP-osoitteestasi. Siksi seuraava yritys sallitaan vasta 30:n sekunnin päästä.", - "Stay logged in" : "Pysy sisäänkirjautuneena", "Forgot password?" : "Unohditko salasanasi?", "Back to login" : "Palaa kirjautumiseen", + "App token" : "Sovellusvaltuutus", + "Grant access" : "Myönnä pääsy", "Account access" : "Tilin käyttö", "You are about to grant %s access to your %s account." : "Olet antamassa lupaa laitteelle %s päästä sinun %s tilille.", - "Grant access" : "Myönnä pääsy", - "App token" : "Sovellusvaltuutus", - "Alternative login using app token" : "Kirjaudu vaihtoehtoisella tavalla sovellusvaltuutusta käyttämällä", "Redirecting …" : "Ohjataan uudelleen…", "New password" : "Uusi salasana", "New Password" : "Uusi salasana", @@ -331,7 +329,9 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Lisätietoja palvelimen kunnollisista asetuksista on <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">ohjeissa</a>.", "This action requires you to confirm your password:" : "Tämä toiminto vaatii, että vahvistat salasanasi:", "Wrong password. Reset it?" : "Väärä salasana. Nollataanko se?", + "Stay logged in" : "Pysy sisäänkirjautuneena", "Alternative Logins" : "Vaihtoehtoiset kirjautumistavat", + "Alternative login using app token" : "Kirjaudu vaihtoehtoisella tavalla sovellusvaltuutusta käyttämällä", "You are accessing the server from an untrusted domain." : "Olet yhteydessä palvelimeen epäluotettavasta verkko-osoitteesta.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Ota yhteys ylläpitoon, tai jos olet tämän palvelun ylläpitäjä, määritä \"trusted_domains\"-asetus config/config.php-tiedostossa. Esimerkkimääritys on tiedostossa config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Asetuksista riippuen, ylläpitäjänä saatat pystyä alla olevalla painikkeella lisäämään tämän verkkotunnuksen luotetuksi.", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 44b13350d32..087cdb39a27 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Se connecter", "Wrong password." : "Mot de passe incorrect.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", - "Stay logged in" : "Rester connecté", "Forgot password?" : "Mot de passe oublié ?", "Back to login" : "Retour à la page de connexion", + "App token" : "Jeton d'application", + "Grant access" : "Autoriser l'accès", "Account access" : "Accès au compte", "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", - "Grant access" : "Autoriser l'accès", - "App token" : "Jeton d'application", - "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "Redirecting …" : "Redirection en cours...", "New password" : "Nouveau mot de passe", "New Password" : "Nouveau mot de passe", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Pour savoir comment configurer correctement votre serveur, veuillez lire la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?", + "Stay logged in" : "Rester connecté", "Alternative Logins" : "Identifiants alternatifs", "You are about to grant \"%s\" access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "You are accessing the server from an untrusted domain." : "Vous accédez au serveur à partir d'un domaine non approuvé.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur de cette instance, configurez la variable \"trusted_domains\" dans le fichier config/config.php. Un exemple de configuration est fournit dans le fichier config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En fonction de votre configuration, en tant qu'administrateur vous pouvez également utiliser le bouton ci-dessous pour approuver ce domaine.", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 2ab1fe86f87..ecae4e08b73 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -273,14 +273,12 @@ "Log in" : "Se connecter", "Wrong password." : "Mot de passe incorrect.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Nous avons détecté plusieurs tentatives de connexion invalides depuis votre adresse IP. C'est pourquoi votre prochaine connexion sera retardée de 30 secondes.", - "Stay logged in" : "Rester connecté", "Forgot password?" : "Mot de passe oublié ?", "Back to login" : "Retour à la page de connexion", + "App token" : "Jeton d'application", + "Grant access" : "Autoriser l'accès", "Account access" : "Accès au compte", "You are about to grant %s access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", - "Grant access" : "Autoriser l'accès", - "App token" : "Jeton d'application", - "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "Redirecting …" : "Redirection en cours...", "New password" : "Nouveau mot de passe", "New Password" : "Nouveau mot de passe", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Pour savoir comment configurer correctement votre serveur, veuillez lire la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>.", "This action requires you to confirm your password:" : "Cette action nécessite que vous confirmiez votre mot de passe :", "Wrong password. Reset it?" : "Mot de passe incorrect. Réinitialiser ?", + "Stay logged in" : "Rester connecté", "Alternative Logins" : "Identifiants alternatifs", "You are about to grant \"%s\" access to your %s account." : "Vous êtes sur le point d'accorder à \"%s\" l'accès à votre compte \"%s\".", + "Alternative login using app token" : "Authentification alternative utilisant un jeton d'application", "You are accessing the server from an untrusted domain." : "Vous accédez au serveur à partir d'un domaine non approuvé.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Veuillez contacter votre administrateur. Si vous êtes un administrateur de cette instance, configurez la variable \"trusted_domains\" dans le fichier config/config.php. Un exemple de configuration est fournit dans le fichier config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En fonction de votre configuration, en tant qu'administrateur vous pouvez également utiliser le bouton ci-dessous pour approuver ce domaine.", diff --git a/core/l10n/he.js b/core/l10n/he.js index 1ddec262f6d..5cb55383f3f 100644 --- a/core/l10n/he.js +++ b/core/l10n/he.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "כניסה", "Wrong password." : "ססמה שגויה.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "זיהינו מספר ניסיונות כניסה שגויים מכתובת ה־IP שלך. לכן, ניסיון הכניסה הבא יתאפשר עבורך רק בעוד 30 שניות.", - "Stay logged in" : "השאר מחובר", "Forgot password?" : "שכחת ססמה?", "Back to login" : "חזרה לכניסה", + "App token" : "אסימון יישום", + "Grant access" : "הענקת גישה", "Account access" : "גישה לחשבון", "You are about to grant %s access to your %s account." : "פעולה זו תעניק הרשאת %s לחשבון שלך ב־%s.", - "Grant access" : "הענקת גישה", - "App token" : "אסימון יישום", - "Alternative login using app token" : "כניסה חלופית באמצעות אסימון יישום", "Redirecting …" : "מתבצעת הפניה…", "New password" : "ססמה חדשה", "New Password" : "ססמה חדשה", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "למידע בנוגע להגדרת השרת שלך כראוי, נא לעיין ב<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">תיעוד</a>.", "This action requires you to confirm your password:" : "פעולה זו דורשת ממך לאמת את הססמה שלך:", "Wrong password. Reset it?" : "ססמה שגויה. לאפס אותה?", + "Stay logged in" : "השאר מחובר", "Alternative Logins" : "כניסות אלטרנטיביות", "You are about to grant \"%s\" access to your %s account." : "פעולה זו תעניק גישת „%s” לחשבון ה־%s שלך.", + "Alternative login using app token" : "כניסה חלופית באמצעות אסימון יישום", "You are accessing the server from an untrusted domain." : "ניגשת לשרת משם מתחם בלתי מהימן.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "נא ליצור קשר עם מנהל השרת שלך. אם הרשאות הניהול לעותק זה הן בידיך, יש להגדיר את „trusted_domains” בתוך config/config.php. מצורפת תצורה לדוגמה תחת config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "בהתאם לתצורה שלך, כמנהל יתאפשר לך להשתמש בכפתור שלהלן כדי להתייחס לאתר זה כמהימן.", diff --git a/core/l10n/he.json b/core/l10n/he.json index 4629f36a562..10e33f79094 100644 --- a/core/l10n/he.json +++ b/core/l10n/he.json @@ -273,14 +273,12 @@ "Log in" : "כניסה", "Wrong password." : "ססמה שגויה.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "זיהינו מספר ניסיונות כניסה שגויים מכתובת ה־IP שלך. לכן, ניסיון הכניסה הבא יתאפשר עבורך רק בעוד 30 שניות.", - "Stay logged in" : "השאר מחובר", "Forgot password?" : "שכחת ססמה?", "Back to login" : "חזרה לכניסה", + "App token" : "אסימון יישום", + "Grant access" : "הענקת גישה", "Account access" : "גישה לחשבון", "You are about to grant %s access to your %s account." : "פעולה זו תעניק הרשאת %s לחשבון שלך ב־%s.", - "Grant access" : "הענקת גישה", - "App token" : "אסימון יישום", - "Alternative login using app token" : "כניסה חלופית באמצעות אסימון יישום", "Redirecting …" : "מתבצעת הפניה…", "New password" : "ססמה חדשה", "New Password" : "ססמה חדשה", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "למידע בנוגע להגדרת השרת שלך כראוי, נא לעיין ב<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">תיעוד</a>.", "This action requires you to confirm your password:" : "פעולה זו דורשת ממך לאמת את הססמה שלך:", "Wrong password. Reset it?" : "ססמה שגויה. לאפס אותה?", + "Stay logged in" : "השאר מחובר", "Alternative Logins" : "כניסות אלטרנטיביות", "You are about to grant \"%s\" access to your %s account." : "פעולה זו תעניק גישת „%s” לחשבון ה־%s שלך.", + "Alternative login using app token" : "כניסה חלופית באמצעות אסימון יישום", "You are accessing the server from an untrusted domain." : "ניגשת לשרת משם מתחם בלתי מהימן.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "נא ליצור קשר עם מנהל השרת שלך. אם הרשאות הניהול לעותק זה הן בידיך, יש להגדיר את „trusted_domains” בתוך config/config.php. מצורפת תצורה לדוגמה תחת config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "בהתאם לתצורה שלך, כמנהל יתאפשר לך להשתמש בכפתור שלהלן כדי להתייחס לאתר זה כמהימן.", diff --git a/core/l10n/hu.js b/core/l10n/hu.js index 55e4bf29b7e..5a6c3e9d809 100644 --- a/core/l10n/hu.js +++ b/core/l10n/hu.js @@ -274,14 +274,12 @@ OC.L10N.register( "Log in" : "Bejelentkezés", "Wrong password." : "Hibás jelszó.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Többszöri sikertelen bejelentkezési kísérletet érzékeltünk az IP-dről. A legközelebbi kísérleted így 30 másodperccel késleltetve lesz.", - "Stay logged in" : "Maradjon bejelentkezve", "Forgot password?" : "Elfelejtett jelszó?", "Back to login" : "Vissza a bejelentkezéshez", + "App token" : "App token", + "Grant access" : "Hozzáférés megadása", "Account access" : "Fiók hozzáférés", "You are about to grant %s access to your %s account." : "Hozzáférést készülsz biztosítani neki: %s ehhez a fiókodhoz: %s.", - "Grant access" : "Hozzáférés megadása", - "App token" : "App token", - "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "Redirecting …" : "Átirányítás ...", "New password" : "Új jelszó", "New Password" : "Új jelszó", @@ -338,8 +336,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "A szerver megfelelő beállításához kérjük olvassa el a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentációt</a>.", "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?", + "Stay logged in" : "Maradjon bejelentkezve", "Alternative Logins" : "Alternatív bejelentkezés", "You are about to grant \"%s\" access to your %s account." : "\"%s\" hozzáférést készülsz adni a(z) %s fiókodnak.", + "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "You are accessing the server from an untrusted domain." : "A szervert nem megbízható domain névvel éri el.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kérjük keresse fel a rendszergazdát! Ha ennek a telepítésnek Ön a rendszergazdája, akkor állítsa be a config/config.php fájlban a \"trusted_domain\" paramétert! A config/config.sample.php fájlban talál példát a beállításra.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "A beállításoktól függően, rendszergazdaként lehetséges, hogy az alábbi gombot is használhatja a domain név megbízhatóvá tételéhez.", diff --git a/core/l10n/hu.json b/core/l10n/hu.json index 16e610d0fba..7678927f3e8 100644 --- a/core/l10n/hu.json +++ b/core/l10n/hu.json @@ -272,14 +272,12 @@ "Log in" : "Bejelentkezés", "Wrong password." : "Hibás jelszó.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Többszöri sikertelen bejelentkezési kísérletet érzékeltünk az IP-dről. A legközelebbi kísérleted így 30 másodperccel késleltetve lesz.", - "Stay logged in" : "Maradjon bejelentkezve", "Forgot password?" : "Elfelejtett jelszó?", "Back to login" : "Vissza a bejelentkezéshez", + "App token" : "App token", + "Grant access" : "Hozzáférés megadása", "Account access" : "Fiók hozzáférés", "You are about to grant %s access to your %s account." : "Hozzáférést készülsz biztosítani neki: %s ehhez a fiókodhoz: %s.", - "Grant access" : "Hozzáférés megadása", - "App token" : "App token", - "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "Redirecting …" : "Átirányítás ...", "New password" : "Új jelszó", "New Password" : "Új jelszó", @@ -336,8 +334,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "A szerver megfelelő beállításához kérjük olvassa el a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentációt</a>.", "This action requires you to confirm your password:" : "A művelethez szükség van a jelszavad megerősítésére:", "Wrong password. Reset it?" : "Hibás jelszó. Visszaállítja?", + "Stay logged in" : "Maradjon bejelentkezve", "Alternative Logins" : "Alternatív bejelentkezés", "You are about to grant \"%s\" access to your %s account." : "\"%s\" hozzáférést készülsz adni a(z) %s fiókodnak.", + "Alternative login using app token" : "Alternatív bejelentkezés app token segítségével", "You are accessing the server from an untrusted domain." : "A szervert nem megbízható domain névvel éri el.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kérjük keresse fel a rendszergazdát! Ha ennek a telepítésnek Ön a rendszergazdája, akkor állítsa be a config/config.php fájlban a \"trusted_domain\" paramétert! A config/config.sample.php fájlban talál példát a beállításra.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "A beállításoktól függően, rendszergazdaként lehetséges, hogy az alábbi gombot is használhatja a domain név megbízhatóvá tételéhez.", diff --git a/core/l10n/id.js b/core/l10n/id.js index a7f7a727d78..1fbe6ac2be5 100644 --- a/core/l10n/id.js +++ b/core/l10n/id.js @@ -207,7 +207,6 @@ OC.L10N.register( "Username or email" : "Nama pengguna atau email", "Log in" : "Masuk", "Wrong password." : "Sandi salah.", - "Stay logged in" : "Tetap masuk", "New password" : "Kata sandi baru", "New Password" : "Kata sandi Baru", "Two-factor authentication" : "Otentikasi Two-factor", @@ -230,6 +229,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "Halaman ini akan disegarkan dengan sendiri saat instansi %s tersebut tersedia kembali.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.", "Thank you for your patience." : "Terima kasih atas kesabaran anda.", + "Stay logged in" : "Tetap masuk", "Alternative Logins" : "Cara Alternatif untuk Masuk" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/id.json b/core/l10n/id.json index 911a7d8cf1b..b240e3b6ca1 100644 --- a/core/l10n/id.json +++ b/core/l10n/id.json @@ -205,7 +205,6 @@ "Username or email" : "Nama pengguna atau email", "Log in" : "Masuk", "Wrong password." : "Sandi salah.", - "Stay logged in" : "Tetap masuk", "New password" : "Kata sandi baru", "New Password" : "Kata sandi Baru", "Two-factor authentication" : "Otentikasi Two-factor", @@ -228,6 +227,7 @@ "This page will refresh itself when the %s instance is available again." : "Halaman ini akan disegarkan dengan sendiri saat instansi %s tersebut tersedia kembali.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Hubungi administrator sistem anda jika pesan ini terus muncul atau muncul tiba-tiba.", "Thank you for your patience." : "Terima kasih atas kesabaran anda.", + "Stay logged in" : "Tetap masuk", "Alternative Logins" : "Cara Alternatif untuk Masuk" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/is.js b/core/l10n/is.js index f8c24b99219..148ba7943f7 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -274,14 +274,12 @@ OC.L10N.register( "Log in" : "Skrá inn", "Wrong password." : "Rangt lykilorð.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Við urðum vör við margar misheppnaðar innskráningar í röð frá IP-vistfanginu þínu. Þar með verður næsta innskráning tafin (throttled) um 30 sekúndur.", - "Stay logged in" : "Haldast skráður inn", "Forgot password?" : "Gleymdirðu lykilorði?", "Back to login" : "Til baka í innskráningu", + "App token" : "Teikn forrits", + "Grant access" : "Veita aðgengi", "Account access" : "Aðgangur að notandaaðgangi", "You are about to grant %s access to your %s account." : "Þú ert að fara að leyfa %s aðgang að %s notandaaðgangnum þínum.", - "Grant access" : "Veita aðgengi", - "App token" : "Teikn forrits", - "Alternative login using app token" : "Önnur innskráning með forritsteikni", "Redirecting …" : "Endurbeini ...", "New password" : "Nýtt lykilorð", "New Password" : "Nýtt lykilorð", @@ -338,8 +336,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Til að fá upplýsingar hvernig á að stilla miðlara almennilega, skaltu skoða <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">hjálparskjölin</a>.", "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja það?", + "Stay logged in" : "Haldast skráður inn", "Alternative Logins" : "Aðrar innskráningar", "You are about to grant \"%s\" access to your %s account." : "Þú ert að fara að leyfa \"%s\" aðgang að %s notandaaðgangnum þínum.", + "Alternative login using app token" : "Önnur innskráning með forritsteikni", "You are accessing the server from an untrusted domain." : "Þú ert að tengjast þjóninum frá ótreystu léni.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Hafðu samband við kerfisstjóra. Ef þú ert stjórnandi á þessu tilviki, stilltu \"trusted_domains\" setninguna í config/config.php. Dæmi um stillingar má sjá í config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Það fer eftir stillingum þínum, sem stjórnandi þá gætir þú einnig notað hnappinn hér fyrir neðan til að treysta þessu léni.", diff --git a/core/l10n/is.json b/core/l10n/is.json index 0554bc1c15c..14e7cf9be37 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -272,14 +272,12 @@ "Log in" : "Skrá inn", "Wrong password." : "Rangt lykilorð.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Við urðum vör við margar misheppnaðar innskráningar í röð frá IP-vistfanginu þínu. Þar með verður næsta innskráning tafin (throttled) um 30 sekúndur.", - "Stay logged in" : "Haldast skráður inn", "Forgot password?" : "Gleymdirðu lykilorði?", "Back to login" : "Til baka í innskráningu", + "App token" : "Teikn forrits", + "Grant access" : "Veita aðgengi", "Account access" : "Aðgangur að notandaaðgangi", "You are about to grant %s access to your %s account." : "Þú ert að fara að leyfa %s aðgang að %s notandaaðgangnum þínum.", - "Grant access" : "Veita aðgengi", - "App token" : "Teikn forrits", - "Alternative login using app token" : "Önnur innskráning með forritsteikni", "Redirecting …" : "Endurbeini ...", "New password" : "Nýtt lykilorð", "New Password" : "Nýtt lykilorð", @@ -336,8 +334,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Til að fá upplýsingar hvernig á að stilla miðlara almennilega, skaltu skoða <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">hjálparskjölin</a>.", "This action requires you to confirm your password:" : "Þessi aðgerð krefst þess að þú staðfestir lykilorðið þitt:", "Wrong password. Reset it?" : "Rangt lykilorð. Endursetja það?", + "Stay logged in" : "Haldast skráður inn", "Alternative Logins" : "Aðrar innskráningar", "You are about to grant \"%s\" access to your %s account." : "Þú ert að fara að leyfa \"%s\" aðgang að %s notandaaðgangnum þínum.", + "Alternative login using app token" : "Önnur innskráning með forritsteikni", "You are accessing the server from an untrusted domain." : "Þú ert að tengjast þjóninum frá ótreystu léni.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Hafðu samband við kerfisstjóra. Ef þú ert stjórnandi á þessu tilviki, stilltu \"trusted_domains\" setninguna í config/config.php. Dæmi um stillingar má sjá í config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Það fer eftir stillingum þínum, sem stjórnandi þá gætir þú einnig notað hnappinn hér fyrir neðan til að treysta þessu léni.", diff --git a/core/l10n/it.js b/core/l10n/it.js index 86f0c857ec0..c3c433f1a60 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -275,14 +275,15 @@ OC.L10N.register( "Log in" : "Accedi", "Wrong password." : "Password errata.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Abbiamo rilevato molti tentativi di autenticazione non riusciti dal tuo indirizzo IP. Di conseguenza, il prossimo tentativo è ritardato di 30 secondi.", - "Stay logged in" : "Rimani collegato", "Forgot password?" : "Hai dimenticato la password?", "Back to login" : "Torna alla schermata di accesso", + "Connect to your account" : "Connetti il tuo account", + "Please log in before granting %s access to your %s account." : "Accedi prima di accordare a %s l'accesso al tuo account %s.", + "App token" : "Token applicazione", + "Grant access" : "Accorda accesso", + "Alternative log in using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "Account access" : "Accesso account", "You are about to grant %s access to your %s account." : "Stai per accordare a \"%s\" l'accesso al tuo account %s.", - "Grant access" : "Accorda accesso", - "App token" : "Token applicazione", - "Alternative login using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "Redirecting …" : "Redirezione in corso...", "New password" : "Nuova password", "New Password" : "Nuova password", @@ -339,8 +340,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Per informazioni su come configurare correttamente il tuo server, vedi la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentazione</a>.", "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?", + "Stay logged in" : "Rimani collegato", "Alternative Logins" : "Accessi alternativi", "You are about to grant \"%s\" access to your %s account." : "Stai per accordare a \"%s\" l'accesso al tuo account %s.", + "Alternative login using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "You are accessing the server from an untrusted domain." : "Stai accedendo al server da un dominio non attendibile.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Contatta il tuo amministratore di sistema. Se sei un amministratore di questa istanza, configura l'impostazione \"trusted_domains\" in config/config.php. Una configurazione di esempio è disponibile in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "In base alla tua configurazione, come amministratore potrai utilizzare anche il pulsante in basso per rendere attendibile questo dominio.", diff --git a/core/l10n/it.json b/core/l10n/it.json index 79f154c6b16..9ad58012169 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -273,14 +273,15 @@ "Log in" : "Accedi", "Wrong password." : "Password errata.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Abbiamo rilevato molti tentativi di autenticazione non riusciti dal tuo indirizzo IP. Di conseguenza, il prossimo tentativo è ritardato di 30 secondi.", - "Stay logged in" : "Rimani collegato", "Forgot password?" : "Hai dimenticato la password?", "Back to login" : "Torna alla schermata di accesso", + "Connect to your account" : "Connetti il tuo account", + "Please log in before granting %s access to your %s account." : "Accedi prima di accordare a %s l'accesso al tuo account %s.", + "App token" : "Token applicazione", + "Grant access" : "Accorda accesso", + "Alternative log in using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "Account access" : "Accesso account", "You are about to grant %s access to your %s account." : "Stai per accordare a \"%s\" l'accesso al tuo account %s.", - "Grant access" : "Accorda accesso", - "App token" : "Token applicazione", - "Alternative login using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "Redirecting …" : "Redirezione in corso...", "New password" : "Nuova password", "New Password" : "Nuova password", @@ -337,8 +338,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Per informazioni su come configurare correttamente il tuo server, vedi la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentazione</a>.", "This action requires you to confirm your password:" : "Questa azione richiede la conferma della tua password:", "Wrong password. Reset it?" : "Password errata. Vuoi reimpostarla?", + "Stay logged in" : "Rimani collegato", "Alternative Logins" : "Accessi alternativi", "You are about to grant \"%s\" access to your %s account." : "Stai per accordare a \"%s\" l'accesso al tuo account %s.", + "Alternative login using app token" : "Accesso alternativo utilizzando il token dell'applicazione", "You are accessing the server from an untrusted domain." : "Stai accedendo al server da un dominio non attendibile.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Contatta il tuo amministratore di sistema. Se sei un amministratore di questa istanza, configura l'impostazione \"trusted_domains\" in config/config.php. Una configurazione di esempio è disponibile in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "In base alla tua configurazione, come amministratore potrai utilizzare anche il pulsante in basso per rendere attendibile questo dominio.", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index 52af79bbe9d..3d0c1c75e84 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -249,12 +249,10 @@ OC.L10N.register( "Username or email" : "ユーザ名かメールアドレス", "Log in" : "ログイン", "Wrong password." : "パスワードが間違っています。", - "Stay logged in" : "ログインしたままにする", "Forgot password?" : "パスワードをお忘れですか?", + "App token" : "アプリのトークン", "Account access" : "アカウントによるアクセス許可", "You are about to grant %s access to your %s account." : "%s アカウントに あなたのアカウント %s へのアクセスを許可", - "App token" : "アプリのトークン", - "Alternative login using app token" : "アプリトークンを使って代替ログイン", "Redirecting …" : "転送中...", "New password" : "新しいパスワードを入力", "New Password" : "新しいパスワード", @@ -284,6 +282,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "ユーザー名、グループ、クラウド統合ID、メールアドレスで共有", "Share with other people by entering a user or group or a federated cloud ID." : "ユーザー名、グループ、クラウド統合IDで共有", "Share with other people by entering a user or group or an email address." : "ユーザー名やグループ名、メールアドレスで共有", - "Alternative Logins" : "代替ログイン" + "Stay logged in" : "ログインしたままにする", + "Alternative Logins" : "代替ログイン", + "Alternative login using app token" : "アプリトークンを使って代替ログイン" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/ja.json b/core/l10n/ja.json index c716166166a..0b5131f1393 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -247,12 +247,10 @@ "Username or email" : "ユーザ名かメールアドレス", "Log in" : "ログイン", "Wrong password." : "パスワードが間違っています。", - "Stay logged in" : "ログインしたままにする", "Forgot password?" : "パスワードをお忘れですか?", + "App token" : "アプリのトークン", "Account access" : "アカウントによるアクセス許可", "You are about to grant %s access to your %s account." : "%s アカウントに あなたのアカウント %s へのアクセスを許可", - "App token" : "アプリのトークン", - "Alternative login using app token" : "アプリトークンを使って代替ログイン", "Redirecting …" : "転送中...", "New password" : "新しいパスワードを入力", "New Password" : "新しいパスワード", @@ -282,6 +280,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "ユーザー名、グループ、クラウド統合ID、メールアドレスで共有", "Share with other people by entering a user or group or a federated cloud ID." : "ユーザー名、グループ、クラウド統合IDで共有", "Share with other people by entering a user or group or an email address." : "ユーザー名やグループ名、メールアドレスで共有", - "Alternative Logins" : "代替ログイン" + "Stay logged in" : "ログインしたままにする", + "Alternative Logins" : "代替ログイン", + "Alternative login using app token" : "アプリトークンを使って代替ログイン" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js index 60d951aa766..3e39a6ff1b7 100644 --- a/core/l10n/ka_GE.js +++ b/core/l10n/ka_GE.js @@ -274,13 +274,11 @@ OC.L10N.register( "Log in" : "შესვლა", "Wrong password." : "არასწორი პაროლი.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "თქვენი IP მისამართით შევნიშნეთ არაერთი წარუმატებელი ავტორიზაციის მცდელობა. აქედან გამომდინარე თქვენი შემდეგი ავტორიზაციის მცდელობა შეიზღუდება დაახლოებით 30 წამით.", - "Stay logged in" : "ავტორიზებულად დარჩენა", "Forgot password?" : "დაგავიწყდათ პაროლი?", + "App token" : "აპლიკაციის ტოკენი", + "Grant access" : "უფლებების მინიჭება", "Account access" : "წვდომა ანგარიშზე", "You are about to grant %s access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", - "Grant access" : "უფლებების მინიჭება", - "App token" : "აპლიკაციის ტოკენი", - "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", "Redirecting …" : "გადამისამართება ...", "New password" : "ახალი პაროლი", "New Password" : "ახლი პაროლი", @@ -337,8 +335,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">დოკუემტაცია</a>.", "This action requires you to confirm your password:" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას:", "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ ის?", + "Stay logged in" : "ავტორიზებულად დარჩენა", "Alternative Logins" : "ალტერნატიული ლოგინები", "You are about to grant \"%s\" access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", + "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", "You are accessing the server from an untrusted domain." : "სერვერს უკავშირდებით არა-სანდო დომენიდან.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი. მაგალითი მოყვანილია config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "თქვენი კონფიგურაციიდან გამომდინარე, როგორც ადმინისტრატორმა დომენის ნდობისთვის ასევე შეგიძლიათ ისარგებლოთ ქვემოთ არსებული ღილაკითაც.", diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json index 552fdb26c4e..aa56f45419f 100644 --- a/core/l10n/ka_GE.json +++ b/core/l10n/ka_GE.json @@ -272,13 +272,11 @@ "Log in" : "შესვლა", "Wrong password." : "არასწორი პაროლი.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "თქვენი IP მისამართით შევნიშნეთ არაერთი წარუმატებელი ავტორიზაციის მცდელობა. აქედან გამომდინარე თქვენი შემდეგი ავტორიზაციის მცდელობა შეიზღუდება დაახლოებით 30 წამით.", - "Stay logged in" : "ავტორიზებულად დარჩენა", "Forgot password?" : "დაგავიწყდათ პაროლი?", + "App token" : "აპლიკაციის ტოკენი", + "Grant access" : "უფლებების მინიჭება", "Account access" : "წვდომა ანგარიშზე", "You are about to grant %s access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", - "Grant access" : "უფლებების მინიჭება", - "App token" : "აპლიკაციის ტოკენი", - "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", "Redirecting …" : "გადამისამართება ...", "New password" : "ახალი პაროლი", "New Password" : "ახლი პაროლი", @@ -335,8 +333,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">დოკუემტაცია</a>.", "This action requires you to confirm your password:" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას:", "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ ის?", + "Stay logged in" : "ავტორიზებულად დარჩენა", "Alternative Logins" : "ალტერნატიული ლოგინები", "You are about to grant \"%s\" access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", + "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", "You are accessing the server from an untrusted domain." : "სერვერს უკავშირდებით არა-სანდო დომენიდან.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი. მაგალითი მოყვანილია config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "თქვენი კონფიგურაციიდან გამომდინარე, როგორც ადმინისტრატორმა დომენის ნდობისთვის ასევე შეგიძლიათ ისარგებლოთ ქვემოთ არსებული ღილაკითაც.", diff --git a/core/l10n/ko.js b/core/l10n/ko.js index 41cc09befec..b8e2b7e4e2e 100644 --- a/core/l10n/ko.js +++ b/core/l10n/ko.js @@ -274,13 +274,11 @@ OC.L10N.register( "Log in" : "로그인", "Wrong password." : "암호가 잘못되었습니다.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "사용 중인 IP에서 여러 번의 잘못된 로그인 시도를 감지했습니다. 30초 후에 다시 로그인할 수 있습니다.", - "Stay logged in" : "로그인 유지", "Forgot password?" : "암호를 잊으셨습니까?", + "App token" : "앱 토큰", + "Grant access" : "접근 허용", "Account access" : "계정 접근", "You are about to grant %s access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", - "Grant access" : "접근 허용", - "App token" : "앱 토큰", - "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", "Redirecting …" : "전환 중 …", "New password" : "새 암호", "New Password" : "새 암호", @@ -337,8 +335,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "서버를 올바르게 설정하는 방법에 대해서 더 알아보려면 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">문서</a>를 참조하십시오.", "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Wrong password. Reset it?" : "암호가 잘못되었습니다. 다시 설정하시겠습니까?", + "Stay logged in" : "로그인 유지", "Alternative Logins" : "대체 로그인", "You are about to grant \"%s\" access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", + "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", "You are accessing the server from an untrusted domain." : "신뢰할 수 없는 도메인으로 서버에 접근하고 있습니다.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "시스템 관리자에게 연락하십시오. 만약 이 인스턴스의 관리자라면 config/config.php에서 \"trusted_domains\" 설정을 편집하십시오. config/config.sample.php에 있는 예제 설정을 참고하십시오.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "설정에 따라서 관리자 권한으로 아래 단추를 눌러서 이 도메인을 신뢰하도록 설정할 수 있습니다.", diff --git a/core/l10n/ko.json b/core/l10n/ko.json index 62d661a27f6..dce6ee75674 100644 --- a/core/l10n/ko.json +++ b/core/l10n/ko.json @@ -272,13 +272,11 @@ "Log in" : "로그인", "Wrong password." : "암호가 잘못되었습니다.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "사용 중인 IP에서 여러 번의 잘못된 로그인 시도를 감지했습니다. 30초 후에 다시 로그인할 수 있습니다.", - "Stay logged in" : "로그인 유지", "Forgot password?" : "암호를 잊으셨습니까?", + "App token" : "앱 토큰", + "Grant access" : "접근 허용", "Account access" : "계정 접근", "You are about to grant %s access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", - "Grant access" : "접근 허용", - "App token" : "앱 토큰", - "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", "Redirecting …" : "전환 중 …", "New password" : "새 암호", "New Password" : "새 암호", @@ -335,8 +333,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "서버를 올바르게 설정하는 방법에 대해서 더 알아보려면 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">문서</a>를 참조하십시오.", "This action requires you to confirm your password:" : "이 작업을 수행하려면 암호를 입력해야 합니다:", "Wrong password. Reset it?" : "암호가 잘못되었습니다. 다시 설정하시겠습니까?", + "Stay logged in" : "로그인 유지", "Alternative Logins" : "대체 로그인", "You are about to grant \"%s\" access to your %s account." : "\"%s\"에 접근하기 위해서 %s 계정을 사용하려고 합니다.", + "Alternative login using app token" : "앱 토큰을 사용한 대체 로그인", "You are accessing the server from an untrusted domain." : "신뢰할 수 없는 도메인으로 서버에 접근하고 있습니다.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "시스템 관리자에게 연락하십시오. 만약 이 인스턴스의 관리자라면 config/config.php에서 \"trusted_domains\" 설정을 편집하십시오. config/config.sample.php에 있는 예제 설정을 참고하십시오.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "설정에 따라서 관리자 권한으로 아래 단추를 눌러서 이 도메인을 신뢰하도록 설정할 수 있습니다.", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index 227f087501e..5f83a4fa75d 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -255,13 +255,11 @@ OC.L10N.register( "Username or email" : "Naudotojo vardas ar el. paštas", "Log in" : "Prisijungti", "Wrong password." : "Neteisingas slaptažodis.", - "Stay logged in" : "Likti prisijungus", "Forgot password?" : "Pamiršote slaptažodį?", + "App token" : "Išorinės sistemos įskiepio kodas", + "Grant access" : "Suteikti prieigą", "Account access" : "Paskyros prieiga", "You are about to grant %s access to your %s account." : "Jūs ketinate suteikti %s prieigą prie savo %s paskyros.", - "Grant access" : "Suteikti prieigą", - "App token" : "Išorinės sistemos įskiepio kodas", - "Alternative login using app token" : "Alternatyvus prisijungimas naudojant išorinės sistemos kodą", "Redirecting …" : "Nukreipiama...", "New password" : "Naujas slaptažodis", "New Password" : "Naujas slaptažodis", @@ -297,8 +295,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Išsamesnei informacijai apie tai kaip tinkamai sukonfigūruoti savo serverį, žiūrėkite <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentaciją</a>.", "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?", + "Stay logged in" : "Likti prisijungus", "Alternative Logins" : "Alternatyvūs prisijungimai", "You are about to grant \"%s\" access to your %s account." : "Ketinate suteikti \"%s\" prieigą prie savo %s paskyros.", + "Alternative login using app token" : "Alternatyvus prisijungimas naudojant išorinės sistemos kodą", "Back to log in" : "Grįžti prie prisijungimo" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index cad7353c9ce..0626788ceb8 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -253,13 +253,11 @@ "Username or email" : "Naudotojo vardas ar el. paštas", "Log in" : "Prisijungti", "Wrong password." : "Neteisingas slaptažodis.", - "Stay logged in" : "Likti prisijungus", "Forgot password?" : "Pamiršote slaptažodį?", + "App token" : "Išorinės sistemos įskiepio kodas", + "Grant access" : "Suteikti prieigą", "Account access" : "Paskyros prieiga", "You are about to grant %s access to your %s account." : "Jūs ketinate suteikti %s prieigą prie savo %s paskyros.", - "Grant access" : "Suteikti prieigą", - "App token" : "Išorinės sistemos įskiepio kodas", - "Alternative login using app token" : "Alternatyvus prisijungimas naudojant išorinės sistemos kodą", "Redirecting …" : "Nukreipiama...", "New password" : "Naujas slaptažodis", "New Password" : "Naujas slaptažodis", @@ -295,8 +293,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Išsamesnei informacijai apie tai kaip tinkamai sukonfigūruoti savo serverį, žiūrėkite <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentaciją</a>.", "This action requires you to confirm your password:" : "Šis veiksmas reikalauja, kad patvirtintumėte savo slaptažodį:", "Wrong password. Reset it?" : "Neteisingas slaptažodis. Atstatyti jį?", + "Stay logged in" : "Likti prisijungus", "Alternative Logins" : "Alternatyvūs prisijungimai", "You are about to grant \"%s\" access to your %s account." : "Ketinate suteikti \"%s\" prieigą prie savo %s paskyros.", + "Alternative login using app token" : "Alternatyvus prisijungimas naudojant išorinės sistemos kodą", "Back to log in" : "Grįžti prie prisijungimo" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/core/l10n/lv.js b/core/l10n/lv.js index 2509f3a4465..eea86648069 100644 --- a/core/l10n/lv.js +++ b/core/l10n/lv.js @@ -235,9 +235,7 @@ OC.L10N.register( "Username or email" : "Lietotājvārds vai e-pasts", "Log in" : "Ierakstīties", "Wrong password." : "Nepareiza parole.", - "Stay logged in" : "Palikt ierakstītam", "App token" : "Programmas pilnvara", - "Alternative login using app token" : "Alternatīvās pieteikšanās izmantojot programmas pilnvaru.", "Redirecting …" : "Novirzam ...", "New password" : "Jauna parole", "New Password" : "Jauna parole", @@ -267,6 +265,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu, federated cloud ID vai e-pasta adresi.", "Share with other people by entering a user or group or a federated cloud ID." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu vai federated cloud ID.", "Share with other people by entering a user or group or an email address." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu vai e-pasta adresi.", - "Alternative Logins" : "Alternatīvās pieteikšanās" + "Stay logged in" : "Palikt ierakstītam", + "Alternative Logins" : "Alternatīvās pieteikšanās", + "Alternative login using app token" : "Alternatīvās pieteikšanās izmantojot programmas pilnvaru." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"); diff --git a/core/l10n/lv.json b/core/l10n/lv.json index 4b0339d13da..1e8678cffaa 100644 --- a/core/l10n/lv.json +++ b/core/l10n/lv.json @@ -233,9 +233,7 @@ "Username or email" : "Lietotājvārds vai e-pasts", "Log in" : "Ierakstīties", "Wrong password." : "Nepareiza parole.", - "Stay logged in" : "Palikt ierakstītam", "App token" : "Programmas pilnvara", - "Alternative login using app token" : "Alternatīvās pieteikšanās izmantojot programmas pilnvaru.", "Redirecting …" : "Novirzam ...", "New password" : "Jauna parole", "New Password" : "Jauna parole", @@ -265,6 +263,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu, federated cloud ID vai e-pasta adresi.", "Share with other people by entering a user or group or a federated cloud ID." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu vai federated cloud ID.", "Share with other people by entering a user or group or an email address." : "Dalīties ar citiem cilvēkiem ievadot lietotāju, grupu vai e-pasta adresi.", - "Alternative Logins" : "Alternatīvās pieteikšanās" + "Stay logged in" : "Palikt ierakstītam", + "Alternative Logins" : "Alternatīvās pieteikšanās", + "Alternative login using app token" : "Alternatīvās pieteikšanās izmantojot programmas pilnvaru." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);" }
\ No newline at end of file diff --git a/core/l10n/nb.js b/core/l10n/nb.js index a5a194ad697..94dbd2a2a0c 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -175,6 +175,7 @@ OC.L10N.register( "This list is maybe truncated - please refine your search term to see more results." : "Listen kan bli avkortet - juster søket ditt for å se flere resultat.", "No users or groups found for {search}" : "Ingen brukere eller grupper funnet for {search}", "No users found for {search}" : "Ingen brukere funnet for {search}", + "An error occurred (\"{message}\"). Please try again" : "En feil inntraff (\"{message}\"). Prøv igjen", "An error occurred. Please try again" : "Det oppstod en feil. Prøv igjen", "{sharee} (group)" : "{sharee} (gruppe)", "{sharee} (remote)" : "{sharee} (ekstern)", @@ -274,14 +275,12 @@ OC.L10N.register( "Log in" : "Logg inn", "Wrong password." : "Feil passord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Vi har detektert flere ugyldige påloggingsforsøk fra din IP-adresse. Derfor er din neste innlogging forsinket med opptil 30 sekunder.", - "Stay logged in" : "Forbli innlogget", "Forgot password?" : "Glemt passord?", "Back to login" : "Tilbake til innlogging", + "App token" : "Program-symbol", + "Grant access" : "Gi tilgang", "Account access" : "Kontotilgang", "You are about to grant %s access to your %s account." : "Du er i ferd med å gi %s tilgang til din %s konto.", - "Grant access" : "Gi tilgang", - "App token" : "Program-symbol", - "Alternative login using app token" : "Alternativ innlogging ved bruk av program-symbol", "Redirecting …" : "Videresender…", "New password" : "Nytt passord", "New Password" : "Nytt passord", @@ -338,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For informasjon om hvordan du skal konfigurere tjeneren skikkelig, se i <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentasjonen</a>.", "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?", + "Stay logged in" : "Forbli innlogget", "Alternative Logins" : "Alternative innlogginger", "You are about to grant \"%s\" access to your %s account." : "Du er i ferd med å gi \"%s\" tilgang til din %s-konto.", + "Alternative login using app token" : "Alternativ innlogging ved bruk av program-symbol", "You are accessing the server from an untrusted domain." : "Du besøker tjeneren fra et ikke-klarert domene.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontakt din administrator. Hvis du er administrator for denne instansen, sett opp innstillingen \"trusted_domains\" i config/config.php. Et eksempel på oppsett er gitt i config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Avhengig av oppsettet kan du, som administrator, kanskje også bruke kanppen nedenfor til å stole på dette domenet.", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index 1a5b4e3c518..3e9b1ec6f3b 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -173,6 +173,7 @@ "This list is maybe truncated - please refine your search term to see more results." : "Listen kan bli avkortet - juster søket ditt for å se flere resultat.", "No users or groups found for {search}" : "Ingen brukere eller grupper funnet for {search}", "No users found for {search}" : "Ingen brukere funnet for {search}", + "An error occurred (\"{message}\"). Please try again" : "En feil inntraff (\"{message}\"). Prøv igjen", "An error occurred. Please try again" : "Det oppstod en feil. Prøv igjen", "{sharee} (group)" : "{sharee} (gruppe)", "{sharee} (remote)" : "{sharee} (ekstern)", @@ -272,14 +273,12 @@ "Log in" : "Logg inn", "Wrong password." : "Feil passord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Vi har detektert flere ugyldige påloggingsforsøk fra din IP-adresse. Derfor er din neste innlogging forsinket med opptil 30 sekunder.", - "Stay logged in" : "Forbli innlogget", "Forgot password?" : "Glemt passord?", "Back to login" : "Tilbake til innlogging", + "App token" : "Program-symbol", + "Grant access" : "Gi tilgang", "Account access" : "Kontotilgang", "You are about to grant %s access to your %s account." : "Du er i ferd med å gi %s tilgang til din %s konto.", - "Grant access" : "Gi tilgang", - "App token" : "Program-symbol", - "Alternative login using app token" : "Alternativ innlogging ved bruk av program-symbol", "Redirecting …" : "Videresender…", "New password" : "Nytt passord", "New Password" : "Nytt passord", @@ -336,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "For informasjon om hvordan du skal konfigurere tjeneren skikkelig, se i <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dokumentasjonen</a>.", "This action requires you to confirm your password:" : "Denne handlingen krever at du bekrefter ditt passord:", "Wrong password. Reset it?" : "Feilpassord. Tilbakestill?", + "Stay logged in" : "Forbli innlogget", "Alternative Logins" : "Alternative innlogginger", "You are about to grant \"%s\" access to your %s account." : "Du er i ferd med å gi \"%s\" tilgang til din %s-konto.", + "Alternative login using app token" : "Alternativ innlogging ved bruk av program-symbol", "You are accessing the server from an untrusted domain." : "Du besøker tjeneren fra et ikke-klarert domene.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Kontakt din administrator. Hvis du er administrator for denne instansen, sett opp innstillingen \"trusted_domains\" i config/config.php. Et eksempel på oppsett er gitt i config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Avhengig av oppsettet kan du, som administrator, kanskje også bruke kanppen nedenfor til å stole på dette domenet.", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 69e57aa0b28..7a4fc90c3ce 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Inloggen", "Wrong password." : "Onjuist wachtwoord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We hebben meerdere foutieve inlogverzoeken van jouw IP gedetecteerd. Hierdoor wordt je volgende inlogverzoek 30 seconden uitgesteld.", - "Stay logged in" : "Ingelogd blijven", "Forgot password?" : "Wachtwoord vergeten?", "Back to login" : "Terug naar inloggen", + "App token" : "App token", + "Grant access" : "Verleen toegang", "Account access" : "Account toegang", "You are about to grant %s access to your %s account." : "Je staat op het punt om %s toegang te verlenen to je %s account.", - "Grant access" : "Verleen toegang", - "App token" : "App token", - "Alternative login using app token" : "Alternatieve login doormiddel van app token", "Redirecting …" : "Omleiding ...", "New password" : "Nieuw wachtwoord", "New Password" : "Nieuw wachtwoord", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Voor meer informatie over het correct instellen van je server, verwijzen we je graag naar onze <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentatie</a>.", "This action requires you to confirm your password:" : "Deze actie moet je met je wachtwoord bevestigen:", "Wrong password. Reset it?" : "Onjuist wachtwoord. Wachtwoord resetten?", + "Stay logged in" : "Ingelogd blijven", "Alternative Logins" : "Alternatieve inlogs", "You are about to grant \"%s\" access to your %s account." : "Je staat op het punt om \"%s\" toegang te geven tot je %s account.", + "Alternative login using app token" : "Alternatieve login doormiddel van app token", "You are accessing the server from an untrusted domain." : "Je benadert de server van een niet-vertrouwd domein.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Neem contact op met de beheerder. Als je zelf de beheerder bent van deze installatie, zorg dan de \"trusted_domains\" instellingen goed zijn ingesteld in config/config.php. Een voorbeeldconfiguratie vind je in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Afhankelijk van je instellingen kun je mogelijk als admin ook de onderstaande knop gebruiken om dit domein te vertrouwen.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 1d399e4743e..1b80c2735e7 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -273,14 +273,12 @@ "Log in" : "Inloggen", "Wrong password." : "Onjuist wachtwoord.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "We hebben meerdere foutieve inlogverzoeken van jouw IP gedetecteerd. Hierdoor wordt je volgende inlogverzoek 30 seconden uitgesteld.", - "Stay logged in" : "Ingelogd blijven", "Forgot password?" : "Wachtwoord vergeten?", "Back to login" : "Terug naar inloggen", + "App token" : "App token", + "Grant access" : "Verleen toegang", "Account access" : "Account toegang", "You are about to grant %s access to your %s account." : "Je staat op het punt om %s toegang te verlenen to je %s account.", - "Grant access" : "Verleen toegang", - "App token" : "App token", - "Alternative login using app token" : "Alternatieve login doormiddel van app token", "Redirecting …" : "Omleiding ...", "New password" : "Nieuw wachtwoord", "New Password" : "Nieuw wachtwoord", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Voor meer informatie over het correct instellen van je server, verwijzen we je graag naar onze <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentatie</a>.", "This action requires you to confirm your password:" : "Deze actie moet je met je wachtwoord bevestigen:", "Wrong password. Reset it?" : "Onjuist wachtwoord. Wachtwoord resetten?", + "Stay logged in" : "Ingelogd blijven", "Alternative Logins" : "Alternatieve inlogs", "You are about to grant \"%s\" access to your %s account." : "Je staat op het punt om \"%s\" toegang te geven tot je %s account.", + "Alternative login using app token" : "Alternatieve login doormiddel van app token", "You are accessing the server from an untrusted domain." : "Je benadert de server van een niet-vertrouwd domein.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Neem contact op met de beheerder. Als je zelf de beheerder bent van deze installatie, zorg dan de \"trusted_domains\" instellingen goed zijn ingesteld in config/config.php. Een voorbeeldconfiguratie vind je in config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Afhankelijk van je instellingen kun je mogelijk als admin ook de onderstaande knop gebruiken om dit domein te vertrouwen.", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index ae040b6915e..03ddcb8f154 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -272,13 +272,11 @@ OC.L10N.register( "Username or email" : "Nazwa użytkownika lub adres e-mail", "Log in" : "Zaloguj", "Wrong password." : "Złe hasło", - "Stay logged in" : "Pozostań zalogowany", "Forgot password?" : "Zapomniano hasła?", + "App token" : "Token aplikacji", + "Grant access" : "Udziel dostępu", "Account access" : "Dostęp do konta", "You are about to grant %s access to your %s account." : "Zamierzasz udzielić %s dostępu do Twojego konta %s.", - "Grant access" : "Udziel dostępu", - "App token" : "Token aplikacji", - "Alternative login using app token" : "Zaloguj alternatywnie używając tokenu aplikacji", "Redirecting …" : "Przekierowuję...", "New password" : "Nowe hasło", "New Password" : "Nowe hasło", @@ -317,7 +315,9 @@ OC.L10N.register( "Share with other people by entering a user or group or an email address." : "Współdziel z innymi osobami przez wpisanie użytkownika lub grupy lub adresu e-mail.", "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia Twojego hasła:", "Wrong password. Reset it?" : "Niepoprawne hasło? Zresetować je?", + "Stay logged in" : "Pozostań zalogowany", "Alternative Logins" : "Alternatywne loginy", + "Alternative login using app token" : "Zaloguj alternatywnie używając tokenu aplikacji", "You are accessing the server from an untrusted domain." : "Uzyskujesz dostęp do serwera z niezaufanej domeny.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Aby uzyskać pomoc, zajrzyj do <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentacji</a>.", "Back to log in" : "Powrót do logowania" diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 473b502fb40..ccacfeee7fe 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -270,13 +270,11 @@ "Username or email" : "Nazwa użytkownika lub adres e-mail", "Log in" : "Zaloguj", "Wrong password." : "Złe hasło", - "Stay logged in" : "Pozostań zalogowany", "Forgot password?" : "Zapomniano hasła?", + "App token" : "Token aplikacji", + "Grant access" : "Udziel dostępu", "Account access" : "Dostęp do konta", "You are about to grant %s access to your %s account." : "Zamierzasz udzielić %s dostępu do Twojego konta %s.", - "Grant access" : "Udziel dostępu", - "App token" : "Token aplikacji", - "Alternative login using app token" : "Zaloguj alternatywnie używając tokenu aplikacji", "Redirecting …" : "Przekierowuję...", "New password" : "Nowe hasło", "New Password" : "Nowe hasło", @@ -315,7 +313,9 @@ "Share with other people by entering a user or group or an email address." : "Współdziel z innymi osobami przez wpisanie użytkownika lub grupy lub adresu e-mail.", "This action requires you to confirm your password:" : "Ta akcja wymaga potwierdzenia Twojego hasła:", "Wrong password. Reset it?" : "Niepoprawne hasło? Zresetować je?", + "Stay logged in" : "Pozostań zalogowany", "Alternative Logins" : "Alternatywne loginy", + "Alternative login using app token" : "Zaloguj alternatywnie używając tokenu aplikacji", "You are accessing the server from an untrusted domain." : "Uzyskujesz dostęp do serwera z niezaufanej domeny.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Aby uzyskać pomoc, zajrzyj do <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dokumentacji</a>.", "Back to log in" : "Powrót do logowania" diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 2a19ba92116..a1435738af5 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -275,14 +275,15 @@ OC.L10N.register( "Log in" : "Entrar", "Wrong password." : "Senha errada", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Detectamos várias tentativas de login inválidas de seu IP. Portanto, seu próximo login será desacelerado em até 30 segundos.", - "Stay logged in" : "Permaneça logado", "Forgot password?" : "Esqueceu a senha?", "Back to login" : "Voltar ao login", + "Connect to your account" : "Conectar à sua conta", + "Please log in before granting %s access to your %s account." : " Por favor, faça o login antes de conceder %s acesso à sua %s conta.", + "App token" : "Token do aplicativo", + "Grant access" : "Conceder acesso", + "Alternative log in using app token" : "Login alternativo usando aplicativo de token", "Account access" : "Acesso à conta", "You are about to grant %s access to your %s account." : "Você está prestes a conceder acesso a %s à sua conta %s.", - "Grant access" : "Conceder acesso", - "App token" : "Token do aplicativo", - "Alternative login using app token" : "Login alternativo usando o token do aplicativo", "Redirecting …" : "Redirecionando...", "New password" : "Nova senha", "New Password" : "Nova senha", @@ -339,8 +340,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informações sobre como configurar corretamente o servidor, consulte a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "This action requires you to confirm your password:" : "Esta ação exige que você confirme sua senha:", "Wrong password. Reset it?" : "Senha incorreta. Redefini-la?", + "Stay logged in" : "Permaneça logado", "Alternative Logins" : "Logins alternativos", "You are about to grant \"%s\" access to your %s account." : "Você está prestes a conceder acesso a \"%s\" à sua conta %s.", + "Alternative login using app token" : "Login alternativo usando o token do aplicativo", "You are accessing the server from an untrusted domain." : "Você está acessando o servidor de um domínio não confiável.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Entre em contato com o administrador. Se você é o administrador, defina a configuração \"trusted_domains\" em config/config.php. Uma configuração de exemplo é fornecida em config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependendo da configuração, como administrador você também poderá usar o botão abaixo para confiar neste domínio.", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index ba3b9e0d070..7b31b2abec0 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -273,14 +273,15 @@ "Log in" : "Entrar", "Wrong password." : "Senha errada", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Detectamos várias tentativas de login inválidas de seu IP. Portanto, seu próximo login será desacelerado em até 30 segundos.", - "Stay logged in" : "Permaneça logado", "Forgot password?" : "Esqueceu a senha?", "Back to login" : "Voltar ao login", + "Connect to your account" : "Conectar à sua conta", + "Please log in before granting %s access to your %s account." : " Por favor, faça o login antes de conceder %s acesso à sua %s conta.", + "App token" : "Token do aplicativo", + "Grant access" : "Conceder acesso", + "Alternative log in using app token" : "Login alternativo usando aplicativo de token", "Account access" : "Acesso à conta", "You are about to grant %s access to your %s account." : "Você está prestes a conceder acesso a %s à sua conta %s.", - "Grant access" : "Conceder acesso", - "App token" : "Token do aplicativo", - "Alternative login using app token" : "Login alternativo usando o token do aplicativo", "Redirecting …" : "Redirecionando...", "New password" : "Nova senha", "New Password" : "Nova senha", @@ -337,8 +338,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informações sobre como configurar corretamente o servidor, consulte a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "This action requires you to confirm your password:" : "Esta ação exige que você confirme sua senha:", "Wrong password. Reset it?" : "Senha incorreta. Redefini-la?", + "Stay logged in" : "Permaneça logado", "Alternative Logins" : "Logins alternativos", "You are about to grant \"%s\" access to your %s account." : "Você está prestes a conceder acesso a \"%s\" à sua conta %s.", + "Alternative login using app token" : "Login alternativo usando o token do aplicativo", "You are accessing the server from an untrusted domain." : "Você está acessando o servidor de um domínio não confiável.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Entre em contato com o administrador. Se você é o administrador, defina a configuração \"trusted_domains\" em config/config.php. Uma configuração de exemplo é fornecida em config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependendo da configuração, como administrador você também poderá usar o botão abaixo para confiar neste domínio.", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 86467342255..c1ab3634250 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -274,13 +274,11 @@ OC.L10N.register( "Log in" : "Iniciar Sessão", "Wrong password." : "Senha errada.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Detectamos múltiplas tentativas falhadas de login do seu IP. Por esse motivo, o seu próximo login será adiado por, até, 30 segundos. ", - "Stay logged in" : "Manter sessão iniciada", "Forgot password?" : "Senha esquecida?", + "App token" : "Token da aplicação", + "Grant access" : "Conceder acesso", "Account access" : "Acesso a conta", "You are about to grant %s access to your %s account." : "Está prestes a permitir %s aceder á sua conta %s.", - "Grant access" : "Conceder acesso", - "App token" : "Token da aplicação", - "Alternative login using app token" : "Autenticação alternativa usando token da aplicação", "Redirecting …" : "A redirecionar...", "New password" : "Nova senha", "New Password" : "Nova senha", @@ -337,8 +335,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informação sobre como configurar correctamente o seu servidor, por favor veja a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "This action requires you to confirm your password:" : "Esta acção requer a confirmação da senha:", "Wrong password. Reset it?" : "Senha errada. Redefini-la?", + "Stay logged in" : "Manter sessão iniciada", "Alternative Logins" : "Contas de Acesso Alternativas", "You are about to grant \"%s\" access to your %s account." : "Está prestes a permitir \"%s\" aceder à sua conta %s.", + "Alternative login using app token" : "Autenticação alternativa usando token da aplicação", "You are accessing the server from an untrusted domain." : "Está a aceder ao servidor a partir de um domínio que não é de confiança.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor, contacte o seu administrador. Se é um administrador desta instância, configure a definição \"trusted_domains\" em config/config.php. É fornecido um exemplo de configuração em config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependendo da sua configuração, como administrador poderá também conseguir usar o botão que se segue para confiar neste domínio.", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index 744ebddbba0..5674a40d49e 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -272,13 +272,11 @@ "Log in" : "Iniciar Sessão", "Wrong password." : "Senha errada.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Detectamos múltiplas tentativas falhadas de login do seu IP. Por esse motivo, o seu próximo login será adiado por, até, 30 segundos. ", - "Stay logged in" : "Manter sessão iniciada", "Forgot password?" : "Senha esquecida?", + "App token" : "Token da aplicação", + "Grant access" : "Conceder acesso", "Account access" : "Acesso a conta", "You are about to grant %s access to your %s account." : "Está prestes a permitir %s aceder á sua conta %s.", - "Grant access" : "Conceder acesso", - "App token" : "Token da aplicação", - "Alternative login using app token" : "Autenticação alternativa usando token da aplicação", "Redirecting …" : "A redirecionar...", "New password" : "Nova senha", "New Password" : "Nova senha", @@ -335,8 +333,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para obter informação sobre como configurar correctamente o seu servidor, por favor veja a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentação</a>.", "This action requires you to confirm your password:" : "Esta acção requer a confirmação da senha:", "Wrong password. Reset it?" : "Senha errada. Redefini-la?", + "Stay logged in" : "Manter sessão iniciada", "Alternative Logins" : "Contas de Acesso Alternativas", "You are about to grant \"%s\" access to your %s account." : "Está prestes a permitir \"%s\" aceder à sua conta %s.", + "Alternative login using app token" : "Autenticação alternativa usando token da aplicação", "You are accessing the server from an untrusted domain." : "Está a aceder ao servidor a partir de um domínio que não é de confiança.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor, contacte o seu administrador. Se é um administrador desta instância, configure a definição \"trusted_domains\" em config/config.php. É fornecido um exemplo de configuração em config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependendo da sua configuração, como administrador poderá também conseguir usar o botão que se segue para confiar neste domínio.", diff --git a/core/l10n/ro.js b/core/l10n/ro.js index c2c4a6c6f0d..aa902077f8f 100644 --- a/core/l10n/ro.js +++ b/core/l10n/ro.js @@ -248,11 +248,9 @@ OC.L10N.register( "Username or email" : "Nume de utilizator sau adresă email", "Log in" : "Autentificare", "Wrong password." : "Parolă greșită.", - "Stay logged in" : "Rămâi autentificat", + "App token" : "Token aplicație", "Account access" : "Acces cont", "You are about to grant %s access to your %s account." : "Ești pe cale să permiți %s accesul la %s contul tău.", - "App token" : "Token aplicație", - "Alternative login using app token" : "Conectare alternativă folosind token-ul aplicației", "Redirecting …" : "Redirectare...", "New password" : "Noua parolă", "New Password" : "Noua Parolă", @@ -285,6 +283,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup, a unui ID de cloud federalizat sau a unei adrese de email.", "Share with other people by entering a user or group or a federated cloud ID." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup sau a unui ID de cloud federalizat.", "Share with other people by entering a user or group or an email address." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup sau a unei adrese de email.", - "Alternative Logins" : "Conectări alternative" + "Stay logged in" : "Rămâi autentificat", + "Alternative Logins" : "Conectări alternative", + "Alternative login using app token" : "Conectare alternativă folosind token-ul aplicației" }, "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"); diff --git a/core/l10n/ro.json b/core/l10n/ro.json index 3e5bb2c5ab9..52a3af5a8a5 100644 --- a/core/l10n/ro.json +++ b/core/l10n/ro.json @@ -246,11 +246,9 @@ "Username or email" : "Nume de utilizator sau adresă email", "Log in" : "Autentificare", "Wrong password." : "Parolă greșită.", - "Stay logged in" : "Rămâi autentificat", + "App token" : "Token aplicație", "Account access" : "Acces cont", "You are about to grant %s access to your %s account." : "Ești pe cale să permiți %s accesul la %s contul tău.", - "App token" : "Token aplicație", - "Alternative login using app token" : "Conectare alternativă folosind token-ul aplicației", "Redirecting …" : "Redirectare...", "New password" : "Noua parolă", "New Password" : "Noua Parolă", @@ -283,6 +281,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup, a unui ID de cloud federalizat sau a unei adrese de email.", "Share with other people by entering a user or group or a federated cloud ID." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup sau a unui ID de cloud federalizat.", "Share with other people by entering a user or group or an email address." : "Partajează cu alte persoane prin introducerea unui utilizator sau grup sau a unei adrese de email.", - "Alternative Logins" : "Conectări alternative" + "Stay logged in" : "Rămâi autentificat", + "Alternative Logins" : "Conectări alternative", + "Alternative login using app token" : "Conectare alternativă folosind token-ul aplicației" },"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));" }
\ No newline at end of file diff --git a/core/l10n/ru.js b/core/l10n/ru.js index c407ae3fae9..49993f6a2bd 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Войти", "Wrong password." : "Неправильный пароль.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "С этого IP адреса было выполнено множество неудачных попыток входа. Следующую попытку входа в систему можно будет выполнить через 30 секунд.", - "Stay logged in" : "Оставаться в системе", "Forgot password?" : "Забыли пароль?", "Back to login" : "Авторизоваться повторно", + "App token" : "Токен приложения", + "Grant access" : "Предоставить доступ", "Account access" : "Доступ к аккаунту", "You are about to grant %s access to your %s account." : "Вы собираетесь предоставить пользователю %s доступ к вашему аккаунту %s.", - "Grant access" : "Предоставить доступ", - "App token" : "Токен приложения", - "Alternative login using app token" : "Альтернативный вход с токеном приложения", "Redirecting …" : "Перенаправление…", "New password" : "Новый пароль", "New Password" : "Новый пароль", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Информацию о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">документации</a>.", "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", "Wrong password. Reset it?" : "Неверный пароль. Сбросить его?", + "Stay logged in" : "Оставаться в системе", "Alternative Logins" : "Альтернативные имена пользователя", "You are about to grant \"%s\" access to your %s account." : "Вы собираетесь предоставить «%s» доступ ко своей учётной записи %s.", + "Alternative login using app token" : "Альтернативный вход с токеном приложения", "You are accessing the server from an untrusted domain." : "Вы пытаетесь получить доступ к серверу с недоверенного домена.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Обратитесь к администратору. Если вы являетесь администратором этого сервера, измените значение параметра «trusted_domains» в файле «config/config.php». Пример настройки можно найти в файле «config/config.sample.php».", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "В зависимости от конфигурации, вы, как администратор, можете также добавить домен в список доверенных при помощи кнопки, расположенной ниже.", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 5451ae73ef6..afcc4b272f4 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -273,14 +273,12 @@ "Log in" : "Войти", "Wrong password." : "Неправильный пароль.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "С этого IP адреса было выполнено множество неудачных попыток входа. Следующую попытку входа в систему можно будет выполнить через 30 секунд.", - "Stay logged in" : "Оставаться в системе", "Forgot password?" : "Забыли пароль?", "Back to login" : "Авторизоваться повторно", + "App token" : "Токен приложения", + "Grant access" : "Предоставить доступ", "Account access" : "Доступ к аккаунту", "You are about to grant %s access to your %s account." : "Вы собираетесь предоставить пользователю %s доступ к вашему аккаунту %s.", - "Grant access" : "Предоставить доступ", - "App token" : "Токен приложения", - "Alternative login using app token" : "Альтернативный вход с токеном приложения", "Redirecting …" : "Перенаправление…", "New password" : "Новый пароль", "New Password" : "Новый пароль", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Информацию о правильной настройке сервера можно найти в <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">документации</a>.", "This action requires you to confirm your password:" : "Это действие требует подтверждения вашего пароля:", "Wrong password. Reset it?" : "Неверный пароль. Сбросить его?", + "Stay logged in" : "Оставаться в системе", "Alternative Logins" : "Альтернативные имена пользователя", "You are about to grant \"%s\" access to your %s account." : "Вы собираетесь предоставить «%s» доступ ко своей учётной записи %s.", + "Alternative login using app token" : "Альтернативный вход с токеном приложения", "You are accessing the server from an untrusted domain." : "Вы пытаетесь получить доступ к серверу с недоверенного домена.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Обратитесь к администратору. Если вы являетесь администратором этого сервера, измените значение параметра «trusted_domains» в файле «config/config.php». Пример настройки можно найти в файле «config/config.sample.php».", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "В зависимости от конфигурации, вы, как администратор, можете также добавить домен в список доверенных при помощи кнопки, расположенной ниже.", diff --git a/core/l10n/sk.js b/core/l10n/sk.js index f7454f10950..2126e2f6991 100644 --- a/core/l10n/sk.js +++ b/core/l10n/sk.js @@ -260,14 +260,12 @@ OC.L10N.register( "Log in" : "Prihlásiť sa", "Wrong password." : "Nesprávne heslo.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Zaznamenali sme viacnásobné chybné prihlásenie z Vašej IP adresy. Vaše nasledujúce prihlásenie bude pozdržané o 30 sekúnd.", - "Stay logged in" : "Zostať prihlásený", "Forgot password?" : "Zabudli ste heslo?", "Back to login" : "Späť na prihlásenie", + "App token" : "Token aplikácie", + "Grant access" : "Povoliť prístup", "Account access" : "Prístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte sa udeliť %s prístup k svojmu %s účtu.", - "Grant access" : "Povoliť prístup", - "App token" : "Token aplikácie", - "Alternative login using app token" : "Alternatívne prihlásenie pomocou tokenu aplikácie", "Redirecting …" : "Presmerovanie...", "New password" : "Nové heslo", "New Password" : "Nové heslo", @@ -307,6 +305,8 @@ OC.L10N.register( "Share with other people by entering a user or group or a federated cloud ID." : "Sprístupniť iným ľuďom zadaním používateľa alebo skupiny, federatívneho cloud ID.", "Share with other people by entering a user or group or an email address." : "Sprístupniť iným ľuďom zadaním používateľa, skupiny alebo e-mailovej adresy.", "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?", - "Alternative Logins" : "Alternatívne prihlásenie" + "Stay logged in" : "Zostať prihlásený", + "Alternative Logins" : "Alternatívne prihlásenie", + "Alternative login using app token" : "Alternatívne prihlásenie pomocou tokenu aplikácie" }, "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"); diff --git a/core/l10n/sk.json b/core/l10n/sk.json index 647f563d1a1..e52c2f81818 100644 --- a/core/l10n/sk.json +++ b/core/l10n/sk.json @@ -258,14 +258,12 @@ "Log in" : "Prihlásiť sa", "Wrong password." : "Nesprávne heslo.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Zaznamenali sme viacnásobné chybné prihlásenie z Vašej IP adresy. Vaše nasledujúce prihlásenie bude pozdržané o 30 sekúnd.", - "Stay logged in" : "Zostať prihlásený", "Forgot password?" : "Zabudli ste heslo?", "Back to login" : "Späť na prihlásenie", + "App token" : "Token aplikácie", + "Grant access" : "Povoliť prístup", "Account access" : "Prístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte sa udeliť %s prístup k svojmu %s účtu.", - "Grant access" : "Povoliť prístup", - "App token" : "Token aplikácie", - "Alternative login using app token" : "Alternatívne prihlásenie pomocou tokenu aplikácie", "Redirecting …" : "Presmerovanie...", "New password" : "Nové heslo", "New Password" : "Nové heslo", @@ -305,6 +303,8 @@ "Share with other people by entering a user or group or a federated cloud ID." : "Sprístupniť iným ľuďom zadaním používateľa alebo skupiny, federatívneho cloud ID.", "Share with other people by entering a user or group or an email address." : "Sprístupniť iným ľuďom zadaním používateľa, skupiny alebo e-mailovej adresy.", "Wrong password. Reset it?" : "Chybné heslo. Chcete ho obnoviť?", - "Alternative Logins" : "Alternatívne prihlásenie" + "Stay logged in" : "Zostať prihlásený", + "Alternative Logins" : "Alternatívne prihlásenie", + "Alternative login using app token" : "Alternatívne prihlásenie pomocou tokenu aplikácie" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" }
\ No newline at end of file diff --git a/core/l10n/sl.js b/core/l10n/sl.js index 97c41c4f320..37eb02eb7d8 100644 --- a/core/l10n/sl.js +++ b/core/l10n/sl.js @@ -232,10 +232,9 @@ OC.L10N.register( "Username or email" : "Uporabniško ime ali elektronski naslov", "Log in" : "Prijava", "Wrong password." : "Napačno geslo!", - "Stay logged in" : "Ohrani prijavo", "Forgot password?" : "Pozabili geslo?", - "Grant access" : "Odobri dostop", "App token" : "Ključ aplikacije", + "Grant access" : "Odobri dostop", "Redirecting …" : "Presumerjam...", "New password" : "Novo geslo", "New Password" : "Novo geslo", @@ -260,6 +259,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "Stran bo osvežena ko bo %s spet na voljo.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Stopite v stik s skrbnikom sistema, če se bo sporočilo še naprej nepričakovano prikazovalo.", "Thank you for your patience." : "Hvala za potrpežljivost!", + "Stay logged in" : "Ohrani prijavo", "Alternative Logins" : "Druge prijavne možnosti", "Back to log in" : "Nazaj na prijavo" }, diff --git a/core/l10n/sl.json b/core/l10n/sl.json index 0d321642ed3..fc0d7c02c18 100644 --- a/core/l10n/sl.json +++ b/core/l10n/sl.json @@ -230,10 +230,9 @@ "Username or email" : "Uporabniško ime ali elektronski naslov", "Log in" : "Prijava", "Wrong password." : "Napačno geslo!", - "Stay logged in" : "Ohrani prijavo", "Forgot password?" : "Pozabili geslo?", - "Grant access" : "Odobri dostop", "App token" : "Ključ aplikacije", + "Grant access" : "Odobri dostop", "Redirecting …" : "Presumerjam...", "New password" : "Novo geslo", "New Password" : "Novo geslo", @@ -258,6 +257,7 @@ "This page will refresh itself when the %s instance is available again." : "Stran bo osvežena ko bo %s spet na voljo.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Stopite v stik s skrbnikom sistema, če se bo sporočilo še naprej nepričakovano prikazovalo.", "Thank you for your patience." : "Hvala za potrpežljivost!", + "Stay logged in" : "Ohrani prijavo", "Alternative Logins" : "Druge prijavne možnosti", "Back to log in" : "Nazaj na prijavo" },"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);" diff --git a/core/l10n/sq.js b/core/l10n/sq.js index 13cbd53d059..154c4f5e656 100644 --- a/core/l10n/sq.js +++ b/core/l10n/sq.js @@ -244,9 +244,7 @@ OC.L10N.register( "Username or email" : "Emër përdoruesi ose email", "Log in" : "Hyni", "Wrong password." : "Fjalëkalim i gabuar.", - "Stay logged in" : "Qëndro i futur", "App token" : "Çelës identifikues i API-t", - "Alternative login using app token" : "Hyrje alternative duke perdorur çelësin identifikues të API-t", "Redirecting …" : "Duke ju lidhur...", "New password" : "Fjalëkalim i ri", "New Password" : "Fjalëkalim i Ri", @@ -276,6 +274,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Shpërndaje me persona të tjerë duke vendosur një përdorues ose një grup, një ID reje të federuar ose një adresë emaili", "Share with other people by entering a user or group or a federated cloud ID." : "Ndaj me njerëz të tjerë duke futur një pëdorues ose grup ose një ID reje federale.", "Share with other people by entering a user or group or an email address." : "Shpërndaje me persona të tjerë duke vendosur një perdorues ose një grup ose një adresë emaili", - "Alternative Logins" : "Hyrje Alternative" + "Stay logged in" : "Qëndro i futur", + "Alternative Logins" : "Hyrje Alternative", + "Alternative login using app token" : "Hyrje alternative duke perdorur çelësin identifikues të API-t" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/sq.json b/core/l10n/sq.json index d785c23bab6..0dea2357169 100644 --- a/core/l10n/sq.json +++ b/core/l10n/sq.json @@ -242,9 +242,7 @@ "Username or email" : "Emër përdoruesi ose email", "Log in" : "Hyni", "Wrong password." : "Fjalëkalim i gabuar.", - "Stay logged in" : "Qëndro i futur", "App token" : "Çelës identifikues i API-t", - "Alternative login using app token" : "Hyrje alternative duke perdorur çelësin identifikues të API-t", "Redirecting …" : "Duke ju lidhur...", "New password" : "Fjalëkalim i ri", "New Password" : "Fjalëkalim i Ri", @@ -274,6 +272,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Shpërndaje me persona të tjerë duke vendosur një përdorues ose një grup, një ID reje të federuar ose një adresë emaili", "Share with other people by entering a user or group or a federated cloud ID." : "Ndaj me njerëz të tjerë duke futur një pëdorues ose grup ose një ID reje federale.", "Share with other people by entering a user or group or an email address." : "Shpërndaje me persona të tjerë duke vendosur një perdorues ose një grup ose një adresë emaili", - "Alternative Logins" : "Hyrje Alternative" + "Stay logged in" : "Qëndro i futur", + "Alternative Logins" : "Hyrje Alternative", + "Alternative login using app token" : "Hyrje alternative duke perdorur çelësin identifikues të API-t" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/sr.js b/core/l10n/sr.js index b37b7d5f9d6..7380f84959e 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "Пријава", "Wrong password." : "Погрешна лозинка.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Приметили смо више неисправних покушаја пријава са Ваше IP адресе. Следећа пријава ће бити могућа тек за 30 секунди.", - "Stay logged in" : "Останите пријављени", "Forgot password?" : "Заборавили сте лозинку?", "Back to login" : "Назад на пријаву", + "App token" : "Апликативни жетон", + "Grant access" : "Одобри приступ", "Account access" : "Приступ налогу", "You are about to grant %s access to your %s account." : "Управо ћете одобрити %s приступ Вашем %s налогу.", - "Grant access" : "Одобри приступ", - "App token" : "Апликативни жетон", - "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "Redirecting …" : "Преусмеравање ...", "New password" : "Нова лозинка", "New Password" : "Нова лозинка", @@ -339,8 +337,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "За информације како да правилно подесите Ваш сервер, погледајте <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">документацију</a>.", "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Stay logged in" : "Останите пријављени", "Alternative Logins" : "Алтернативне пријаве", "You are about to grant \"%s\" access to your %s account." : "Управо ћете одобрити \"%s\" приступ Вашем %s налогу.", + "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "You are accessing the server from an untrusted domain." : "Приступате серверу са непоузданог домена.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Контактирајте Вашег администратора. Ако сте Ви администратор, измените \"trusted_domains\" подешавање у config/config.php. Пример једног подешавања је дат у config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Зависно од ваших подешавања, као администратор можете употребити дугме испод да потврдите поузданост домена.", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index d8135de556e..657f0b6674c 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -273,14 +273,12 @@ "Log in" : "Пријава", "Wrong password." : "Погрешна лозинка.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "Приметили смо више неисправних покушаја пријава са Ваше IP адресе. Следећа пријава ће бити могућа тек за 30 секунди.", - "Stay logged in" : "Останите пријављени", "Forgot password?" : "Заборавили сте лозинку?", "Back to login" : "Назад на пријаву", + "App token" : "Апликативни жетон", + "Grant access" : "Одобри приступ", "Account access" : "Приступ налогу", "You are about to grant %s access to your %s account." : "Управо ћете одобрити %s приступ Вашем %s налогу.", - "Grant access" : "Одобри приступ", - "App token" : "Апликативни жетон", - "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "Redirecting …" : "Преусмеравање ...", "New password" : "Нова лозинка", "New Password" : "Нова лозинка", @@ -337,8 +335,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "За информације како да правилно подесите Ваш сервер, погледајте <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">документацију</a>.", "This action requires you to confirm your password:" : "Ова радња захтева да потврдите лозинку:", "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Stay logged in" : "Останите пријављени", "Alternative Logins" : "Алтернативне пријаве", "You are about to grant \"%s\" access to your %s account." : "Управо ћете одобрити \"%s\" приступ Вашем %s налогу.", + "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "You are accessing the server from an untrusted domain." : "Приступате серверу са непоузданог домена.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Контактирајте Вашег администратора. Ако сте Ви администратор, измените \"trusted_domains\" подешавање у config/config.php. Пример једног подешавања је дат у config/config.sample.php.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Зависно од ваших подешавања, као администратор можете употребити дугме испод да потврдите поузданост домена.", diff --git a/core/l10n/sv.js b/core/l10n/sv.js index 0fbc09ad062..0408592c4fa 100644 --- a/core/l10n/sv.js +++ b/core/l10n/sv.js @@ -255,13 +255,11 @@ OC.L10N.register( "Username or email" : "Användarnamn eller e-post", "Log in" : "Logga in", "Wrong password." : "Fel lösenord.", - "Stay logged in" : "Fortsätt vara inloggad.", "Forgot password?" : "Glömt lösenordet?", + "App token" : "App-polett", + "Grant access" : "Tillåt åtkomst", "Account access" : "Kontoåtkomst", "You are about to grant %s access to your %s account." : "Du håller på att ge %s tillgång till ditt %s-konto.", - "Grant access" : "Tillåt åtkomst", - "App token" : "App-polett", - "Alternative login using app token" : "Alternativ inloggning med app-token", "Redirecting …" : "Omdirigerar ...", "New password" : "Nytt lösenord", "New Password" : "Nytt lösenord", @@ -295,7 +293,9 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Dela med andra personer genom att ange användarnamn, grupp, ett federerat moln-ID eller en e-postadress.", "Share with other people by entering a user or group or a federated cloud ID." : "Dela med andra personer genom att ange användarnamn, grupp eller ett federerat moln-ID.", "Share with other people by entering a user or group or an email address." : "Dela med andra personer genom att ange användarnamn, grupp eller en e-postadress.", + "Stay logged in" : "Fortsätt vara inloggad.", "Alternative Logins" : "Alternativa inloggningar", + "Alternative login using app token" : "Alternativ inloggning med app-token", "Back to log in" : "Tillbaks till inloggning" }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/sv.json b/core/l10n/sv.json index a79eaa31e3e..5d503a8ace6 100644 --- a/core/l10n/sv.json +++ b/core/l10n/sv.json @@ -253,13 +253,11 @@ "Username or email" : "Användarnamn eller e-post", "Log in" : "Logga in", "Wrong password." : "Fel lösenord.", - "Stay logged in" : "Fortsätt vara inloggad.", "Forgot password?" : "Glömt lösenordet?", + "App token" : "App-polett", + "Grant access" : "Tillåt åtkomst", "Account access" : "Kontoåtkomst", "You are about to grant %s access to your %s account." : "Du håller på att ge %s tillgång till ditt %s-konto.", - "Grant access" : "Tillåt åtkomst", - "App token" : "App-polett", - "Alternative login using app token" : "Alternativ inloggning med app-token", "Redirecting …" : "Omdirigerar ...", "New password" : "Nytt lösenord", "New Password" : "Nytt lösenord", @@ -293,7 +291,9 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Dela med andra personer genom att ange användarnamn, grupp, ett federerat moln-ID eller en e-postadress.", "Share with other people by entering a user or group or a federated cloud ID." : "Dela med andra personer genom att ange användarnamn, grupp eller ett federerat moln-ID.", "Share with other people by entering a user or group or an email address." : "Dela med andra personer genom att ange användarnamn, grupp eller en e-postadress.", + "Stay logged in" : "Fortsätt vara inloggad.", "Alternative Logins" : "Alternativa inloggningar", + "Alternative login using app token" : "Alternativ inloggning med app-token", "Back to log in" : "Tillbaks till inloggning" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/core/l10n/th.js b/core/l10n/th.js index b2b6ce41a43..7b23752238f 100644 --- a/core/l10n/th.js +++ b/core/l10n/th.js @@ -166,7 +166,6 @@ OC.L10N.register( "Please try again or contact your administrator." : "โปรดลองอีกครั้งหรือติดต่อผู้ดูแลระบบ", "Log in" : "เข้าสู่ระบบ", "Wrong password." : "รหัสผ่านผิดพลาด", - "Stay logged in" : "จดจำฉัน", "New password" : "รหัสผ่านใหม่", "New Password" : "รหัสผ่านใหม่", "Add \"%s\" as trusted domain" : "ได้เพิ่ม \"%s\" เป็นโดเมนที่เชื่อถือ", @@ -182,6 +181,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "หน้านี้จะรีเฟรชตัวเองเมื่อ %s สามารถใช้ได้อีกครั้ง", "Contact your system administrator if this message persists or appeared unexpectedly." : "ติดต่อผู้ดูแลระบบของคุณหากข้อความนี้ยังคงมีอยู่หรือปรากฏโดยไม่คาดคิด", "Thank you for your patience." : "ขอบคุณสำหรับความอดทนของคุณ เราจะนำความคิดเห็นของท่านมาปรับปรุงระบบให้ดียิ่งขึ้น", + "Stay logged in" : "จดจำฉัน", "Alternative Logins" : "ทางเลือกการเข้าสู่ระบบ" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/th.json b/core/l10n/th.json index c99a31472f0..afd1c49f95d 100644 --- a/core/l10n/th.json +++ b/core/l10n/th.json @@ -164,7 +164,6 @@ "Please try again or contact your administrator." : "โปรดลองอีกครั้งหรือติดต่อผู้ดูแลระบบ", "Log in" : "เข้าสู่ระบบ", "Wrong password." : "รหัสผ่านผิดพลาด", - "Stay logged in" : "จดจำฉัน", "New password" : "รหัสผ่านใหม่", "New Password" : "รหัสผ่านใหม่", "Add \"%s\" as trusted domain" : "ได้เพิ่ม \"%s\" เป็นโดเมนที่เชื่อถือ", @@ -180,6 +179,7 @@ "This page will refresh itself when the %s instance is available again." : "หน้านี้จะรีเฟรชตัวเองเมื่อ %s สามารถใช้ได้อีกครั้ง", "Contact your system administrator if this message persists or appeared unexpectedly." : "ติดต่อผู้ดูแลระบบของคุณหากข้อความนี้ยังคงมีอยู่หรือปรากฏโดยไม่คาดคิด", "Thank you for your patience." : "ขอบคุณสำหรับความอดทนของคุณ เราจะนำความคิดเห็นของท่านมาปรับปรุงระบบให้ดียิ่งขึ้น", + "Stay logged in" : "จดจำฉัน", "Alternative Logins" : "ทางเลือกการเข้าสู่ระบบ" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 3eeec4894aa..f64e5755c66 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -275,14 +275,15 @@ OC.L10N.register( "Log in" : "Oturum Aç", "Wrong password." : "Parola yanlış.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "IP adresinizden yapılan birden çok geçersiz oturum açma girişimi algılandı. Bu nedenle oturum açmanız 30 saniye süreyle engellendi.", - "Stay logged in" : "Bağlı kal", "Forgot password?" : "Parolamı unuttum", "Back to login" : "Oturum açmaya geri dön", + "Connect to your account" : "Hesabınızı bağlayın", + "Please log in before granting %s access to your %s account." : "Lütfen %s erişim izni %s vermeden önce oturum açın.", + "App token" : "Uygulama Kodu", + "Grant access" : "Erişim izni ver", + "Alternative log in using app token" : "Uygulama kodu ile alternatif oturum açma", "Account access" : "Hesap erişimi", "You are about to grant %s access to your %s account." : "%s erişim iznini %s hesabınız için vermek üzeresiniz.", - "Grant access" : "Erişim izni ver", - "App token" : "Uygulama Kodu", - "Alternative login using app token" : "Uygulama kodu ile alternatif oturum açma", "Redirecting …" : "Yönlendiriliyor...", "New password" : "Yeni parola", "New Password" : "Yeni Parola", @@ -339,8 +340,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelere</a> bakabilirsiniz.", "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?", + "Stay logged in" : "Bağlı kal", "Alternative Logins" : "Alternatif Oturum Açmalar", "You are about to grant \"%s\" access to your %s account." : "\"%s\" erişim iznini %s hesabınıza vermek üzeresiniz.", + "Alternative login using app token" : "Uygulama kodu ile alternatif oturum açma", "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir etki alanından erişiyorsunuz.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Lütfen yöneticiniz ile görüşün. Bu kopyanın yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapın. Örnek yapılandırma config/config.sample.php dosyasında görülebilir.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu etki alanına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 506e648d3ed..c29f4f1fb5e 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -273,14 +273,15 @@ "Log in" : "Oturum Aç", "Wrong password." : "Parola yanlış.", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "IP adresinizden yapılan birden çok geçersiz oturum açma girişimi algılandı. Bu nedenle oturum açmanız 30 saniye süreyle engellendi.", - "Stay logged in" : "Bağlı kal", "Forgot password?" : "Parolamı unuttum", "Back to login" : "Oturum açmaya geri dön", + "Connect to your account" : "Hesabınızı bağlayın", + "Please log in before granting %s access to your %s account." : "Lütfen %s erişim izni %s vermeden önce oturum açın.", + "App token" : "Uygulama Kodu", + "Grant access" : "Erişim izni ver", + "Alternative log in using app token" : "Uygulama kodu ile alternatif oturum açma", "Account access" : "Hesap erişimi", "You are about to grant %s access to your %s account." : "%s erişim iznini %s hesabınız için vermek üzeresiniz.", - "Grant access" : "Erişim izni ver", - "App token" : "Uygulama Kodu", - "Alternative login using app token" : "Uygulama kodu ile alternatif oturum açma", "Redirecting …" : "Yönlendiriliyor...", "New password" : "Yeni parola", "New Password" : "Yeni Parola", @@ -337,8 +338,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelere</a> bakabilirsiniz.", "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:", "Wrong password. Reset it?" : "Parola yanlış. Sıfırlamak ister misiniz?", + "Stay logged in" : "Bağlı kal", "Alternative Logins" : "Alternatif Oturum Açmalar", "You are about to grant \"%s\" access to your %s account." : "\"%s\" erişim iznini %s hesabınıza vermek üzeresiniz.", + "Alternative login using app token" : "Uygulama kodu ile alternatif oturum açma", "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir etki alanından erişiyorsunuz.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Lütfen yöneticiniz ile görüşün. Bu kopyanın yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapın. Örnek yapılandırma config/config.sample.php dosyasında görülebilir.", "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu etki alanına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.", diff --git a/core/l10n/uk.js b/core/l10n/uk.js index 2d7115aaf58..5fa5e98ca3a 100644 --- a/core/l10n/uk.js +++ b/core/l10n/uk.js @@ -239,11 +239,10 @@ OC.L10N.register( "Username or email" : "Ім’я користувача або електронна пошта", "Log in" : "Увійти", "Wrong password." : "Невірний пароль.", - "Stay logged in" : "Залишатись в системі", "Forgot password?" : "Забули пароль?", - "Account access" : "Доступ до облікового запису", - "Grant access" : "Дозволити доступ", "App token" : "Токен додатку", + "Grant access" : "Дозволити доступ", + "Account access" : "Доступ до облікового запису", "Redirecting …" : "Перенаправлення …", "New password" : "Новий пароль", "New Password" : "Новий пароль", @@ -266,6 +265,7 @@ OC.L10N.register( "This page will refresh itself when the %s instance is available again." : "Ця сторінка автоматично перезавантажиться коли екземпляр %s стане знову доступний.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Зверніться до вашого системного адміністратора якщо це повідомлення не зникає або з'являється несподівано.", "Thank you for your patience." : "Дякуємо за ваше терпіння.", + "Stay logged in" : "Залишатись в системі", "Alternative Logins" : "Альтернативні імена користувача", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Для допомоги, дивіться <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>.", "Back to log in" : "Повернутися до сторінки авторизації" diff --git a/core/l10n/uk.json b/core/l10n/uk.json index f33ce86404c..76345f7da29 100644 --- a/core/l10n/uk.json +++ b/core/l10n/uk.json @@ -237,11 +237,10 @@ "Username or email" : "Ім’я користувача або електронна пошта", "Log in" : "Увійти", "Wrong password." : "Невірний пароль.", - "Stay logged in" : "Залишатись в системі", "Forgot password?" : "Забули пароль?", - "Account access" : "Доступ до облікового запису", - "Grant access" : "Дозволити доступ", "App token" : "Токен додатку", + "Grant access" : "Дозволити доступ", + "Account access" : "Доступ до облікового запису", "Redirecting …" : "Перенаправлення …", "New password" : "Новий пароль", "New Password" : "Новий пароль", @@ -264,6 +263,7 @@ "This page will refresh itself when the %s instance is available again." : "Ця сторінка автоматично перезавантажиться коли екземпляр %s стане знову доступний.", "Contact your system administrator if this message persists or appeared unexpectedly." : "Зверніться до вашого системного адміністратора якщо це повідомлення не зникає або з'являється несподівано.", "Thank you for your patience." : "Дякуємо за ваше терпіння.", + "Stay logged in" : "Залишатись в системі", "Alternative Logins" : "Альтернативні імена користувача", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Для допомоги, дивіться <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>.", "Back to log in" : "Повернутися до сторінки авторизації" diff --git a/core/l10n/uz.js b/core/l10n/uz.js index 03dc3d42abb..de6917e524c 100644 --- a/core/l10n/uz.js +++ b/core/l10n/uz.js @@ -200,9 +200,9 @@ OC.L10N.register( "Username or email" : "Foydalanuvchi nomi yoki elektron pochta", "Log in" : "Kirish", "Wrong password." : "Noto'g'ri parol.", - "Stay logged in" : "Kirishni unutmang", "Account access" : "Hisobga kirish", "Share with other people by entering a user or group or an email address." : "Biror foydalanuvchi yoki guruh yoki elektron pochta manzilini kiritish orqali boshqa odamlar bilan bo'lishing.", + "Stay logged in" : "Kirishni unutmang", "Alternative Logins" : "Shu bilan bir qatorda kirishlar", "Back to log in" : "Kirish uchun qaytib boring" }, diff --git a/core/l10n/uz.json b/core/l10n/uz.json index 910ddb4b8f0..a79d7f2dfb8 100644 --- a/core/l10n/uz.json +++ b/core/l10n/uz.json @@ -198,9 +198,9 @@ "Username or email" : "Foydalanuvchi nomi yoki elektron pochta", "Log in" : "Kirish", "Wrong password." : "Noto'g'ri parol.", - "Stay logged in" : "Kirishni unutmang", "Account access" : "Hisobga kirish", "Share with other people by entering a user or group or an email address." : "Biror foydalanuvchi yoki guruh yoki elektron pochta manzilini kiritish orqali boshqa odamlar bilan bo'lishing.", + "Stay logged in" : "Kirishni unutmang", "Alternative Logins" : "Shu bilan bir qatorda kirishlar", "Back to log in" : "Kirish uchun qaytib boring" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/core/l10n/vi.js b/core/l10n/vi.js index 45d9f4a4470..7ab4edf9b08 100644 --- a/core/l10n/vi.js +++ b/core/l10n/vi.js @@ -250,11 +250,9 @@ OC.L10N.register( "Username or email" : "Tên truy cập hoặc email", "Log in" : "Đăng nhập", "Wrong password." : "Sai mật khẩu.", - "Stay logged in" : "Lưu trạng thái đăng nhập", + "App token" : "Dấu hiệu ứng dụng", "Account access" : "Truy cập tài khoản", "You are about to grant %s access to your %s account." : "Bạn sắp được phép %s truy nhập tới tài khoản %s của bạn.", - "App token" : "Dấu hiệu ứng dụng", - "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token", "Redirecting …" : "Chuyển tiếp ...", "New password" : "Mật khẩu mới", "New Password" : "Mật khẩu mới", @@ -287,6 +285,8 @@ OC.L10N.register( "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, ID đám mây liên kết hoặc địa chỉ email.", "Share with other people by entering a user or group or a federated cloud ID." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, ID đám mây liên kết.", "Share with other people by entering a user or group or an email address." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, hoặc địa chỉ email.", - "Alternative Logins" : "Đăng nhập khác" + "Stay logged in" : "Lưu trạng thái đăng nhập", + "Alternative Logins" : "Đăng nhập khác", + "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/vi.json b/core/l10n/vi.json index a5d4121f98b..d4187d962d7 100644 --- a/core/l10n/vi.json +++ b/core/l10n/vi.json @@ -248,11 +248,9 @@ "Username or email" : "Tên truy cập hoặc email", "Log in" : "Đăng nhập", "Wrong password." : "Sai mật khẩu.", - "Stay logged in" : "Lưu trạng thái đăng nhập", + "App token" : "Dấu hiệu ứng dụng", "Account access" : "Truy cập tài khoản", "You are about to grant %s access to your %s account." : "Bạn sắp được phép %s truy nhập tới tài khoản %s của bạn.", - "App token" : "Dấu hiệu ứng dụng", - "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token", "Redirecting …" : "Chuyển tiếp ...", "New password" : "Mật khẩu mới", "New Password" : "Mật khẩu mới", @@ -285,6 +283,8 @@ "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, ID đám mây liên kết hoặc địa chỉ email.", "Share with other people by entering a user or group or a federated cloud ID." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, ID đám mây liên kết.", "Share with other people by entering a user or group or an email address." : "Chia sẻ với người khác bằng cách nhập tên người dùng hoặc tên nhóm, hoặc địa chỉ email.", - "Alternative Logins" : "Đăng nhập khác" + "Stay logged in" : "Lưu trạng thái đăng nhập", + "Alternative Logins" : "Đăng nhập khác", + "Alternative login using app token" : "Cách thức đăng nhập khác sử dụng app token" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 2af655a1b9b..5a8728cb615 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -261,14 +261,12 @@ OC.L10N.register( "Username or email" : "用户名或邮箱", "Log in" : "登录", "Wrong password." : "密码错误", - "Stay logged in" : "保持登录", "Forgot password?" : "忘记密码?", "Back to login" : "返回登录", + "App token" : "App 令牌", + "Grant access" : "授权访问", "Account access" : "账户访问", "You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。", - "Grant access" : "授权访问", - "App token" : "App 令牌", - "Alternative login using app token" : "使用应用程序令牌替代登录", "Redirecting …" : "正在转向...", "New password" : "新密码", "New Password" : "新密码", @@ -305,8 +303,10 @@ OC.L10N.register( "Share with other people by entering a user or group or an email address." : "输入用户/组织或邮箱地址来分享给其他人", "This action requires you to confirm your password:" : "此操作需要确认您的密码:", "Wrong password. Reset it?" : "密码错误。是否重置?", + "Stay logged in" : "保持登录", "Alternative Logins" : "其他登录方式", "You are about to grant \"%s\" access to your %s account." : "你将分配 \"%s\" 访问权限给你的 %s 账户。", + "Alternative login using app token" : "使用应用程序令牌替代登录", "You are accessing the server from an untrusted domain." : "您正在访问来自不信任域名的服务器.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "请联系您的系统管理员. 如果您是系统管理员, 在 config/config.php 文件中设置 \"trusted_domain\". 可以在 config/config.sample.php 文件中找到例子.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "获取更多帮助, 请查看 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档</a>.", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 151ecde8b8b..bd773d77bee 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -259,14 +259,12 @@ "Username or email" : "用户名或邮箱", "Log in" : "登录", "Wrong password." : "密码错误", - "Stay logged in" : "保持登录", "Forgot password?" : "忘记密码?", "Back to login" : "返回登录", + "App token" : "App 令牌", + "Grant access" : "授权访问", "Account access" : "账户访问", "You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。", - "Grant access" : "授权访问", - "App token" : "App 令牌", - "Alternative login using app token" : "使用应用程序令牌替代登录", "Redirecting …" : "正在转向...", "New password" : "新密码", "New Password" : "新密码", @@ -303,8 +301,10 @@ "Share with other people by entering a user or group or an email address." : "输入用户/组织或邮箱地址来分享给其他人", "This action requires you to confirm your password:" : "此操作需要确认您的密码:", "Wrong password. Reset it?" : "密码错误。是否重置?", + "Stay logged in" : "保持登录", "Alternative Logins" : "其他登录方式", "You are about to grant \"%s\" access to your %s account." : "你将分配 \"%s\" 访问权限给你的 %s 账户。", + "Alternative login using app token" : "使用应用程序令牌替代登录", "You are accessing the server from an untrusted domain." : "您正在访问来自不信任域名的服务器.", "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "请联系您的系统管理员. 如果您是系统管理员, 在 config/config.php 文件中设置 \"trusted_domain\". 可以在 config/config.sample.php 文件中找到例子.", "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "获取更多帮助, 请查看 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">文档</a>.", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index a0d36656e68..82e325b17fb 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -275,14 +275,12 @@ OC.L10N.register( "Log in" : "登入", "Wrong password." : "密碼錯誤", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "您的 IP 多次嘗試登入無效,下一次登入將會被延時30秒。", - "Stay logged in" : "保持登入狀態", "Forgot password?" : "忘記密碼?", "Back to login" : "回到登入畫面", + "App token" : "App token", + "Grant access" : "允許存取", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "您將授予「%s」存取您的 %s 帳戶", - "Grant access" : "允許存取", - "App token" : "App token", - "Alternative login using app token" : "透過應用程式憑證的方式登入", "Redirecting …" : "重新導向…", "New password" : "新密碼", "New Password" : "新密碼", @@ -333,8 +331,10 @@ OC.L10N.register( "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "閱讀<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">說明文件</a>來瞭解如何正確設定您的伺服器", "This action requires you to confirm your password:" : "這個動作需要您再次確認密碼:", "Wrong password. Reset it?" : "密碼錯誤,重設密碼?", + "Stay logged in" : "保持登入狀態", "Alternative Logins" : "其他登入方法", "You are about to grant \"%s\" access to your %s account." : "您將授予「%s」存取您的 %s 帳戶", + "Alternative login using app token" : "透過應用程式憑證的方式登入", "You are accessing the server from an untrusted domain." : "你正在從一個未信任的網域存取伺服器", "Back to log in" : "回到登入頁面" }, diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index fe0f6b784c1..7481dd039fd 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -273,14 +273,12 @@ "Log in" : "登入", "Wrong password." : "密碼錯誤", "We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds." : "您的 IP 多次嘗試登入無效,下一次登入將會被延時30秒。", - "Stay logged in" : "保持登入狀態", "Forgot password?" : "忘記密碼?", "Back to login" : "回到登入畫面", + "App token" : "App token", + "Grant access" : "允許存取", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "您將授予「%s」存取您的 %s 帳戶", - "Grant access" : "允許存取", - "App token" : "App token", - "Alternative login using app token" : "透過應用程式憑證的方式登入", "Redirecting …" : "重新導向…", "New password" : "新密碼", "New Password" : "新密碼", @@ -331,8 +329,10 @@ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "閱讀<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">說明文件</a>來瞭解如何正確設定您的伺服器", "This action requires you to confirm your password:" : "這個動作需要您再次確認密碼:", "Wrong password. Reset it?" : "密碼錯誤,重設密碼?", + "Stay logged in" : "保持登入狀態", "Alternative Logins" : "其他登入方法", "You are about to grant \"%s\" access to your %s account." : "您將授予「%s」存取您的 %s 帳戶", + "Alternative login using app token" : "透過應用程式憑證的方式登入", "You are accessing the server from an untrusted domain." : "你正在從一個未信任的網域存取伺服器", "Back to log in" : "回到登入頁面" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/core/routes.php b/core/routes.php index 1c7be78bc78..cc1bd34d898 100644 --- a/core/routes.php +++ b/core/routes.php @@ -54,6 +54,7 @@ $application->registerRoutes($this, [ ['name' => 'ClientFlowLogin#showAuthPickerPage', 'url' => '/login/flow', 'verb' => 'GET'], ['name' => 'ClientFlowLogin#redirectPage', 'url' => '/login/flow/redirect', 'verb' => 'GET'], ['name' => 'ClientFlowLogin#generateAppPassword', 'url' => '/login/flow', 'verb' => 'POST'], + ['name' => 'ClientFlowLogin#grantPage', 'url' => '/login/flow/grant', 'verb' => 'GET'], ['name' => 'TwoFactorChallenge#selectChallenge', 'url' => '/login/selectchallenge', 'verb' => 'GET'], ['name' => 'TwoFactorChallenge#showChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'GET'], ['name' => 'TwoFactorChallenge#solveChallenge', 'url' => '/login/challenge/{challengeProviderId}', 'verb' => 'POST'], diff --git a/core/templates/layout.public.php b/core/templates/layout.public.php index d3c12f8fd96..2317a7b36ef 100644 --- a/core/templates/layout.public.php +++ b/core/templates/layout.public.php @@ -50,13 +50,13 @@ <div class="header-right"> <span id="header-primary-action" class="<?php if($template->getActionCount() === 1) { p($primary->getIcon()); } ?>"> <a href="<?php p($primary->getLink()); ?>"> - <span class="share-menutoggle-text"><?php p($primary->getLabel()) ?></span> + <span><?php p($primary->getLabel()) ?></span> </a> </span> <?php if($template->getActionCount()>1) { ?> <div id="header-secondary-action"> <span id="header-actions-toggle" class="menutoggle icon-more-white"></span> - <div id="share-menu" class="popovermenu menu"> + <div id="header-actions-menu" class="popovermenu menu"> <ul> <?php /** @var \OCP\AppFramework\Http\Template\IMenuAction $action */ @@ -76,6 +76,11 @@ <div id="content" class="app-<?php p($_['appid']) ?>" role="main"> <?php print_unescaped($_['content']); ?> </div> + <?php if($template->getFooterVisible()) { ?> + <footer> + <p class="info"><?php print_unescaped($theme->getLongFooter()); ?></p> + </footer> + <?php } ?> </div> </body> diff --git a/core/templates/login.php b/core/templates/login.php index 3633400b312..ee1ce6a6870 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -76,16 +76,6 @@ script('core', 'merged-login'); <?php } ?> <div class="login-additional"> - <?php if (!$_['hideRemeberLoginState']) { ?> - <div class="remember-login-container"> - <?php if ($_['rememberLoginState'] === 0) { ?> - <input type="checkbox" name="remember_login" value="1" id="remember_login" class="checkbox checkbox--white"> - <?php } else { ?> - <input type="checkbox" name="remember_login" value="1" id="remember_login" class="checkbox checkbox--white" checked="checked"> - <?php } ?> - <label for="remember_login"><?php p($l->t('Stay logged in')); ?></label> - </div> - <?php } ?> <?php if (!empty($_['canResetPassword'])) { ?> <div class="lost-password-container"> <a id="lost-password" href="<?php p($_['resetPasswordLink']); ?>"> diff --git a/core/templates/loginflow/authpicker.php b/core/templates/loginflow/authpicker.php index 1858f8bcb62..4e2282a1807 100644 --- a/core/templates/loginflow/authpicker.php +++ b/core/templates/loginflow/authpicker.php @@ -28,9 +28,9 @@ $urlGenerator = $_['urlGenerator']; ?> <div class="picker-window"> - <h2><?php p($l->t('Account access')) ?></h2> + <h2><?php p($l->t('Connect to your account')) ?></h2> <p class="info"> - <?php print_unescaped($l->t('You are about to grant %s access to your %s account.', [ + <?php print_unescaped($l->t('Please log in before granting %s access to your %s account.', [ '<strong>' . \OCP\Util::sanitizeHTML($_['client']) . '</strong>', \OCP\Util::sanitizeHTML($_['instanceName']) ])) ?> @@ -39,8 +39,8 @@ $urlGenerator = $_['urlGenerator']; <br/> <p id="redirect-link"> - <a href="<?php p($urlGenerator->linkToRouteAbsolute('core.ClientFlowLogin.redirectPage', ['stateToken' => $_['stateToken'], 'clientIdentifier' => $_['clientIdentifier'], 'oauthState' => $_['oauthState']])) ?>"> - <input type="submit" class="login primary icon-confirm-white" value="<?php p($l->t('Grant access')) ?>"> + <a href="<?php p($urlGenerator->linkToRouteAbsolute('core.ClientFlowLogin.grantPage', ['stateToken' => $_['stateToken'], 'clientIdentifier' => $_['clientIdentifier'], 'oauthState' => $_['oauthState']])) ?>"> + <input type="submit" class="login primary icon-confirm-white" value="<?php p($l->t('Log in')) ?>"> </a> </p> @@ -59,5 +59,5 @@ $urlGenerator = $_['urlGenerator']; </div> <?php if(empty($_['oauthState'])): ?> -<a id="app-token-login" class="warning" href="#"><?php p($l->t('Alternative login using app token')) ?></a> +<a id="app-token-login" class="warning" href="#"><?php p($l->t('Alternative log in using app token')) ?></a> <?php endif; ?> diff --git a/core/templates/loginflow/grant.php b/core/templates/loginflow/grant.php new file mode 100644 index 00000000000..6278e910bdb --- /dev/null +++ b/core/templates/loginflow/grant.php @@ -0,0 +1,46 @@ +<?php +/** + * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +script('core', 'login/authpicker'); +style('core', 'login/authpicker'); + +/** @var array $_ */ +/** @var \OCP\IURLGenerator $urlGenerator */ +$urlGenerator = $_['urlGenerator']; +?> + +<div class="picker-window"> + <h2><?php p($l->t('Account access')) ?></h2> + <p class="info"> + <?php print_unescaped($l->t('You are about to grant %s access to your %s account.', [ + '<strong>' . \OCP\Util::sanitizeHTML($_['client']) . '</strong>', + \OCP\Util::sanitizeHTML($_['instanceName']) + ])) ?> + </p> + + <br/> + + <p id="redirect-link"> + <a href="<?php p($urlGenerator->linkToRouteAbsolute('core.ClientFlowLogin.redirectPage', ['stateToken' => $_['stateToken'], 'clientIdentifier' => $_['clientIdentifier'], 'oauthState' => $_['oauthState']])) ?>"> + <input type="submit" class="login primary icon-confirm-white" value="<?php p($l->t('Grant access')) ?>"> + </a> + </p> +</div> diff --git a/lib/base.php b/lib/base.php index 8af674e7ee8..fa2f5011f16 100644 --- a/lib/base.php +++ b/lib/base.php @@ -525,6 +525,7 @@ class OC { $incompatibleUserAgents = [ // OS X Finder '/^WebDAVFS/', + '/^Microsoft-WebDAV-MiniRedir/', ]; if($request->isUserAgent($incompatibleUserAgents)) { return; diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 320113612d6..167e3033bca 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -40,7 +40,9 @@ return array( 'OCP\\AppFramework\\Http\\Response' => $baseDir . '/lib/public/AppFramework/Http/Response.php', 'OCP\\AppFramework\\Http\\StreamResponse' => $baseDir . '/lib/public/AppFramework/Http/StreamResponse.php', 'OCP\\AppFramework\\Http\\TemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/TemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\ExternalShareMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/ExternalShareMenuAction.php', 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/IMenuAction.php', + 'OCP\\AppFramework\\Http\\Template\\LinkMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/LinkMenuAction.php', 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php', 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php', 'OCP\\AppFramework\\IAppContainer' => $baseDir . '/lib/public/AppFramework/IAppContainer.php', @@ -379,6 +381,7 @@ return array( 'OC\\App\\CodeChecker\\NodeVisitor' => $baseDir . '/lib/private/App/CodeChecker/NodeVisitor.php', 'OC\\App\\CodeChecker\\PrivateCheck' => $baseDir . '/lib/private/App/CodeChecker/PrivateCheck.php', 'OC\\App\\CodeChecker\\StrongComparisonCheck' => $baseDir . '/lib/private/App/CodeChecker/StrongComparisonCheck.php', + 'OC\\App\\CompareVersion' => $baseDir . '/lib/private/App/CompareVersion.php', 'OC\\App\\DependencyAnalyzer' => $baseDir . '/lib/private/App/DependencyAnalyzer.php', 'OC\\App\\InfoParser' => $baseDir . '/lib/private/App/InfoParser.php', 'OC\\App\\Platform' => $baseDir . '/lib/private/App/Platform.php', @@ -545,6 +548,7 @@ return array( 'OC\\Core\\Migrations\\Version13000Date20170919121250' => $baseDir . '/core/Migrations/Version13000Date20170919121250.php', 'OC\\Core\\Migrations\\Version13000Date20170926101637' => $baseDir . '/core/Migrations/Version13000Date20170926101637.php', 'OC\\Core\\Migrations\\Version14000Date20180129121024' => $baseDir . '/core/Migrations/Version14000Date20180129121024.php', + 'OC\\Core\\Migrations\\Version14000Date20180404140050' => $baseDir . '/core/Migrations/Version14000Date20180404140050.php', 'OC\\DB\\Adapter' => $baseDir . '/lib/private/DB/Adapter.php', 'OC\\DB\\AdapterMySQL' => $baseDir . '/lib/private/DB/AdapterMySQL.php', 'OC\\DB\\AdapterOCI8' => $baseDir . '/lib/private/DB/AdapterOCI8.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index ee94cd3ee81..4bf613d1256 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -70,7 +70,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\AppFramework\\Http\\Response' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Response.php', 'OCP\\AppFramework\\Http\\StreamResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/StreamResponse.php', 'OCP\\AppFramework\\Http\\TemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/TemplateResponse.php', + 'OCP\\AppFramework\\Http\\Template\\ExternalShareMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/ExternalShareMenuAction.php', 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/IMenuAction.php', + 'OCP\\AppFramework\\Http\\Template\\LinkMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/LinkMenuAction.php', 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php', 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php', 'OCP\\AppFramework\\IAppContainer' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IAppContainer.php', @@ -409,6 +411,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\App\\CodeChecker\\NodeVisitor' => __DIR__ . '/../../..' . '/lib/private/App/CodeChecker/NodeVisitor.php', 'OC\\App\\CodeChecker\\PrivateCheck' => __DIR__ . '/../../..' . '/lib/private/App/CodeChecker/PrivateCheck.php', 'OC\\App\\CodeChecker\\StrongComparisonCheck' => __DIR__ . '/../../..' . '/lib/private/App/CodeChecker/StrongComparisonCheck.php', + 'OC\\App\\CompareVersion' => __DIR__ . '/../../..' . '/lib/private/App/CompareVersion.php', 'OC\\App\\DependencyAnalyzer' => __DIR__ . '/../../..' . '/lib/private/App/DependencyAnalyzer.php', 'OC\\App\\InfoParser' => __DIR__ . '/../../..' . '/lib/private/App/InfoParser.php', 'OC\\App\\Platform' => __DIR__ . '/../../..' . '/lib/private/App/Platform.php', @@ -575,6 +578,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Core\\Migrations\\Version13000Date20170919121250' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170919121250.php', 'OC\\Core\\Migrations\\Version13000Date20170926101637' => __DIR__ . '/../../..' . '/core/Migrations/Version13000Date20170926101637.php', 'OC\\Core\\Migrations\\Version14000Date20180129121024' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180129121024.php', + 'OC\\Core\\Migrations\\Version14000Date20180404140050' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180404140050.php', 'OC\\DB\\Adapter' => __DIR__ . '/../../..' . '/lib/private/DB/Adapter.php', 'OC\\DB\\AdapterMySQL' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterMySQL.php', 'OC\\DB\\AdapterOCI8' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterOCI8.php', diff --git a/lib/l10n/nb.js b/lib/l10n/nb.js index 284984a1e1c..dff5491c029 100644 --- a/lib/l10n/nb.js +++ b/lib/l10n/nb.js @@ -200,7 +200,7 @@ OC.L10N.register( "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.", "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen", "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen", - "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til apps-mappen eller ved å skru av programbutikken i config-fila. Se %s", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til apps-mappen eller ved å skru av programbutikken i config-filen. Se %s", "Cannot create \"data\" directory" : "Kan ikke opprette \"data\"-mappe", "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til root-mappen. Se %s", "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Tillatelser kan vanligvis ordnes ved å gi vevtjeneren skrivetilgang til rotmappa. Se %s.", diff --git a/lib/l10n/nb.json b/lib/l10n/nb.json index daeb9246ef3..41d8f4bf4f3 100644 --- a/lib/l10n/nb.json +++ b/lib/l10n/nb.json @@ -198,7 +198,7 @@ "No database drivers (sqlite, mysql, or postgresql) installed." : "Ingen databasedrivere (sqlite, mysql, or postgresql) installert.", "Cannot write into \"config\" directory" : "Kan ikke skrive i \"config\"-mappen", "Cannot write into \"apps\" directory" : "Kan ikke skrive i \"apps\"-mappen", - "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til apps-mappen eller ved å skru av programbutikken i config-fila. Se %s", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til apps-mappen eller ved å skru av programbutikken i config-filen. Se %s", "Cannot create \"data\" directory" : "Kan ikke opprette \"data\"-mappe", "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Dette kan vanligvis ordnes ved å gi vev-tjeneren skrivetilgang til root-mappen. Se %s", "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Tillatelser kan vanligvis ordnes ved å gi vevtjeneren skrivetilgang til rotmappa. Se %s.", diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php index a8fd9349343..5203515e09b 100644 --- a/lib/private/App/AppStore/Fetcher/AppFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php @@ -27,24 +27,32 @@ namespace OC\App\AppStore\Fetcher; use OC\App\AppStore\Version\VersionParser; +use OC\App\CompareVersion; use OC\Files\AppData\Factory; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Http\Client\IClientService; use OCP\IConfig; use OCP\ILogger; +use OCP\Util; class AppFetcher extends Fetcher { + + /** @var CompareVersion */ + private $compareVersion; + /** * @param Factory $appDataFactory * @param IClientService $clientService * @param ITimeFactory $timeFactory * @param IConfig $config + * @param CompareVersion $compareVersion * @param ILogger $logger */ public function __construct(Factory $appDataFactory, IClientService $clientService, ITimeFactory $timeFactory, IConfig $config, + CompareVersion $compareVersion, ILogger $logger) { parent::__construct( $appDataFactory, @@ -56,6 +64,7 @@ class AppFetcher extends Fetcher { $this->fileName = 'apps.json'; $this->setEndpoint(); + $this->compareVersion = $compareVersion; } /** @@ -70,8 +79,6 @@ class AppFetcher extends Fetcher { /** @var mixed[] $response */ $response = parent::fetch($ETag, $content); - $ncVersion = $this->getVersion(); - $ncMajorVersion = explode('.', $ncVersion)[0]; foreach($response['data'] as $dataKey => $app) { $releases = []; @@ -81,15 +88,20 @@ class AppFetcher extends Fetcher { if($release['isNightly'] === false && strpos($release['version'], '-') === false) { // Exclude all versions not compatible with the current version - $versionParser = new VersionParser(); - $version = $versionParser->getVersion($release['rawPlatformVersionSpec']); - if ( - // Major version is bigger or equals to the minimum version of the app - version_compare($ncMajorVersion, $version->getMinimumVersion(), '>=') - // Major version is smaller or equals to the maximum version of the app - && version_compare($ncMajorVersion, $version->getMaximumVersion(), '<=') - ) { - $releases[] = $release; + try { + $versionParser = new VersionParser(); + $version = $versionParser->getVersion($release['rawPlatformVersionSpec']); + $ncVersion = $this->getVersion(); + $min = $version->getMinimumVersion(); + $max = $version->getMaximumVersion(); + $minFulfilled = $this->compareVersion->isCompatible($ncVersion, $min, '>='); + $maxFulfilled = $max !== '' && + $this->compareVersion->isCompatible($ncVersion, $max, '<='); + if ($minFulfilled && $maxFulfilled) { + $releases[] = $release; + } + } catch (\InvalidArgumentException $e) { + $this->logger->logException($e, ['app' => 'appstoreFetcher', 'level' => Util::WARN]); } } } @@ -133,7 +145,7 @@ class AppFetcher extends Fetcher { /** * @param string $version - * @param string $filename + * @param string $fileName */ public function setVersion(string $version, string $fileName = 'apps.json') { parent::setVersion($version); diff --git a/lib/private/App/CompareVersion.php b/lib/private/App/CompareVersion.php new file mode 100644 index 00000000000..ee25a8b9460 --- /dev/null +++ b/lib/private/App/CompareVersion.php @@ -0,0 +1,97 @@ +<?php + +/** + * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author 2018 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\App; + +use InvalidArgumentException; + +class CompareVersion { + + const REGEX_MAJOR = '/^\d+$/'; + const REGEX_MAJOR_MINOR = '/^\d+.\d+$/'; + const REGEX_MAJOR_MINOR_PATCH = '/^\d+.\d+.\d+$/'; + const REGEX_SERVER = '/^\d+.\d+.\d+(.\d+)?$/'; + + /** + * Checks if the given server version fulfills the given (app) version requirements. + * + * Version requirements can be 'major.minor.patch', 'major.minor' or just 'major', + * so '13.0.1', '13.0' and '13' are valid. + * + * @param string $actual version as major.minor.patch notation + * @param string $required version where major is requried and minor and patch are optional + * @param string $comparator passed to `version_compare` + * @return bool whether the requirement is fulfilled + * @throws InvalidArgumentException if versions specified in an invalid format + */ + public function isCompatible(string $actual, string $required, + string $comparator = '>='): bool { + + if (!preg_match(self::REGEX_SERVER, $actual)) { + throw new InvalidArgumentException('server version is invalid'); + } + + if (preg_match(self::REGEX_MAJOR, $required) === 1) { + return $this->compareMajor($actual, $required, $comparator); + } else if (preg_match(self::REGEX_MAJOR_MINOR, $required) === 1) { + return $this->compareMajorMinor($actual, $required, $comparator); + } else if (preg_match(self::REGEX_MAJOR_MINOR_PATCH, $required) === 1) { + return $this->compareMajorMinorPatch($actual, $required, $comparator); + } else { + throw new InvalidArgumentException('required version is invalid'); + } + } + + private function compareMajor(string $actual, string $required, + string $comparator) { + $actualMajor = explode('.', $actual)[0]; + $requiredMajor = explode('.', $required)[0]; + + return version_compare($actualMajor, $requiredMajor, $comparator); + } + + private function compareMajorMinor(string $actual, string $required, + string $comparator) { + $actualMajor = explode('.', $actual)[0]; + $actualMinor = explode('.', $actual)[1]; + $requiredMajor = explode('.', $required)[0]; + $requiredMinor = explode('.', $required)[1]; + + return version_compare("$actualMajor.$actualMinor", + "$requiredMajor.$requiredMinor", $comparator); + } + + private function compareMajorMinorPatch($actual, $required, $comparator) { + $actualMajor = explode('.', $actual)[0]; + $actualMinor = explode('.', $actual)[1]; + $actualPatch = explode('.', $actual)[2]; + $requiredMajor = explode('.', $required)[0]; + $requiredMinor = explode('.', $required)[1]; + $requiredPatch = explode('.', $required)[2]; + + return version_compare("$actualMajor.$actualMinor.$actualPatch", + "$requiredMajor.$requiredMinor.$requiredPatch", $comparator); + } + +} diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index 188012b7c1f..2556180173a 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -103,18 +103,20 @@ trait S3ConnectionTrait { } if (!$this->connection->doesBucketExist($this->bucket)) { + $logger = \OC::$server->getLogger(); try { + $logger->info('Bucket "' . $this->bucket . '" does not exist - creating it.', ['app' => 'objectstore']); $this->connection->createBucket(array( 'Bucket' => $this->bucket )); $this->testTimeout(); } catch (S3Exception $e) { - \OC::$server->getLogger()->logException($e, [ + $logger->logException($e, [ 'message' => 'Invalid remote storage.', 'level' => \OCP\Util::DEBUG, - 'app' => 'files_external', + 'app' => 'objectstore', ]); - throw new \Exception('Creation of bucket failed. ' . $e->getMessage()); + throw new \Exception('Creation of bucket "' . $this->bucket . '" failed. ' . $e->getMessage()); } } diff --git a/lib/private/Log.php b/lib/private/Log.php index e47f68807d3..85e439359fa 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -37,6 +37,7 @@ namespace OC; use InterfaSys\LogNormalizer\Normalizer; +use OC\Log\File; use OCP\ILogger; use OCP\Support\CrashReport\IRegistry; use OCP\Util; @@ -50,7 +51,6 @@ use OCP\Util; * * MonoLog is an example implementing this interface. */ - class Log implements ILogger { /** @var string */ @@ -78,7 +78,7 @@ class Log implements ILogger { 'updatePrivateKeyPassword', 'validateUserPass', 'loginWithToken', - '\{closure\}', + '{closure}', // TokenProvider 'getToken', @@ -120,14 +120,14 @@ class Log implements ILogger { */ public function __construct($logger = null, SystemConfig $config = null, $normalizer = null, IRegistry $registry = null) { // FIXME: Add this for backwards compatibility, should be fixed at some point probably - if($config === null) { + if ($config === null) { $config = \OC::$server->getSystemConfig(); } $this->config = $config; // FIXME: Add this for backwards compatibility, should be fixed at some point probably - if($logger === null) { + if ($logger === null) { $logType = $this->config->getValue('log_type', 'file'); $this->logger = static::getLogClass($logType); call_user_func([$this->logger, 'init']); @@ -251,61 +251,50 @@ class Log implements ILogger { * @return void */ public function log(int $level, string $message, array $context = []) { - $minLevel = min($this->config->getValue('loglevel', Util::WARN), Util::FATAL); - $logCondition = $this->config->getValue('log.condition', []); + $minLevel = $this->getLogLevel($context); array_walk($context, [$this->normalizer, 'format']); - if (isset($context['app'])) { - $app = $context['app']; + $app = $context['app'] ?? 'no app in context'; - /** - * check log condition based on the context of each log message - * once this is met -> change the required log level to debug - */ - if(!empty($logCondition) - && isset($logCondition['apps']) - && in_array($app, $logCondition['apps'], true)) { - $minLevel = Util::DEBUG; - } - - } else { - $app = 'no app in context'; - } // interpolate $message as defined in PSR-3 $replace = []; foreach ($context as $key => $val) { $replace['{' . $key . '}'] = $val; } - - // interpolate replacement values into the message and return $message = strtr($message, $replace); + if ($level >= $minLevel) { + $this->writeLog($app, $message, $level); + } + } + + private function getLogLevel($context) { /** * check for a special log condition - this enables an increased log on * a per request/user base */ - if($this->logConditionSatisfied === null) { + if ($this->logConditionSatisfied === null) { // default to false to just process this once per request $this->logConditionSatisfied = false; - if(!empty($logCondition)) { + if (!empty($logCondition)) { // check for secret token in the request - if(isset($logCondition['shared_secret'])) { + if (isset($logCondition['shared_secret'])) { $request = \OC::$server->getRequest(); // if token is found in the request change set the log condition to satisfied - if($request && hash_equals($logCondition['shared_secret'], $request->getParam('log_secret', ''))) { + if ($request && hash_equals($logCondition['shared_secret'], $request->getParam('log_secret', ''))) { $this->logConditionSatisfied = true; } } // check for user - if(isset($logCondition['users'])) { + if (isset($logCondition['users'])) { $user = \OC::$server->getUserSession()->getUser(); // if the user matches set the log condition to satisfied - if($user !== null && in_array($user->getUID(), $logCondition['users'], true)) { + if ($user !== null && in_array($user->getUID(), $logCondition['users'], true)) { $this->logConditionSatisfied = true; } } @@ -313,45 +302,104 @@ class Log implements ILogger { } // if log condition is satisfied change the required log level to DEBUG - if($this->logConditionSatisfied) { - $minLevel = Util::DEBUG; + if ($this->logConditionSatisfied) { + return Util::DEBUG; } - if ($level >= $minLevel) { - $logger = $this->logger; - call_user_func([$logger, 'write'], $app, $message, $level); + if (isset($context['app'])) { + $logCondition = $this->config->getValue('log.condition', []); + $app = $context['app']; + + /** + * check log condition based on the context of each log message + * once this is met -> change the required log level to debug + */ + if (!empty($logCondition) + && isset($logCondition['apps']) + && in_array($app, $logCondition['apps'], true)) { + return Util::DEBUG; + } } + + return min($this->config->getValue('loglevel', Util::WARN), Util::FATAL); } - /** - * Logs an exception very detailed - * - * @param \Exception|\Throwable $exception - * @param array $context - * @return void - * @since 8.2.0 - */ - public function logException(\Throwable $exception, array $context = []) { - $level = Util::ERROR; - if (isset($context['level'])) { - $level = $context['level']; - unset($context['level']); + private function filterTrace(array $trace) { + $sensitiveValues = []; + $trace = array_map(function (array $traceLine) use (&$sensitiveValues) { + foreach ($this->methodsWithSensitiveParameters as $sensitiveMethod) { + if (strpos($traceLine['function'], $sensitiveMethod) !== false) { + $sensitiveValues = array_merge($sensitiveValues, $traceLine['args']); + $traceLine['args'] = ['*** sensitive parameters replaced ***']; + return $traceLine; + } + } + return $traceLine; + }, $trace); + return array_map(function (array $traceLine) use ($sensitiveValues) { + $traceLine['args'] = $this->removeValuesFromArgs($traceLine['args'], $sensitiveValues); + return $traceLine; + }, $trace); + } + + private function removeValuesFromArgs($args, $values) { + foreach($args as &$arg) { + if (in_array($arg, $values, true)) { + $arg = '*** sensitive parameter replaced ***'; + } else if (is_array($arg)) { + $arg = $this->removeValuesFromArgs($arg, $values); + } } + return $args; + } + + private function serializeException(\Throwable $exception) { $data = [ 'Exception' => get_class($exception), 'Message' => $exception->getMessage(), 'Code' => $exception->getCode(), - 'Trace' => $exception->getTraceAsString(), + 'Trace' => $this->filterTrace($exception->getTrace()), 'File' => $exception->getFile(), 'Line' => $exception->getLine(), ]; - $data['Trace'] = preg_replace('!(' . implode('|', $this->methodsWithSensitiveParameters) . ')\(.*\)!', '$1(*** sensitive parameters replaced ***)', $data['Trace']); + if ($exception instanceof HintException) { $data['Hint'] = $exception->getHint(); } - $msg = isset($context['message']) ? $context['message'] : 'Exception'; - $msg .= ': ' . json_encode($data); - $this->log($level, $msg, $context); + + if ($exception->getPrevious()) { + $data['Previous'] = $this->serializeException($exception->getPrevious()); + } + + return $data; + } + + /** + * Logs an exception very detailed + * + * @param \Exception|\Throwable $exception + * @param array $context + * @return void + * @since 8.2.0 + */ + public function logException(\Throwable $exception, array $context = []) { + $app = $context['app'] ?? 'no app in context'; + $level = $context['level'] ?? Util::ERROR; + + $data = $this->serializeException($exception); + $data['CustomMessage'] = $context['message'] ?? '--'; + + $minLevel = $this->getLogLevel($context); + + array_walk($context, [$this->normalizer, 'format']); + + if ($level >= $minLevel) { + if ($this->logger !== File::class) { + $data = json_encode($data, JSON_PARTIAL_OUTPUT_ON_ERROR); + } + $this->writeLog($app, $data, $level); + } + $context['level'] = $level; if (!is_null($this->crashReporters)) { $this->crashReporters->delegateReport($exception, $context); @@ -359,6 +407,15 @@ class Log implements ILogger { } /** + * @param string $app + * @param string|array $entry + * @param int $level + */ + protected function writeLog(string $app, $entry, int $level) { + call_user_func([$this->logger, 'write'], $app, $entry, $level); + } + + /** * @param string $logType * @return string * @internal diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php index ba5027251d7..2d7e4b6c14f 100644 --- a/lib/private/Log/File.php +++ b/lib/private/Log/File.php @@ -72,7 +72,7 @@ class File { /** * write a message in the log * @param string $app - * @param string $message + * @param string|array $message * @param int $level */ public static function write($app, $message, $level) { diff --git a/lib/private/Log/Rotate.php b/lib/private/Log/Rotate.php index d7c554374fd..97a772b5251 100644 --- a/lib/private/Log/Rotate.php +++ b/lib/private/Log/Rotate.php @@ -36,7 +36,7 @@ class Rotate extends \OC\BackgroundJob\Job { public function run($dummy) { $systemConfig = \OC::$server->getSystemConfig(); $logFile = $systemConfig->getValue('logfile', $systemConfig->getValue('datadirectory', \OC::$SERVERROOT . '/data') . '/nextcloud.log'); - $this->max_log_size = \OC::$server->getConfig()->getSystemValue('log_rotate_size', false); + $this->max_log_size = \OC::$server->getConfig()->getSystemValue('log_rotate_size', 100 * 1024 * 1024); if ($this->max_log_size) { $filesize = @filesize($logFile); if ($filesize >= $this->max_log_size) { diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index 5a054d2efd2..d55546769ee 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -205,7 +205,7 @@ class Mailer implements IMailer { * @return string Converted mail address if `idn_to_ascii` exists */ protected function convertEmail(string $email): string { - if (!function_exists('idn_to_ascii') || strpos($email, '@') === false) { + if (!function_exists('idn_to_ascii') || !defined('INTL_IDNA_VARIANT_UTS46') || strpos($email, '@') === false) { return $email; } diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index 622c18a9116..7c7ecae8578 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -66,7 +66,7 @@ class Message implements IMessage { * @return array Converted addresses if `idn_to_ascii` exists */ protected function convertAddresses(array $addresses): array { - if (!function_exists('idn_to_ascii')) { + if (!function_exists('idn_to_ascii') || !defined('INTL_IDNA_VARIANT_UTS46')) { return $addresses; } diff --git a/lib/private/Security/Hasher.php b/lib/private/Security/Hasher.php index c6c9109b336..e20de729f4f 100644 --- a/lib/private/Security/Hasher.php +++ b/lib/private/Security/Hasher.php @@ -51,11 +51,9 @@ class Hasher implements IHasher { /** @var IConfig */ private $config; /** @var array Options passed to password_hash and password_needs_rehash */ - private $options = array(); + private $options = []; /** @var string Salt used for legacy passwords */ private $legacySalt = null; - /** @var int Current version of the generated hash */ - private $currentVersion = 1; /** * @param IConfig $config @@ -78,7 +76,11 @@ class Hasher implements IHasher { * @return string Hash of the message with appended version parameter */ public function hash(string $message): string { - return $this->currentVersion . '|' . password_hash($message, PASSWORD_DEFAULT, $this->options); + if (\defined('PASSWORD_ARGON2I')) { + return 2 . '|' . password_hash($message, PASSWORD_ARGON2I, $this->options); + } else { + return 1 . '|' . password_hash($message, PASSWORD_BCRYPT, $this->options); + } } /** @@ -90,7 +92,7 @@ class Hasher implements IHasher { $explodedString = explode('|', $prefixedHash, 2); if(\count($explodedString) === 2) { if((int)$explodedString[0] > 0) { - return array('version' => (int)$explodedString[0], 'hash' => $explodedString[1]); + return ['version' => (int)$explodedString[0], 'hash' => $explodedString[1]]; } } @@ -111,8 +113,8 @@ class Hasher implements IHasher { // Verify whether it matches a legacy PHPass or SHA1 string $hashLength = \strlen($hash); - if($hashLength === 60 && password_verify($message.$this->legacySalt, $hash) || - $hashLength === 40 && hash_equals($hash, sha1($message))) { + if(($hashLength === 60 && password_verify($message.$this->legacySalt, $hash)) || + ($hashLength === 40 && hash_equals($hash, sha1($message)))) { $newHash = $this->hash($message); return true; } @@ -121,7 +123,7 @@ class Hasher implements IHasher { } /** - * Verify V1 hashes + * Verify V1 (blowfish) hashes * @param string $message Message to verify * @param string $hash Assumed hash of the message * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one. @@ -129,7 +131,30 @@ class Hasher implements IHasher { */ protected function verifyHashV1(string $message, string $hash, &$newHash = null): bool { if(password_verify($message, $hash)) { - if(password_needs_rehash($hash, PASSWORD_DEFAULT, $this->options)) { + $algo = PASSWORD_BCRYPT; + if (\defined('PASSWORD_ARGON2I')) { + $algo = PASSWORD_ARGON2I; + } + + if(password_needs_rehash($hash, $algo, $this->options)) { + $newHash = $this->hash($message); + } + return true; + } + + return false; + } + + /** + * Verify V2 (argon2i) hashes + * @param string $message Message to verify + * @param string $hash Assumed hash of the message + * @param null|string &$newHash Reference will contain the updated hash if necessary. Update the existing hash with this one. + * @return bool Whether $hash is a valid hash of $message + */ + protected function verifyHashV2(string $message, string $hash, &$newHash = null) : bool { + if(password_verify($message, $hash)) { + if(password_needs_rehash($hash, PASSWORD_ARGON2I, $this->options)) { $newHash = $this->hash($message); } return true; @@ -149,6 +174,8 @@ class Hasher implements IHasher { if(isset($splittedHash['version'])) { switch ($splittedHash['version']) { + case 2: + return $this->verifyHashV2($message, $splittedHash['hash'], $newHash); case 1: return $this->verifyHashV1($message, $splittedHash['hash'], $newHash); } diff --git a/lib/private/Streamer.php b/lib/private/Streamer.php index 7b178fda652..51c2c923c23 100644 --- a/lib/private/Streamer.php +++ b/lib/private/Streamer.php @@ -24,6 +24,7 @@ namespace OC; +use OCP\IRequest; use ownCloud\TarStreamer\TarStreamer; use ZipStreamer\ZipStreamer; @@ -33,12 +34,42 @@ class Streamer { // streamer instance private $streamerInstance; - - public function __construct(){ - /** @var \OCP\IRequest */ - $request = \OC::$server->getRequest(); - - if ($request->isUserAgent($this->preferTarFor)) { + + /** + * Streamer constructor. + * + * @param IRequest $request + * @param int $size The size of the files in bytes + * @param int $numberOfFiles The number of files (and directories) that will + * be included in the streamed file + */ + public function __construct(IRequest $request, int $size, int $numberOfFiles){ + + /** + * zip32 constraints for a basic (without compression, volumes nor + * encryption) zip file according to the Zip specification: + * - No file size is larger than 4 bytes (file size < 4294967296); see + * 4.4.9 uncompressed size + * - The size of all files plus their local headers is not larger than + * 4 bytes; see 4.4.16 relative offset of local header and 4.4.24 + * offset of start of central directory with respect to the starting + * disk number + * - The total number of entries (files and directories) in the zip file + * is not larger than 2 bytes (number of entries < 65536); see 4.4.22 + * total number of entries in the central dir + * - The size of the central directory is not larger than 4 bytes; see + * 4.4.23 size of the central directory + * + * Due to all that, zip32 is used if the size is below 4GB and there are + * less than 65536 files; the margin between 4*1000^3 and 4*1024^3 + * should give enough room for the extra zip metadata. Technically, it + * would still be possible to create an invalid zip32 file (for example, + * a zip file from files smaller than 4GB with a central directory + * larger than 4GiB), but it should not happen in the real world. + */ + if ($size < 4 * 1000 * 1000 * 1000 && $numberOfFiles < 65536) { + $this->streamerInstance = new ZipStreamer(['zip64' => false]); + } else if ($request->isUserAgent($this->preferTarFor)) { $this->streamerInstance = new TarStreamer(); } else { $this->streamerInstance = new ZipStreamer(['zip64' => PHP_INT_SIZE !== 4]); diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index d92390cdc96..bb6905b2695 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -58,6 +58,7 @@ declare(strict_types=1); namespace OC\User; use OC\Cache\CappedMemoryCache; +use OCP\IDBConnection; use OCP\User\Backend\ABackend; use OCP\User\Backend\ICheckPasswordBackend; use OCP\User\Backend\ICountUsersBackend; @@ -87,6 +88,9 @@ class Database extends ABackend /** @var EventDispatcher */ private $eventDispatcher; + /** @var IDBConnection */ + private $dbConn; + /** * \OC\User\Database constructor. * @@ -98,6 +102,15 @@ class Database extends ABackend } /** + * FIXME: This function should not be required! + */ + private function fixDI() { + if ($this->dbConn === null) { + $this->dbConn = \OC::$server->getDatabaseConnection(); + } + } + + /** * Create a new user * * @param string $uid The username of the user to create @@ -108,15 +121,21 @@ class Database extends ABackend * itself, not in its subclasses. */ public function createUser(string $uid, string $password): bool { + $this->fixDI(); + if (!$this->userExists($uid)) { $event = new GenericEvent($password); $this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*users` ( `uid`, `password` ) VALUES( ?, ? )'); - try { - $result = $query->execute([$uid, \OC::$server->getHasher()->hash($password)]); - } catch (\Exception $e) { - $result = false; - } + + $qb = $this->dbConn->getQueryBuilder(); + $qb->insert('users') + ->values([ + 'uid' => $qb->createNamedParameter($uid), + 'password' => $qb->createNamedParameter(\OC::$server->getHasher()->hash($password)), + 'uid_lower' => $qb->createNamedParameter(mb_strtolower($uid)), + ]); + + $result = $qb->execute(); // Clear cache unset($this->cache[$uid]); @@ -136,6 +155,8 @@ class Database extends ABackend * Deletes a user */ public function deleteUser($uid) { + $this->fixDI(); + // Delete user-group-relation $query = \OC_DB::prepare('DELETE FROM `*PREFIX*users` WHERE `uid` = ?'); $result = $query->execute([$uid]); @@ -157,6 +178,8 @@ class Database extends ABackend * Change the password of a user */ public function setPassword(string $uid, string $password): bool { + $this->fixDI(); + if ($this->userExists($uid)) { $event = new GenericEvent($password); $this->eventDispatcher->dispatch('OCP\PasswordPolicy::validate', $event); @@ -179,6 +202,8 @@ class Database extends ABackend * Change the display name of a user */ public function setDisplayName(string $uid, string $displayName): bool { + $this->fixDI(); + if ($this->userExists($uid)) { $query = \OC_DB::prepare('UPDATE `*PREFIX*users` SET `displayname` = ? WHERE LOWER(`uid`) = LOWER(?)'); $query->execute([$displayName, $uid]); @@ -210,9 +235,9 @@ class Database extends ABackend * @return array an array of all displayNames (value) and the corresponding uids (key) */ public function getDisplayNames($search = '', $limit = null, $offset = null) { - $connection = \OC::$server->getDatabaseConnection(); + $this->fixDI(); - $query = $connection->getQueryBuilder(); + $query = $this->dbConn->getQueryBuilder(); $query->select('uid', 'displayname') ->from('users', 'u') @@ -222,9 +247,9 @@ class Database extends ABackend $query->expr()->eq('configkey', $query->expr()->literal('email'))) ) // sqlite doesn't like re-using a single named parameter here - ->where($query->expr()->iLike('uid', $query->createPositionalParameter('%' . $connection->escapeLikeParameter($search) . '%'))) - ->orWhere($query->expr()->iLike('displayname', $query->createPositionalParameter('%' . $connection->escapeLikeParameter($search) . '%'))) - ->orWhere($query->expr()->iLike('configvalue', $query->createPositionalParameter('%' . $connection->escapeLikeParameter($search) . '%'))) + ->where($query->expr()->iLike('uid', $query->createPositionalParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%'))) + ->orWhere($query->expr()->iLike('displayname', $query->createPositionalParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%'))) + ->orWhere($query->expr()->iLike('configvalue', $query->createPositionalParameter('%' . $this->dbConn->escapeLikeParameter($search) . '%'))) ->orderBy($query->func()->lower('displayname'), 'ASC') ->orderBy($query->func()->lower('uid'), 'ASC') ->setMaxResults($limit) @@ -250,10 +275,20 @@ class Database extends ABackend * returns the user id or false */ public function checkPassword(string $uid, string $password) { - $query = \OC_DB::prepare('SELECT `uid`, `password` FROM `*PREFIX*users` WHERE LOWER(`uid`) = LOWER(?)'); - $result = $query->execute([$uid]); + $this->fixDI(); + + $qb = $this->dbConn->getQueryBuilder(); + $qb->select('uid', 'password') + ->from('users') + ->where( + $qb->expr()->eq( + 'uid_lower', $qb->createNamedParameter(mb_strtolower($uid)) + ) + ); + $result = $qb->execute(); + $row = $result->fetch(); + $result->closeCursor(); - $row = $result->fetchRow(); if ($row) { $storedHash = $row['password']; $newHash = ''; @@ -276,6 +311,8 @@ class Database extends ABackend * @return boolean true if user was found, false otherwise */ private function loadUser($uid) { + $this->fixDI(); + $uid = (string)$uid; if (!isset($this->cache[$uid])) { //guests $uid could be NULL or '' @@ -284,23 +321,25 @@ class Database extends ABackend return true; } - $query = \OC_DB::prepare('SELECT `uid`, `displayname` FROM `*PREFIX*users` WHERE LOWER(`uid`) = LOWER(?)'); - $result = $query->execute([$uid]); - - if ($result === false) { - Util::writeLog('core', \OC_DB::getErrorMessage(), Util::ERROR); - return false; - } + $qb = $this->dbConn->getQueryBuilder(); + $qb->select('uid', 'displayname') + ->from('users') + ->where( + $qb->expr()->eq( + 'uid_lower', $qb->createNamedParameter(mb_strtolower($uid)) + ) + ); + $result = $qb->execute(); + $row = $result->fetch(); + $result->closeCursor(); $this->cache[$uid] = false; // "uid" is primary key, so there can only be a single result - if ($row = $result->fetchRow()) { + if ($row !== false) { $this->cache[$uid]['uid'] = $row['uid']; $this->cache[$uid]['displayname'] = $row['displayname']; - $result->closeCursor(); } else { - $result->closeCursor(); return false; } } @@ -361,6 +400,8 @@ class Database extends ABackend * @return int|bool */ public function countUsers() { + $this->fixDI(); + $query = \OC_DB::prepare('SELECT COUNT(*) FROM `*PREFIX*users`'); $result = $query->execute(); if ($result === false) { diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php index abc7a45e6bc..b5054bd1851 100644 --- a/lib/private/User/Manager.php +++ b/lib/private/User/Manager.php @@ -50,6 +50,9 @@ use OCP\UserInterface; * - preCreateUser(string $uid, string $password) * - postCreateUser(\OC\User\User $user, string $password) * - change(\OC\User\User $user) + * - assignedUserId(string $uid) + * - preUnassignedUserId(string $uid) + * - postUnassignedUserId(string $uid) * * @package OC\User */ diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index 4ac8888cee1..5d8455fb5f7 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -72,6 +72,9 @@ use Symfony\Component\EventDispatcher\GenericEvent; * - postDelete(\OC\User\User $user) * - preCreateUser(string $uid, string $password) * - postCreateUser(\OC\User\User $user) + * - assignedUserId(string $uid) + * - preUnassignedUserId(string $uid) + * - postUnassignedUserId(string $uid) * - preLogin(string $user, string $password) * - postLogin(\OC\User\User $user, string $password) * - preRememberedLogin(string $uid) diff --git a/lib/private/User/User.php b/lib/private/User/User.php index 56c489181de..e171a65f8ce 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -349,13 +349,12 @@ class User implements IUser { * * @param bool $enabled */ - public function setEnabled($enabled) { + public function setEnabled(bool $enabled = true) { $oldStatus = $this->isEnabled(); $this->enabled = $enabled; - $enabled = $enabled ? 'true' : 'false'; if ($oldStatus !== $this->enabled) { $this->triggerChange('enabled', $enabled); - $this->config->setUserValue($this->uid, 'core', 'enabled', $enabled); + $this->config->setUserValue($this->uid, 'core', 'enabled', $enabled ? 'true' : 'false'); } } diff --git a/lib/private/legacy/files.php b/lib/private/legacy/files.php index def9f82fab9..9281c1f7da4 100644 --- a/lib/private/legacy/files.php +++ b/lib/private/legacy/files.php @@ -144,17 +144,34 @@ class OC_Files { } } - $streamer = new Streamer(); - OC_Util::obEnd(); - self::lockFiles($view, $dir, $files); + /* Calculate filesize and number of files */ + if ($getType === self::ZIP_FILES) { + $fileInfos = array(); + $fileSize = 0; + foreach ($files as $file) { + $fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $file); + $fileSize += $fileInfo->getSize(); + $fileInfos[] = $fileInfo; + } + $numberOfFiles = self::getNumberOfFiles($fileInfos); + } elseif ($getType === self::ZIP_DIR) { + $fileInfo = \OC\Files\Filesystem::getFileInfo($dir . '/' . $files); + $fileSize = $fileInfo->getSize(); + $numberOfFiles = self::getNumberOfFiles(array($fileInfo)); + } + + $streamer = new Streamer(\OC::$server->getRequest(), $fileSize, $numberOfFiles); + OC_Util::obEnd(); + $streamer->sendHeaders($name); $executionTime = (int)OC::$server->getIniWrapper()->getNumeric('max_execution_time'); if (strpos(@ini_get('disable_functions'), 'set_time_limit') === false) { @set_time_limit(0); } ignore_user_abort(true); + if ($getType === self::ZIP_FILES) { foreach ($files as $file) { $file = $dir . '/' . $file; @@ -314,6 +331,29 @@ class OC_Files { } /** + * Returns the total (recursive) number of files and folders in the given + * FileInfos. + * + * @param \OCP\Files\FileInfo[] $fileInfos the FileInfos to count + * @return int the total number of files and folders + */ + private static function getNumberOfFiles($fileInfos) { + $numberOfFiles = 0; + + $view = new View(); + + while ($fileInfo = array_pop($fileInfos)) { + $numberOfFiles++; + + if ($fileInfo->getType() === \OCP\Files\FileInfo::TYPE_FOLDER) { + $fileInfos = array_merge($fileInfos, $view->getDirectoryContent($fileInfo->getPath())); + } + } + + return $numberOfFiles; + } + + /** * @param View $view * @param string $dir * @param string[]|string $files diff --git a/apps/files_sharing/lib/Template/ExternalShareMenuAction.php b/lib/public/AppFramework/Http/Template/ExternalShareMenuAction.php index e30a77cb2e6..4d455a9a755 100644 --- a/apps/files_sharing/lib/Template/ExternalShareMenuAction.php +++ b/lib/public/AppFramework/Http/Template/ExternalShareMenuAction.php @@ -6,26 +6,31 @@ * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program 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. + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ -namespace OCA\Files_Sharing\Template; +namespace OCP\AppFramework\Http\Template; use OCP\AppFramework\Http\Template\SimpleMenuAction; use OCP\Util; - +/** + * Class LinkMenuAction + * + * @package OCP\AppFramework\Http\Template + * @since 14.0.0 + */ class ExternalShareMenuAction extends SimpleMenuAction { /** @var string */ @@ -45,6 +50,7 @@ class ExternalShareMenuAction extends SimpleMenuAction { * @param string $owner * @param string $displayname * @param string $shareName + * @since 14.0.0 */ public function __construct(string $label, string $icon, string $owner, string $displayname, string $shareName) { parent::__construct('save', $label, $icon); @@ -53,20 +59,19 @@ class ExternalShareMenuAction extends SimpleMenuAction { $this->shareName = $shareName; } + /** + * @since 14.0.0 + */ public function render(): string { return '<li>' . - '<a id="save" data-protected="false" data-owner-display-name="' . Util::sanitizeHTML($this->displayname) . '" data-owner="' . Util::sanitizeHTML($this->owner) . '" data-name="' . Util::sanitizeHTML($this->shareName) . '">' . + '<a id="save-external-share" data-protected="false" data-owner-display-name="' . Util::sanitizeHTML($this->displayname) . '" data-owner="' . Util::sanitizeHTML($this->owner) . '" data-name="' . Util::sanitizeHTML($this->shareName) . '">' . '<span class="icon ' . Util::sanitizeHTML($this->getIcon()) . '"></span>' . '<label for="remote_address">' . Util::sanitizeHTML($this->getLabel()) . '</label>' . - '</a>' . - '</li>' . - '<li>' . - '<span class="menuitem">' . - '<form class="save-form" action="#">' . + '<form class="save-form hidden" action="#">' . '<input type="text" id="remote_address" placeholder="user@yourNextcloud.org">' . '<input type="submit" value=" " id="save-button-confirm" class="icon-confirm" disabled="disabled"></button>' . '</form>' . - '</span>' . + '</a>' . '</li>'; } } diff --git a/apps/files_sharing/lib/Template/LinkMenuAction.php b/lib/public/AppFramework/Http/Template/LinkMenuAction.php index 519bc553228..c2b432f7d2a 100644 --- a/apps/files_sharing/lib/Template/LinkMenuAction.php +++ b/lib/public/AppFramework/Http/Template/LinkMenuAction.php @@ -21,11 +21,17 @@ * */ -namespace OCA\Files_Sharing\Template; +namespace OCP\AppFramework\Http\Template; use OCP\AppFramework\Http\Template\SimpleMenuAction; use OCP\Util; +/** + * Class LinkMenuAction + * + * @package OCP\AppFramework\Http\Template + * @since 14.0.0 + */ class LinkMenuAction extends SimpleMenuAction { /** @@ -34,6 +40,7 @@ class LinkMenuAction extends SimpleMenuAction { * @param string $label * @param string $icon * @param string $link + * @since 14.0.0 */ public function __construct(string $label, string $icon, string $link) { parent::__construct('directLink-container', $label, $icon, $link); @@ -41,6 +48,7 @@ class LinkMenuAction extends SimpleMenuAction { /** * @return string + * @since 14.0.0 */ public function render(): string { return '<li>' . diff --git a/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php index 3409d5aae53..a520748a9ea 100644 --- a/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php +++ b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php @@ -37,6 +37,7 @@ class PublicTemplateResponse extends TemplateResponse { private $headerTitle = ''; private $headerDetails = ''; private $headerActions = []; + private $footerVisible = true; /** * PublicTemplateResponse constructor. @@ -129,6 +130,20 @@ class PublicTemplateResponse extends TemplateResponse { } /** + * @since 14.0.0 + */ + public function setFooterVisible(bool $visible = false) { + $this->footerVisible = $visible; + } + + /** + * @since 14.0.0 + */ + public function getFooterVisible(): bool { + return $this->footerVisible; + } + + /** * @return string * @since 14.0.0 */ diff --git a/lib/public/IUser.php b/lib/public/IUser.php index 13aa60b3807..3d8515a5e03 100644 --- a/lib/public/IUser.php +++ b/lib/public/IUser.php @@ -146,7 +146,7 @@ interface IUser { * @param bool $enabled * @since 8.0.0 */ - public function setEnabled($enabled); + public function setEnabled(bool $enabled = true); /** * get the users email address diff --git a/lib/public/IUserManager.php b/lib/public/IUserManager.php index 163e8b5e73f..d20b4a3fa9a 100644 --- a/lib/public/IUserManager.php +++ b/lib/public/IUserManager.php @@ -40,6 +40,9 @@ namespace OCP; * - postDelete(\OC\User\User $user) * - preCreateUser(string $uid, string $password) * - postCreateUser(\OC\User\User $user, string $password) + * - assignedUserId(string $uid) + * - preUnassignedUserId(string $uid) + * - postUnassignedUserId(string $uid) * * @package OC\User * @since 8.0.0 diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php index 0e7e881645d..4debc52fc51 100644 --- a/settings/Controller/CheckSetupController.php +++ b/settings/Controller/CheckSetupController.php @@ -104,8 +104,10 @@ class CheckSetupController extends Controller { } $siteArray = ['www.nextcloud.com', - 'www.google.com', - 'www.github.com']; + 'www.startpage.com', + 'www.eff.org', + 'www.edri.org', + ]; foreach($siteArray as $site) { if ($this->isSiteReachable($site)) { @@ -116,7 +118,7 @@ class CheckSetupController extends Controller { } /** - * Chceks if the ownCloud server can connect to a specific URL using both HTTPS and HTTP + * Checks if the Nextcloud server can connect to a specific URL using both HTTPS and HTTP * @return bool */ private function isSiteReachable($sitename) { diff --git a/settings/ajax/navigationdetect.php b/settings/ajax/navigationdetect.php deleted file mode 100644 index 35cc25f19ff..00000000000 --- a/settings/ajax/navigationdetect.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program 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, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ -OC_Util::checkAdminUser(); -\OC_JSON::callCheck(); - -$navigation = \OC::$server->getNavigationManager()->getAll(); - -\OC_JSON::success(['nav_entries' => $navigation]); diff --git a/settings/js/apps.js b/settings/js/apps.js index 0e5d7308e40..05514a10de2 100644 --- a/settings/js/apps.js +++ b/settings/js/apps.js @@ -597,10 +597,10 @@ OC.Settings.Apps = OC.Settings.Apps || { }, rebuildNavigation: function() { - $.getJSON(OC.filePath('settings', 'ajax', 'navigationdetect.php')).done(function(response){ - if(response.status === 'success') { + $.getJSON(OC.linkToOCS('core/navigation', 2) + 'apps?format=json').done(function(response){ + if(response.ocs.meta.status === 'ok') { var addedApps = {}; - var navEntries = response.nav_entries; + var navEntries = response.ocs.data; var container = $('#apps ul'); // remove disabled apps diff --git a/settings/l10n/af.js b/settings/l10n/af.js index d0eb1e46a5b..c1321e7ffb4 100644 --- a/settings/l10n/af.js +++ b/settings/l10n/af.js @@ -10,13 +10,20 @@ OC.L10N.register( "Security" : "Sekuriteit", "Your <strong>password</strong> or <strong>email</strong> was modified" : "U <strong>wagwoord</strong> of <strong>e-pos</strong> is gewysig", "Your apps" : "U toeps", + "Updates" : "Bywerkings", "Enabled apps" : "Geaktiveerde toeps", "Disabled apps" : "Gedeaktiveerde toeps", "App bundles" : "Toepbundels", "Wrong password" : "Verkeerde wagwoord", "Saved" : "Bewaar", + "No user supplied" : "Geen gebruiker verskaf nie", "Group already exists." : "Groep bestaan reeds.", "Well done, %s!" : "Welgedaan %s!", + "Settings saved" : "Instellings gestoor", + "Forbidden" : "Verbode", + "Invalid user" : "Ongeldige gebruiker", + "Email saved" : "E-pos gestoor", + "Go to %s" : "Gaan na %s", "by %s" : "deur %s", "%s-licensed" : "%s-gelisensieer", "Documentation:" : "Dokumentasie:", diff --git a/settings/l10n/af.json b/settings/l10n/af.json index 72b49d9ec24..6a9574fbdc5 100644 --- a/settings/l10n/af.json +++ b/settings/l10n/af.json @@ -8,13 +8,20 @@ "Security" : "Sekuriteit", "Your <strong>password</strong> or <strong>email</strong> was modified" : "U <strong>wagwoord</strong> of <strong>e-pos</strong> is gewysig", "Your apps" : "U toeps", + "Updates" : "Bywerkings", "Enabled apps" : "Geaktiveerde toeps", "Disabled apps" : "Gedeaktiveerde toeps", "App bundles" : "Toepbundels", "Wrong password" : "Verkeerde wagwoord", "Saved" : "Bewaar", + "No user supplied" : "Geen gebruiker verskaf nie", "Group already exists." : "Groep bestaan reeds.", "Well done, %s!" : "Welgedaan %s!", + "Settings saved" : "Instellings gestoor", + "Forbidden" : "Verbode", + "Invalid user" : "Ongeldige gebruiker", + "Email saved" : "E-pos gestoor", + "Go to %s" : "Gaan na %s", "by %s" : "deur %s", "%s-licensed" : "%s-gelisensieer", "Documentation:" : "Dokumentasie:", diff --git a/settings/l10n/el.js b/settings/l10n/el.js index 10be985e7ae..1826e7f121f 100644 --- a/settings/l10n/el.js +++ b/settings/l10n/el.js @@ -316,6 +316,7 @@ OC.L10N.register( "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης", "Show user backend" : "Εμφάνιση χρήστη συστήματος υποστήριξης", "Show last login" : "Εμφάνιση τελευταιας σύνδεσης", + "Add user" : "Προσθήκη χρήστη", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Disabled" : "Απενεργοποιημένο", @@ -324,6 +325,7 @@ OC.L10N.register( "Unlimited" : "Απεριόριστο", "Other" : "Άλλο", "Group admin for" : "Ομαδα διαχειριστή για", + "Recovery password" : "Επαναφορά συνθηματικού", "Quota" : "Σύνολο Χώρου", "Storage location" : "Τοποθεσία αποθηκευτικού χώρου", "User backend" : "Σύστημα υποστήριξης χρήστη", @@ -337,11 +339,25 @@ OC.L10N.register( "Default" : "Προκαθορισμένο", "A problem occurred, please check your log files (Error: %s)" : "Παρουσιάστηκε πρόβλημα, παρακαλώ ελέγξτε τα αρχεία καταγραφής σας (Σφάλμα: %s)", "Migration Completed" : "Η μετάβαση ολοκληρώθηκε", + "Updating...." : "Γίνεται ενημέρωση....", + "Error while updating app" : "Σφάλμα κατά την ενημέρωση της εφαρμογής", "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", "A valid email must be provided" : "Πρέπει να εισαχθεί ένα έγκυρο email", "__language_name__" : "Ελληνικά", + "Personal info" : "Προσωπικές Πληροφορίες", + "Sync clients" : "Συγχρονισμός πελατών", + "Desktop client" : "Πελάτης σταθερού υπολογιστή", + "Android app" : "Εφαρμογή Android", + "iOS app" : "Εφαρμογή iOS", + "App passwords" : "Συνθηματικά εφαρμογής", + "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", + "Like our facebook page!" : "Ακολουθήστε μας στην σελίδα μας στο facebook!", + "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", + "Check out our blog!" : "Επισκεφθείτε το ιστολόγιό μας!", + "Subscribe to our newsletter!" : "Εγγραφείτε στο ενημερωτικό δελτίο μας!", "Show email address" : "Εμφάνιση διεύθυνσης ηλ. αλληλογραφίας", "Send email to new user" : "Αποστολή μηνύματος στο νέο χρήστη", - "Create" : "Δημιουργία" + "Create" : "Δημιουργία", + "Group name" : "Όνομα ομάδας" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/el.json b/settings/l10n/el.json index 36252ddf2f4..bf6f8fb0c33 100644 --- a/settings/l10n/el.json +++ b/settings/l10n/el.json @@ -314,6 +314,7 @@ "Show storage location" : "Εμφάνιση τοποθεσίας αποθήκευσης", "Show user backend" : "Εμφάνιση χρήστη συστήματος υποστήριξης", "Show last login" : "Εμφάνιση τελευταιας σύνδεσης", + "Add user" : "Προσθήκη χρήστη", "Everyone" : "Όλοι", "Admins" : "Διαχειριστές", "Disabled" : "Απενεργοποιημένο", @@ -322,6 +323,7 @@ "Unlimited" : "Απεριόριστο", "Other" : "Άλλο", "Group admin for" : "Ομαδα διαχειριστή για", + "Recovery password" : "Επαναφορά συνθηματικού", "Quota" : "Σύνολο Χώρου", "Storage location" : "Τοποθεσία αποθηκευτικού χώρου", "User backend" : "Σύστημα υποστήριξης χρήστη", @@ -335,11 +337,25 @@ "Default" : "Προκαθορισμένο", "A problem occurred, please check your log files (Error: %s)" : "Παρουσιάστηκε πρόβλημα, παρακαλώ ελέγξτε τα αρχεία καταγραφής σας (Σφάλμα: %s)", "Migration Completed" : "Η μετάβαση ολοκληρώθηκε", + "Updating...." : "Γίνεται ενημέρωση....", + "Error while updating app" : "Σφάλμα κατά την ενημέρωση της εφαρμογής", "A valid password must be provided" : "Πρέπει να δοθεί έγκυρο συνθηματικό", "A valid email must be provided" : "Πρέπει να εισαχθεί ένα έγκυρο email", "__language_name__" : "Ελληνικά", + "Personal info" : "Προσωπικές Πληροφορίες", + "Sync clients" : "Συγχρονισμός πελατών", + "Desktop client" : "Πελάτης σταθερού υπολογιστή", + "Android app" : "Εφαρμογή Android", + "iOS app" : "Εφαρμογή iOS", + "App passwords" : "Συνθηματικά εφαρμογής", + "Follow us on Google+!" : "Ακολουθήστε μας στο Google+!", + "Like our facebook page!" : "Ακολουθήστε μας στην σελίδα μας στο facebook!", + "Follow us on Twitter!" : "Ακολουθήστε μας στο Twitter!", + "Check out our blog!" : "Επισκεφθείτε το ιστολόγιό μας!", + "Subscribe to our newsletter!" : "Εγγραφείτε στο ενημερωτικό δελτίο μας!", "Show email address" : "Εμφάνιση διεύθυνσης ηλ. αλληλογραφίας", "Send email to new user" : "Αποστολή μηνύματος στο νέο χρήστη", - "Create" : "Δημιουργία" + "Create" : "Δημιουργία", + "Group name" : "Όνομα ομάδας" },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/settings/l10n/he.js b/settings/l10n/he.js index 145a9d63475..15e70287ff0 100644 --- a/settings/l10n/he.js +++ b/settings/l10n/he.js @@ -8,11 +8,18 @@ OC.L10N.register( "You changed your email address" : "שינית את כתובת הדוא״ל שלך", "Your email address was changed by an administrator" : "כתובת הדוא״ל שלך נערכה על ידי המנהל", "Security" : "אבטחה", - "Wrong password" : "סיסמא שגוייה", + "You successfully logged in using two-factor authentication (%1$s)" : "נכנסת בהצלחה באמצעות אימות דו־שלבי (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "ניסיון כניסה עם אימות דו־שלבי נכשל (%1$s)", + "Your apps" : "היישומונים שלך", + "Updates" : "עדכונים", + "Enabled apps" : "יישומונים פעילים", + "Disabled apps" : "יישומונים מושבתים", + "App bundles" : "מאגדי יישומונים", + "Wrong password" : "ססמה שגויה", "Saved" : "נשמר", "No user supplied" : "לא סופק שם משתמש", - "Unable to change password" : "לא ניתן לשנות את הסיסמא", - "Authentication error" : "שגיאת הזדהות", + "Unable to change password" : "לא ניתן לשנות את הססמה", + "Authentication error" : "שגיאת אימות", "Wrong admin recovery password. Please check the password and try again." : "סיסמת המנהל לשחזור שגוייה. יש לבדוק את הסיסמא ולנסות שוב.", "installing and updating apps via the app store or Federated Cloud Sharing" : "התקנה ועדכון היישום דרך חנות היישומים או ענן שיתוף מאוגד", "Federated Cloud Sharing" : "ענן שיתוף מאוגד", diff --git a/settings/l10n/he.json b/settings/l10n/he.json index 21a7e0f53f5..51bea971243 100644 --- a/settings/l10n/he.json +++ b/settings/l10n/he.json @@ -6,11 +6,18 @@ "You changed your email address" : "שינית את כתובת הדוא״ל שלך", "Your email address was changed by an administrator" : "כתובת הדוא״ל שלך נערכה על ידי המנהל", "Security" : "אבטחה", - "Wrong password" : "סיסמא שגוייה", + "You successfully logged in using two-factor authentication (%1$s)" : "נכנסת בהצלחה באמצעות אימות דו־שלבי (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "ניסיון כניסה עם אימות דו־שלבי נכשל (%1$s)", + "Your apps" : "היישומונים שלך", + "Updates" : "עדכונים", + "Enabled apps" : "יישומונים פעילים", + "Disabled apps" : "יישומונים מושבתים", + "App bundles" : "מאגדי יישומונים", + "Wrong password" : "ססמה שגויה", "Saved" : "נשמר", "No user supplied" : "לא סופק שם משתמש", - "Unable to change password" : "לא ניתן לשנות את הסיסמא", - "Authentication error" : "שגיאת הזדהות", + "Unable to change password" : "לא ניתן לשנות את הססמה", + "Authentication error" : "שגיאת אימות", "Wrong admin recovery password. Please check the password and try again." : "סיסמת המנהל לשחזור שגוייה. יש לבדוק את הסיסמא ולנסות שוב.", "installing and updating apps via the app store or Federated Cloud Sharing" : "התקנה ועדכון היישום דרך חנות היישומים או ענן שיתוף מאוגד", "Federated Cloud Sharing" : "ענן שיתוף מאוגד", diff --git a/settings/l10n/nb.js b/settings/l10n/nb.js index 66ccb14c2c0..edcfe4aa042 100644 --- a/settings/l10n/nb.js +++ b/settings/l10n/nb.js @@ -104,6 +104,7 @@ OC.L10N.register( "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", "App up to date" : "Appen er oppdatert", + "Updating …" : "Oppdaterer…", "Updated" : "Oppdatert", "Removing …" : "Fjerner…", "Could not remove app" : "Kunne ikke fjerne program", @@ -158,6 +159,7 @@ OC.L10N.register( "Good password" : "Bra passord", "Strong password" : "Sterkt passord", "Groups" : "Grupper", + "Unable to retrieve the group list" : "Kunne ikke hente gruppelisten", "Unable to delete {objName}" : "Kan ikke slette {objName}", "Error creating group: {message}" : "Feil ved oppretting av gruppe: {message}", "A valid group name must be provided" : "Et gyldig gruppenavn må oppgis", diff --git a/settings/l10n/nb.json b/settings/l10n/nb.json index f56c476c14e..a19a3070b89 100644 --- a/settings/l10n/nb.json +++ b/settings/l10n/nb.json @@ -102,6 +102,7 @@ "Error: Could not disable broken app" : "Feil: Kunne ikke deaktivere ustabilt program", "Error while disabling broken app" : "Feil ved deaktivering av ustabilt program", "App up to date" : "Appen er oppdatert", + "Updating …" : "Oppdaterer…", "Updated" : "Oppdatert", "Removing …" : "Fjerner…", "Could not remove app" : "Kunne ikke fjerne program", @@ -156,6 +157,7 @@ "Good password" : "Bra passord", "Strong password" : "Sterkt passord", "Groups" : "Grupper", + "Unable to retrieve the group list" : "Kunne ikke hente gruppelisten", "Unable to delete {objName}" : "Kan ikke slette {objName}", "Error creating group: {message}" : "Feil ved oppretting av gruppe: {message}", "A valid group name must be provided" : "Et gyldig gruppenavn må oppgis", diff --git a/settings/routes.php b/settings/routes.php index ecf68791a27..df49f0af859 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -106,8 +106,6 @@ $this->create('settings_ajax_updateapp', '/settings/ajax/updateapp.php') ->actionInclude('settings/ajax/updateapp.php'); $this->create('settings_ajax_uninstallapp', '/settings/ajax/uninstallapp.php') ->actionInclude('settings/ajax/uninstallapp.php'); -$this->create('settings_ajax_navigationdetect', '/settings/ajax/navigationdetect.php') - ->actionInclude('settings/ajax/navigationdetect.php'); // admin $this->create('settings_ajax_excludegroups', '/settings/ajax/excludegroups.php') ->actionInclude('settings/ajax/excludegroups.php'); diff --git a/tests/Core/Command/Log/FileTest.php b/tests/Core/Command/Log/FileTest.php index 4270684c9b6..4b8845277da 100644 --- a/tests/Core/Command/Log/FileTest.php +++ b/tests/Core/Command/Log/FileTest.php @@ -105,7 +105,7 @@ class FileTest extends TestCase { ['log_type', 'file', 'log_type_value'], ['datadirectory', \OC::$SERVERROOT.'/data', '/data/directory/'], ['logfile', '/data/directory/nextcloud.log', '/var/log/nextcloud.log'], - ['log_rotate_size', 0, 5 * 1024 * 1024], + ['log_rotate_size', 100 * 1024 * 1024, 5 * 1024 * 1024], ])); $this->consoleOutput->expects($this->at(0)) diff --git a/tests/Core/Controller/LoginControllerTest.php b/tests/Core/Controller/LoginControllerTest.php index c0de180abba..ccd70111ae5 100644 --- a/tests/Core/Controller/LoginControllerTest.php +++ b/tests/Core/Controller/LoginControllerTest.php @@ -21,6 +21,7 @@ namespace Tests\Core\Controller; +use OC\Authentication\Token\IToken; use OC\Authentication\TwoFactorAuth\Manager; use OC\Core\Controller\LoginController; use OC\Security\Bruteforce\Throttler; @@ -193,9 +194,7 @@ class LoginControllerTest extends TestCase { 'user_autofocus' => true, 'canResetPassword' => true, 'alt_login' => [], - 'rememberLoginState' => 0, 'resetPasswordLink' => null, - 'hideRemeberLoginState' => false, 'throttle_delay' => 1000, ], 'guest' @@ -208,11 +207,6 @@ class LoginControllerTest extends TestCase { ->expects($this->once()) ->method('isLoggedIn') ->willReturn(false); - $this->session - ->expects($this->once()) - ->method('exists') - ->with('client.flow.state.token') - ->willReturn(true); $expectedResponse = new TemplateResponse( 'core', @@ -224,9 +218,7 @@ class LoginControllerTest extends TestCase { 'user_autofocus' => true, 'canResetPassword' => true, 'alt_login' => [], - 'rememberLoginState' => 0, 'resetPasswordLink' => null, - 'hideRemeberLoginState' => true, 'throttle_delay' => 1000, ], 'guest' @@ -284,9 +276,7 @@ class LoginControllerTest extends TestCase { 'user_autofocus' => false, 'canResetPassword' => $expectedResult, 'alt_login' => [], - 'rememberLoginState' => 0, 'resetPasswordLink' => false, - 'hideRemeberLoginState' => false, 'throttle_delay' => 1000, ], 'guest' @@ -324,9 +314,7 @@ class LoginControllerTest extends TestCase { 'user_autofocus' => false, 'canResetPassword' => false, 'alt_login' => [], - 'rememberLoginState' => 0, 'resetPasswordLink' => false, - 'hideRemeberLoginState' => false, 'throttle_delay' => 1000, ], 'guest' @@ -395,7 +383,7 @@ class LoginControllerTest extends TestCase { ->with($user, ['loginName' => $loginName, 'password' => $password]); $this->userSession->expects($this->once()) ->method('createSessionToken') - ->with($this->request, $user->getUID(), $loginName, $password, false); + ->with($this->request, $user->getUID(), $loginName, $password, IToken::REMEMBER); $this->twoFactorManager->expects($this->once()) ->method('isTwoFactorAuthenticated') ->with($user) @@ -535,7 +523,7 @@ class LoginControllerTest extends TestCase { ->will($this->returnValue($user)); $this->userSession->expects($this->once()) ->method('createSessionToken') - ->with($this->request, $user->getUID(), 'Jane', $password, false); + ->with($this->request, $user->getUID(), 'Jane', $password, IToken::REMEMBER); $this->userSession->expects($this->once()) ->method('isLoggedIn') ->with() @@ -574,7 +562,7 @@ class LoginControllerTest extends TestCase { ->with($user, ['loginName' => 'john@doe.com', 'password' => $password]); $this->userSession->expects($this->once()) ->method('createSessionToken') - ->with($this->request, $user->getUID(), 'john@doe.com', $password, false); + ->with($this->request, $user->getUID(), 'john@doe.com', $password, IToken::REMEMBER); $this->twoFactorManager->expects($this->once()) ->method('isTwoFactorAuthenticated') ->with($user) @@ -628,7 +616,7 @@ class LoginControllerTest extends TestCase { ->with($user, ['loginName' => 'john@doe.com', 'password' => $password]); $this->userSession->expects($this->once()) ->method('createSessionToken') - ->with($this->request, $user->getUID(), 'john@doe.com', $password, false); + ->with($this->request, $user->getUID(), 'john@doe.com', $password, IToken::REMEMBER); $this->twoFactorManager->expects($this->once()) ->method('isTwoFactorAuthenticated') ->with($user) diff --git a/tests/Settings/Controller/CheckSetupControllerTest.php b/tests/Settings/Controller/CheckSetupControllerTest.php index a616cc3e70b..9faf4a4b719 100644 --- a/tests/Settings/Controller/CheckSetupControllerTest.php +++ b/tests/Settings/Controller/CheckSetupControllerTest.php @@ -150,7 +150,7 @@ class CheckSetupControllerTest extends TestCase { ->method('get') ->will($this->throwException(new \Exception())); - $this->clientService->expects($this->exactly(3)) + $this->clientService->expects($this->exactly(4)) ->method('newClient') ->will($this->returnValue($client)); @@ -285,13 +285,17 @@ class CheckSetupControllerTest extends TestCase { ->will($this->throwException(new \Exception())); $client->expects($this->at(1)) ->method('get') - ->with('http://www.google.com/', []) + ->with('http://www.startpage.com/', []) ->will($this->throwException(new \Exception())); $client->expects($this->at(2)) ->method('get') - ->with('http://www.github.com/', []) + ->with('http://www.eff.org/', []) ->will($this->throwException(new \Exception())); - $this->clientService->expects($this->exactly(3)) + $client->expects($this->at(3)) + ->method('get') + ->with('http://www.edri.org/', []) + ->will($this->throwException(new \Exception())); + $this->clientService->expects($this->exactly(4)) ->method('newClient') ->will($this->returnValue($client)); $this->urlGenerator->expects($this->at(0)) diff --git a/tests/acceptance/composer.json b/tests/acceptance/composer.json index 87b6ba4a22c..244aa976692 100644 --- a/tests/acceptance/composer.json +++ b/tests/acceptance/composer.json @@ -8,7 +8,7 @@ }, "autoload": { "psr-4": { - "": "features/core" + "": ["features/bootstrap", "features/core"] } } } diff --git a/tests/acceptance/config/behat.yml b/tests/acceptance/config/behat.yml index 0eda2b19803..3cd71eec047 100644 --- a/tests/acceptance/config/behat.yml +++ b/tests/acceptance/config/behat.yml @@ -1,6 +1,4 @@ default: - autoload: - '': %paths.base%/../features/bootstrap suites: default: paths: diff --git a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php index 4f9dabc60e6..61357142ae4 100644 --- a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php +++ b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php @@ -64,7 +64,7 @@ class FilesSharingAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function shareMenu() { - return Locator::forThe()->id("share-menu")-> + return Locator::forThe()->id("header-actions-menu")-> describedAs("Share menu in Shared file page"); } @@ -90,7 +90,7 @@ class FilesSharingAppContext implements Context, ActorAwareInterface { * @return Locator */ public static function saveItemInShareMenu() { - return Locator::forThe()->id("save")-> + return Locator::forThe()->id("save-external-share")-> descendantOf(self::shareMenu())-> describedAs("Save item in Share menu in Shared file page"); } diff --git a/tests/acceptance/features/core/NextcloudTestServerContext.php b/tests/acceptance/features/core/NextcloudTestServerContext.php index f8d13a656b9..ff1296ba18a 100644 --- a/tests/acceptance/features/core/NextcloudTestServerContext.php +++ b/tests/acceptance/features/core/NextcloudTestServerContext.php @@ -40,12 +40,12 @@ use Behat\Behat\Hook\Scope\BeforeScenarioScope; * * The Nextcloud server is provided by an instance of NextcloudTestServerHelper; * its class must be specified when this context is created. By default, - * "NextcloudTestServerLocalHelper" is used, although that can be customized - * using the "nextcloudTestServerHelper" parameter in "behat.yml". In the same - * way, the parameters to be passed to the helper when it is created can be - * customized using the "nextcloudTestServerHelperParameters" parameter, which - * is an array (without keys) with the value of the parameters in the same order - * as in the constructor of the helper class (by default, [ ]). + * "NextcloudTestServerLocalBuiltInHelper" is used, although that can be + * customized using the "nextcloudTestServerHelper" parameter in "behat.yml". In + * the same way, the parameters to be passed to the helper when it is created + * can be customized using the "nextcloudTestServerHelperParameters" parameter, + * which is an array (without keys) with the value of the parameters in the same + * order as in the constructor of the helper class (by default, [ ]). * * Example of custom parameters in "behat.yml": * default: @@ -73,7 +73,7 @@ class NextcloudTestServerContext implements Context { * @param array $nextcloudTestServerHelperParameters the parameters for the * constructor of the $nextcloudTestServerHelper class. */ - public function __construct($nextcloudTestServerHelper = "NextcloudTestServerLocalHelper", + public function __construct($nextcloudTestServerHelper = "NextcloudTestServerLocalBuiltInHelper", $nextcloudTestServerHelperParameters = [ ]) { $nextcloudTestServerHelperClass = new ReflectionClass($nextcloudTestServerHelper); diff --git a/tests/acceptance/features/core/NextcloudTestServerLocalApacheHelper.php b/tests/acceptance/features/core/NextcloudTestServerLocalApacheHelper.php new file mode 100644 index 00000000000..b552a86d250 --- /dev/null +++ b/tests/acceptance/features/core/NextcloudTestServerLocalApacheHelper.php @@ -0,0 +1,130 @@ +<?php + +/** + * + * @copyright Copyright (c) 2018, Daniel Calviño Sánchez (danxuliu@gmail.com) + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +/** + * Helper to manage a Nextcloud test server started directly by the acceptance + * tests themselves using the Apache web server. + * + * The Nextcloud test server is executed using the Apache web server; the + * default Apache directory is expected to have been set to the root directory + * of the Nextcloud server (for example, by linking "var/www/html" to it); in + * any case, note that the acceptance tests must be run from the acceptance + * tests directory. The "setUp" method resets the Nextcloud server to its + * initial state and starts it, while the "cleanUp" method stops it. To be able + * to reset the Nextcloud server to its initial state a Git repository must be + * provided in the root directory of the Nextcloud server; the last commit in + * that Git repository must provide the initial state for the Nextcloud server + * expected by the acceptance tests. When the Nextcloud server is reset the + * owner of "apps", "config" and "data" must be set to the user that Apache + * server is run as; it is assumed that Apache is run as "www-data". + * + * The Nextcloud server is available at "$nextcloudServerDomain", which can be + * optionally specified when the NextcloudTestServerLocalApacheHelper is + * created; if no value is given "127.0.0.1" is used by default. In any case, + * the value of "$nextcloudServerDomain" must be seen as a trusted domain by the + * Nextcloud server (which would be the case for "127.0.0.1" if it was installed + * by running "occ maintenance:install"). The base URL to access the Nextcloud + * server can be got from "getBaseUrl". + */ +class NextcloudTestServerLocalApacheHelper implements NextcloudTestServerHelper { + + /** + * @var string + */ + private $nextcloudServerDomain; + + /** + * Creates a new NextcloudTestServerLocalApacheHelper. + */ + public function __construct($nextcloudServerDomain = "127.0.0.1") { + $this->nextcloudServerDomain = $nextcloudServerDomain; + } + + /** + * Sets up the Nextcloud test server. + * + * It resets the Nextcloud test server restoring its last saved Git state + * and then waits for the Nextcloud test server to start again; if the + * server can not be reset or if it does not start again after some time an + * exception is thrown (as it is just a warning for the test runner and + * nothing to be explicitly catched a plain base Exception is used). + * + * @throws \Exception if the Nextcloud test server can not be reset or + * started again. + */ + public function setUp() { + // Ensure that previous Apache server is not running (as cleanUp may not + // have been called). + $this->stopApacheServer(); + + $this->execOrException("cd ../../ && git reset --hard HEAD"); + $this->execOrException("cd ../../ && git clean -d --force"); + $this->execOrException("cd ../../ && chown -R www-data:www-data apps config data"); + + $this->execOrException("service apache2 start"); + + $timeout = 60; + if (!Utils::waitForServer($this->getBaseUrl(), $timeout)) { + throw new Exception("Nextcloud test server could not be started"); + } + } + + /** + * Cleans up the Nextcloud test server. + * + * It stops the running Nextcloud test server, if any. + */ + public function cleanUp() { + $this->stopApacheServer(); + } + + /** + * Returns the base URL of the Nextcloud test server. + * + * @return string the base URL of the Nextcloud test server. + */ + public function getBaseUrl() { + return "http://" . $this->nextcloudServerDomain . "/index.php"; + } + + /** + * Executes the given command, throwing an Exception if it fails. + * + * @param string $command the command to execute. + * @throws \Exception if the command fails to execute. + */ + private function execOrException($command) { + exec($command . " 2>&1", $output, $returnValue); + if ($returnValue != 0) { + throw new Exception("'$command' could not be executed: " . implode("\n", $output)); + } + } + + /** + * Stops the Apache server started in setUp, if any. + */ + private function stopApacheServer() { + $this->execOrException("service apache2 stop"); + } + +} diff --git a/tests/acceptance/features/core/NextcloudTestServerLocalHelper.php b/tests/acceptance/features/core/NextcloudTestServerLocalBuiltInHelper.php index b11a9ae8217..722f580171a 100644 --- a/tests/acceptance/features/core/NextcloudTestServerLocalHelper.php +++ b/tests/acceptance/features/core/NextcloudTestServerLocalBuiltInHelper.php @@ -36,14 +36,14 @@ * initial state for the Nextcloud server expected by the acceptance tests. * * The Nextcloud server is available at "$nextcloudServerDomain", which can be - * optionally specified when the NextcloudTestServerLocalHelper is created; if - * no value is given "127.0.0.1" is used by default. In any case, the value of - * "$nextcloudServerDomain" must be seen as a trusted domain by the Nextcloud - * server (which would be the case for "127.0.0.1" if it was installed by - * running "occ maintenance:install"). The base URL to access the Nextcloud + * optionally specified when the NextcloudTestServerLocalBuiltInHelper is + * created; if no value is given "127.0.0.1" is used by default. In any case, + * the value of "$nextcloudServerDomain" must be seen as a trusted domain by the + * Nextcloud server (which would be the case for "127.0.0.1" if it was installed + * by running "occ maintenance:install"). The base URL to access the Nextcloud * server can be got from "getBaseUrl". */ -class NextcloudTestServerLocalHelper implements NextcloudTestServerHelper { +class NextcloudTestServerLocalBuiltInHelper implements NextcloudTestServerHelper { /** * @var string @@ -56,7 +56,7 @@ class NextcloudTestServerLocalHelper implements NextcloudTestServerHelper { private $phpServerPid; /** - * Creates a new NextcloudTestServerLocalHelper. + * Creates a new NextcloudTestServerLocalBuiltInHelper. */ public function __construct($nextcloudServerDomain = "127.0.0.1") { $this->nextcloudServerDomain = $nextcloudServerDomain; diff --git a/tests/acceptance/run-local.sh b/tests/acceptance/run-local.sh index e2270be3854..fcf6155d6f7 100755 --- a/tests/acceptance/run-local.sh +++ b/tests/acceptance/run-local.sh @@ -31,6 +31,18 @@ # to control a web browser, so this script waits for the Selenium server # (which should have been started before executing this script) to be ready # before running the tests. +# +# By default the acceptance tests run are those for the Nextcloud server; +# acceptance tests for apps can be run by providing the +# "--acceptance-tests-dir XXX" option. When this option is used the Behat +# configuration and the Nextcloud installation script used by the acceptance +# tests for the Nextcloud server are ignored; they must be provided in the given +# acceptance tests directory. Note, however, that the context classes for the +# Nextcloud server and the core acceptance test framework classes are +# automatically loaded; there is no need to explicitly set them in the Behat +# configuration. Also, even when that option is used, the packages installed by +# this script end in the "vendor" subdirectory of the acceptance tests for the +# Nextcloud server, not in the one given in the option. # Exit immediately on errors. set -o errexit @@ -39,8 +51,20 @@ set -o errexit # Behat through Composer or running Behat) expect that. cd "$(dirname $0)" -# "--timeout-multiplier N" option can be provided before any other parameter to -# set the timeout multiplier to be used in ActorContext. +# "--acceptance-tests-dir XXX" option can be provided to set the directory +# (relative to the root directory of the Nextcloud server) used to look for the +# Behat configuration and the Nextcloud installation script. +# By default it is "tests/acceptance", that is, the acceptance tests for the +# Nextcloud server itself. +ACCEPTANCE_TESTS_DIR="tests/acceptance" +if [ "$1" = "--acceptance-tests-dir" ]; then + ACCEPTANCE_TESTS_DIR=$2 + + shift 2 +fi + +# "--timeout-multiplier N" option can be provided to set the timeout multiplier +# to be used in ActorContext. TIMEOUT_MULTIPLIER="" if [ "$1" = "--timeout-multiplier" ]; then if [[ ! "$2" =~ ^[0-9]+$ ]]; then @@ -83,6 +107,18 @@ if [ "$1" != "allow-git-repository-modifications" ]; then fi SCENARIO_TO_RUN=$2 +if [ "$ACCEPTANCE_TESTS_DIR" != "tests/acceptance" ]; then + if [ "$SCENARIO_TO_RUN" == "" ]; then + echo "When an acceptance tests directory is given the scenario to run" \ + "should be provided too (paths are relative to the acceptance" \ + "tests directory; use the features directory to run all tests)" + echo "No scenario was given, so \"features/\" was automatically used" + + SCENARIO_TO_RUN="features/" + fi + + SCENARIO_TO_RUN=../../$ACCEPTANCE_TESTS_DIR/$SCENARIO_TO_RUN +fi if [ "$TIMEOUT_MULTIPLIER" != "" ]; then # Although Behat documentation states that using the BEHAT_PARAMS @@ -97,7 +133,7 @@ if [ "$TIMEOUT_MULTIPLIER" != "" ]; then REPLACEMENT="\ - ActorContext:\n\ actorTimeoutMultiplier: $TIMEOUT_MULTIPLIER" - sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml + sed --in-place "s/$ORIGINAL/$REPLACEMENT/" ../../$ACCEPTANCE_TESTS_DIR/config/behat.yml fi if [ "$NEXTCLOUD_SERVER_DOMAIN" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then @@ -108,13 +144,17 @@ if [ "$NEXTCLOUD_SERVER_DOMAIN" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then # https://github.com/Behat/Behat/issues/983). Thus, the default "behat.yml" # configuration file has to be adjusted to provide the appropriate # parameters for NextcloudTestServerContext. + # + # Note that the substitution below is only valid if no parameters for + # the helper are set in behat.yml, although it is valid if a specific + # helper is. ORIGINAL="\ - - NextcloudTestServerContext" + - NextcloudTestServerContext:\?" REPLACEMENT="\ - NextcloudTestServerContext:\n\ nextcloudTestServerHelperParameters:\n\ - $NEXTCLOUD_SERVER_DOMAIN" - sed --in-place "s/$ORIGINAL/$REPLACEMENT/" config/behat.yml + sed --in-place "s/$ORIGINAL/$REPLACEMENT/" ../../$ACCEPTANCE_TESTS_DIR/config/behat.yml fi if [ "$SELENIUM_SERVER" != "$DEFAULT_SELENIUM_SERVER" ]; then @@ -151,12 +191,19 @@ composer install cd ../../ INSTALL_AND_CONFIGURE_SERVER_PARAMETERS="" -if [ "$NEXTCLOUD_SERVER_domain" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then +if [ "$NEXTCLOUD_SERVER_DOMAIN" != "$DEFAULT_NEXTCLOUD_SERVER_DOMAIN" ]; then INSTALL_AND_CONFIGURE_SERVER_PARAMETERS+="--nextcloud-server-domain $NEXTCLOUD_SERVER_DOMAIN" fi echo "Installing and configuring Nextcloud server" -tests/acceptance/installAndConfigureServer.sh $INSTALL_AND_CONFIGURE_SERVER_PARAMETERS +# The server is installed and configured using the www-data user as it is the +# user that Apache sub-processes will be run as; the PHP built-in web server is +# run as the root user, and in that case the permissions of apps, config and +# data dirs makes no difference, so this is valid for both cases. +mkdir data +chown -R www-data:www-data apps config data +NEXTCLOUD_DIR=`pwd` +su --shell /bin/bash --login www-data --command "cd $NEXTCLOUD_DIR && $ACCEPTANCE_TESTS_DIR/installAndConfigureServer.sh $INSTALL_AND_CONFIGURE_SERVER_PARAMETERS" echo "Saving the default state so acceptance tests can reset to it" find . -name ".gitignore" -exec rm --force {} \; @@ -168,4 +215,4 @@ cd tests/acceptance echo "Waiting for Selenium" timeout 60s bash -c "while ! curl $SELENIUM_SERVER >/dev/null 2>&1; do sleep 1; done" -vendor/bin/behat $SCENARIO_TO_RUN +vendor/bin/behat --config=../../$ACCEPTANCE_TESTS_DIR/config/behat.yml $SCENARIO_TO_RUN diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh index 89fdda02630..f2bc66048d7 100755 --- a/tests/acceptance/run.sh +++ b/tests/acceptance/run.sh @@ -138,7 +138,7 @@ function prepareDocker() { # Selenium server. # The container exits immediately if no command is given, so a Bash session # is created to prevent that. - docker run --detach --name=$NEXTCLOUD_LOCAL_CONTAINER --network=container:$SELENIUM_CONTAINER --interactive --tty nextcloudci/php7.1:php7.1-15 bash + docker run --detach --name=$NEXTCLOUD_LOCAL_CONTAINER --network=container:$SELENIUM_CONTAINER --interactive --tty nextcloudci/acceptance-php7.1:acceptance-php7.1-2 bash # Use the $TMPDIR or, if not set, fall back to /tmp. NEXTCLOUD_LOCAL_TAR="$($MKTEMP --tmpdir="${TMPDIR:-/tmp}" --suffix=.tar nextcloud-local-XXXXXXXXXX)" @@ -153,6 +153,10 @@ function prepareDocker() { docker exec $NEXTCLOUD_LOCAL_CONTAINER mkdir /nextcloud docker cp - $NEXTCLOUD_LOCAL_CONTAINER:/nextcloud/ < "$NEXTCLOUD_LOCAL_TAR" + # Link the default Apache directory to the root directory of the Nextcloud + # server to make possible to run the Nextcloud server on Apache if needed. + docker exec $NEXTCLOUD_LOCAL_CONTAINER ln --symbolic /nextcloud /var/www/html + # run-local.sh expects a Git repository to be available in the root of the # Nextcloud server, but it was excluded when the Git working directory was # copied to the container to avoid copying the large and unneeded history of @@ -197,6 +201,18 @@ trap cleanUp EXIT # the Git working directory to the container) expect that. cd "$(dirname $0)" +# "--acceptance-tests-dir XXX" option can be provided to set the directory +# (relative to the root directory of the Nextcloud server) used to look for the +# Behat configuration and the Nextcloud installation script. +# By default it is "tests/acceptance", that is, the acceptance tests for the +# Nextcloud server itself. +ACCEPTANCE_TESTS_DIR_OPTION="" +if [ "$1" = "--acceptance-tests-dir" ]; then + ACCEPTANCE_TESTS_DIR_OPTION="--acceptance-tests-dir $2" + + shift 2 +fi + # "--timeout-multiplier N" option can be provided before the specific scenario # to run, if any, to set the timeout multiplier to be used in the acceptance # tests. @@ -222,4 +238,4 @@ prepareSelenium prepareDocker echo "Running tests" -docker exec $NEXTCLOUD_LOCAL_CONTAINER bash -c "cd nextcloud && tests/acceptance/run-local.sh $TIMEOUT_MULTIPLIER_OPTION allow-git-repository-modifications $SCENARIO_TO_RUN" +docker exec $NEXTCLOUD_LOCAL_CONTAINER bash -c "cd nextcloud && tests/acceptance/run-local.sh $ACCEPTANCE_TESTS_DIR_OPTION $TIMEOUT_MULTIPLIER_OPTION allow-git-repository-modifications $SCENARIO_TO_RUN" diff --git a/tests/karma.config.js b/tests/karma.config.js index 0254d6a3335..3758636f074 100644 --- a/tests/karma.config.js +++ b/tests/karma.config.js @@ -93,6 +93,7 @@ module.exports = function(config) { 'apps/comments/js/commentmodel.js', 'apps/comments/js/commentcollection.js', 'apps/comments/js/commentsummarymodel.js', + 'apps/comments/js/commentsmodifymenu.js', 'apps/comments/js/commentstabview.js', 'apps/comments/js/filesplugin.js' ], @@ -223,7 +224,7 @@ module.exports = function(config) { // serve images to avoid warnings files.push({pattern: 'core/img/**/*', watched: false, included: false, served: true}); files.push({pattern: 'core/css/images/*', watched: false, included: false, served: true}); - + // include core CSS files.push({pattern: 'core/css/*.css', watched: true, included: true, served: true}); files.push({pattern: 'tests/css/*.css', watched: true, included: true, served: true}); diff --git a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php index 4549b05935c..59dc7366cc0 100644 --- a/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php +++ b/tests/lib/App/AppStore/Fetcher/AppFetcherTest.php @@ -22,6 +22,7 @@ namespace Test\App\AppStore\Fetcher; use OC\App\AppStore\Fetcher\AppFetcher; +use OC\App\CompareVersion; use OC\Files\AppData\Factory; use OCP\AppFramework\Utility\ITimeFactory; use OCP\Files\IAppData; @@ -33,18 +34,21 @@ use OCP\Http\Client\IClientService; use OCP\Http\Client\IResponse; use OCP\IConfig; use OCP\ILogger; +use PHPUnit_Framework_MockObject_MockObject; use Test\TestCase; class AppFetcherTest extends TestCase { - /** @var IAppData|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IAppData|PHPUnit_Framework_MockObject_MockObject */ protected $appData; - /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IClientService|PHPUnit_Framework_MockObject_MockObject */ protected $clientService; - /** @var ITimeFactory|\PHPUnit_Framework_MockObject_MockObject */ + /** @var ITimeFactory|PHPUnit_Framework_MockObject_MockObject */ protected $timeFactory; - /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */ + /** @var IConfig|PHPUnit_Framework_MockObject_MockObject */ protected $config; - /** @var ILogger|\PHPUnit_Framework_MockObject_MockObject */ + /** @var CompareVersion|PHPUnit_Framework_MockObject_MockObject */ + protected $compareVersion; + /** @var ILogger|PHPUnit_Framework_MockObject_MockObject */ protected $logger; /** @var AppFetcher */ protected $fetcher; @@ -57,7 +61,7 @@ EOD; public function setUp() { parent::setUp(); - /** @var Factory|\PHPUnit_Framework_MockObject_MockObject $factory */ + /** @var Factory|PHPUnit_Framework_MockObject_MockObject $factory */ $factory = $this->createMock(Factory::class); $this->appData = $this->createMock(IAppData::class); $factory->expects($this->once()) @@ -67,6 +71,7 @@ EOD; $this->clientService = $this->createMock(IClientService::class); $this->timeFactory = $this->createMock(ITimeFactory::class); $this->config = $this->createMock(IConfig::class); + $this->compareVersion = new CompareVersion(); $this->logger = $this->createMock(ILogger::class); $this->config @@ -79,6 +84,7 @@ EOD; $this->clientService, $this->timeFactory, $this->config, + $this->compareVersion, $this->logger ); } diff --git a/tests/lib/App/CompareVersionTest.php b/tests/lib/App/CompareVersionTest.php new file mode 100644 index 00000000000..60309fdeae4 --- /dev/null +++ b/tests/lib/App/CompareVersionTest.php @@ -0,0 +1,91 @@ +<?php + +/** + * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author 2018 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\App; + +use InvalidArgumentException; +use OC\App\CompareVersion; +use Test\TestCase; + +class CompareVersionTest extends TestCase { + + /** @var CompareVersion */ + private $compare; + + protected function setUp() { + parent::setUp(); + + $this->compare = new CompareVersion(); + } + + public function comparisonData() { + return [ + // Compatible versions + ['13.0.0.3', '13.0.0', '>=', true], + ['13.0.0.3', '13.0.0', '<=', true], + ['13.0.0', '13.0.0', '>=', true], + ['13.0.0', '13.0', '<=', true], + ['13.0.0', '13', '>=', true], + ['13.0.1', '13', '>=', true], + ['13.0.1', '13', '<=', true], + // Incompatible major versions + ['13.0.0.3', '13.0.0', '<', false], + ['12.0.0', '13.0.0', '>=', false], + ['12.0.0', '13.0', '>=', false], + ['12.0.0', '13', '>=', false], + // Incompatible minor and patch versions + ['13.0.0', '13.0.1', '>=', false], + ['13.0.0', '13.1', '>=', false], + // Compatible minor and patch versions + ['13.0.1', '13.0.0', '>=', true], + ['13.2.0', '13.1', '>=', true], + ]; + } + + /** + * @dataProvider comparisonData + */ + public function testComparison(string $actualVersion, string $requiredVersion, + string $comparator, bool $expected) { + $isCompatible = $this->compare->isCompatible($actualVersion, $requiredVersion, + $comparator); + + $this->assertEquals($expected, $isCompatible); + } + + public function testInvalidServerVersion() { + $actualVersion = '13'; + $this->expectException(InvalidArgumentException::class); + + $this->compare->isCompatible($actualVersion, '13.0.0'); + } + + public function testInvalidRequiredVersion() { + $actualVersion = '13.0.0'; + $this->expectException(InvalidArgumentException::class); + + $this->compare->isCompatible($actualVersion, '13.0.0.9'); + } + +} diff --git a/tests/lib/LoggerTest.php b/tests/lib/LoggerTest.php index 6f528bd6fab..9fdbccc24dc 100644 --- a/tests/lib/LoggerTest.php +++ b/tests/lib/LoggerTest.php @@ -96,9 +96,12 @@ class LoggerTest extends TestCase { $logLines = $this->getLogs(); foreach($logLines as $logLine) { + if (is_array($logLine)) { + $logLine = json_encode($logLine); + } $this->assertNotContains($user, $logLine); $this->assertNotContains($password, $logLine); - $this->assertContains('login(*** sensitive parameters replaced ***)', $logLine); + $this->assertContains('*** sensitive parameters replaced ***', $logLine); } } @@ -115,9 +118,12 @@ class LoggerTest extends TestCase { $logLines = $this->getLogs(); foreach($logLines as $logLine) { + if (is_array($logLine)) { + $logLine = json_encode($logLine); + } $this->assertNotContains($user, $logLine); $this->assertNotContains($password, $logLine); - $this->assertContains('checkPassword(*** sensitive parameters replaced ***)', $logLine); + $this->assertContains('*** sensitive parameters replaced ***', $logLine); } } @@ -134,9 +140,12 @@ class LoggerTest extends TestCase { $logLines = $this->getLogs(); foreach($logLines as $logLine) { + if (is_array($logLine)) { + $logLine = json_encode($logLine); + } $this->assertNotContains($user, $logLine); $this->assertNotContains($password, $logLine); - $this->assertContains('validateUserPass(*** sensitive parameters replaced ***)', $logLine); + $this->assertContains('*** sensitive parameters replaced ***', $logLine); } } @@ -153,9 +162,12 @@ class LoggerTest extends TestCase { $logLines = $this->getLogs(); foreach($logLines as $logLine) { + if (is_array($logLine)) { + $logLine = json_encode($logLine); + } $this->assertNotContains($user, $logLine); $this->assertNotContains($password, $logLine); - $this->assertContains('tryLogin(*** sensitive parameters replaced ***)', $logLine); + $this->assertContains('*** sensitive parameters replaced ***', $logLine); } } @@ -177,13 +189,16 @@ class LoggerTest extends TestCase { $logLines = $this->getLogs(); foreach($logLines as $logLine) { + if (is_array($logLine)) { + $logLine = json_encode($logLine); + } $log = explode('\n', $logLine); unset($log[1]); // Remove `testDetectclosure(` because we are not testing this here, but the closure on stack trace 0 $logLine = implode('\n', $log); $this->assertNotContains($user, $logLine); $this->assertNotContains($password, $logLine); - $this->assertContains('{closure}(*** sensitive parameters replaced ***)', $logLine); + $this->assertContains('*** sensitive parameters replaced ***', $logLine); } } diff --git a/tests/lib/Security/HasherTest.php b/tests/lib/Security/HasherTest.php index 86d4ef6ca01..c994b68f781 100644 --- a/tests/lib/Security/HasherTest.php +++ b/tests/lib/Security/HasherTest.php @@ -21,52 +21,74 @@ class HasherTest extends \Test\TestCase { */ public function versionHashProvider() { - return array( - array('asf32äà$$a.|3', null), - array('asf32äà$$a.|3|5', null), - array('1|2|3|4', array('version' => 1, 'hash' => '2|3|4')), - array('1|我看|这本书。 我看這本書', array('version' => 1, 'hash' => '我看|这本书。 我看這本書')) - ); + return [ + ['asf32äà$$a.|3', null], + ['asf32äà$$a.|3|5', null], + ['1|2|3|4', ['version' => 1, 'hash' => '2|3|4']], + ['1|我看|这本书。 我看這本書', ['version' => 1, 'hash' => '我看|这本书。 我看這本書']], + ['2|newhash', ['version' => 2, 'hash' => 'newhash']], + ]; } /** * @return array */ - public function allHashProviders() + public function hashProviders70_71() { - return array( + return [ // Valid SHA1 strings - array('password', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', true), - array('owncloud.com', '27a4643e43046c3569e33b68c1a4b15d31306d29', true), + ['password', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', true], + ['owncloud.com', '27a4643e43046c3569e33b68c1a4b15d31306d29', true], // Invalid SHA1 strings - array('InvalidString', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', false), - array('AnotherInvalidOne', '27a4643e43046c3569e33b68c1a4b15d31306d29', false), + ['InvalidString', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', false], + ['AnotherInvalidOne', '27a4643e43046c3569e33b68c1a4b15d31306d29', false], // Valid legacy password string with password salt "6Wow67q1wZQZpUUeI6G2LsWUu4XKx" - array('password', '$2a$08$emCpDEl.V.QwPWt5gPrqrOhdpH6ailBmkj2Hd2vD5U8qIy20HBe7.', true), - array('password', '$2a$08$yjaLO4ev70SaOsWZ9gRS3eRSEpHVsmSWTdTms1949mylxJ279hzo2', true), - array('password', '$2a$08$.jNRG/oB4r7gHJhAyb.mDupNUAqTnBIW/tWBqFobaYflKXiFeG0A6', true), - array('owncloud.com', '$2a$08$YbEsyASX/hXVNMv8hXQo7ezreN17T8Jl6PjecGZvpX.Ayz2aUyaZ2', true), - array('owncloud.com', '$2a$11$cHdDA2IkUP28oNGBwlL7jO/U3dpr8/0LIjTZmE8dMPA7OCUQsSTqS', true), - array('owncloud.com', '$2a$08$GH.UoIfJ1e.qeZ85KPqzQe6NR8XWRgJXWIUeE1o/j1xndvyTA1x96', true), + ['password', '$2a$08$emCpDEl.V.QwPWt5gPrqrOhdpH6ailBmkj2Hd2vD5U8qIy20HBe7.', true], + ['password', '$2a$08$yjaLO4ev70SaOsWZ9gRS3eRSEpHVsmSWTdTms1949mylxJ279hzo2', true], + ['password', '$2a$08$.jNRG/oB4r7gHJhAyb.mDupNUAqTnBIW/tWBqFobaYflKXiFeG0A6', true], + ['owncloud.com', '$2a$08$YbEsyASX/hXVNMv8hXQo7ezreN17T8Jl6PjecGZvpX.Ayz2aUyaZ2', true], + ['owncloud.com', '$2a$11$cHdDA2IkUP28oNGBwlL7jO/U3dpr8/0LIjTZmE8dMPA7OCUQsSTqS', true], + ['owncloud.com', '$2a$08$GH.UoIfJ1e.qeZ85KPqzQe6NR8XWRgJXWIUeE1o/j1xndvyTA1x96', true], // Invalid legacy passwords - array('password', '$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false), + ['password', '$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false], // Valid passwords "6Wow67q1wZQZpUUeI6G2LsWUu4XKx" - array('password', '1|$2a$05$ezAE0dkwk57jlfo6z5Pql.gcIK3ReXT15W7ITNxVS0ksfhO/4E4Kq', true), - array('password', '1|$2a$05$4OQmloFW4yTVez2MEWGIleDO9Z5G9tWBXxn1vddogmKBQq/Mq93pe', true), - array('password', '1|$2a$11$yj0hlp6qR32G9exGEXktB.yW2rgt2maRBbPgi3EyxcDwKrD14x/WO', true), - array('owncloud.com', '1|$2a$10$Yiss2WVOqGakxuuqySv5UeOKpF8d8KmNjuAPcBMiRJGizJXjA2bKm', true), - array('owncloud.com', '1|$2a$10$v9mh8/.mF/Ut9jZ7pRnpkuac3bdFCnc4W/gSumheQUi02Sr.xMjPi', true), - array('owncloud.com', '1|$2a$05$ST5E.rplNRfDCzRpzq69leRzsTGtY7k88h9Vy2eWj0Ug/iA9w5kGK', true), + ['password', '1|$2a$05$ezAE0dkwk57jlfo6z5Pql.gcIK3ReXT15W7ITNxVS0ksfhO/4E4Kq', true], + ['password', '1|$2a$05$4OQmloFW4yTVez2MEWGIleDO9Z5G9tWBXxn1vddogmKBQq/Mq93pe', true], + ['password', '1|$2a$11$yj0hlp6qR32G9exGEXktB.yW2rgt2maRBbPgi3EyxcDwKrD14x/WO', true], + ['owncloud.com', '1|$2a$10$Yiss2WVOqGakxuuqySv5UeOKpF8d8KmNjuAPcBMiRJGizJXjA2bKm', true], + ['owncloud.com', '1|$2a$10$v9mh8/.mF/Ut9jZ7pRnpkuac3bdFCnc4W/gSumheQUi02Sr.xMjPi', true], + ['owncloud.com', '1|$2a$05$ST5E.rplNRfDCzRpzq69leRzsTGtY7k88h9Vy2eWj0Ug/iA9w5kGK', true], // Invalid passwords - array('password', '0|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false), - array('password', '1|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false), - array('password', '2|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false), - ); + ['password', '0|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false], + ['password', '1|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false], + ['password', '2|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false], + ]; + } + + + /** + * @return array + */ + public function hashProviders72() { + return [ + // Valid ARGON2 hashes + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$T3JGcEkxVFNOVktNSjZUcg$4/hyLtSejxNgAuzSFFV/HLM3qRQKBwEtKw61qPN4zWA', true], + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$Zk52V24yNjMzTkhyYjJKOQ$vmqHkCaOD6SiiiFKD1GeKLg/D1ynWpyZbx4XA2yed34', true], + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$R1pRcUZKamVlNndBc3l5ag$ToRhR8SiZc7fGMpOYfSc5haS5t9+Y00rljPJV7+qLkM', true], + ['nextcloud.com', '2|$argon2i$v=19$m=1024,t=2,p=2$NC9xM0FFaDlzM01QM3kudg$fSfndwtO2mKMZlKdsT8XAtPY51cSS6pLSGS3xMqeJhg', true], + ['nextcloud.com', '2|$argon2i$v=19$m=1024,t=2,p=2$UjkvUjEuL042WWl1cmdHOA$FZivLkBdZnloQsW6qq/jqWK95JSYUHW9rwQC4Ff9GN0', true], + ['nextcloud.com', '2|$argon2i$v=19$m=1024,t=2,p=2$ZnpNdUlzMEpUTW40OVpiMQ$c+yHT9dtSYsjtVGsa7UKOsxxgQAMiUc781d9WsFACqs', true], + + //Invalid ARGON2 hashes + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$UjFDUDg3cjBvM3FkbXVOWQ$7Y5xqFxSERnYn+2+7WChUpWZWMa5BEIhSHWnDgJ71Jk', false], + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$ZUxSUi5aQklXdkcyMG1uVA$sYjoSvXg/CS/aS6Xnas/o9a/OPVcGKldzzmuiCD1Fxo', false], + ['password', '2|$argon2i$v=19$m=1024,t=2,p=2$ZHQ5V0xMOFNmUC52by44Sg$DzQFk3bJTX0J4PVGwW6rMvtnBJRalBkbtpDIXR+d4A0', false], + ]; } /** @var Hasher */ @@ -78,13 +100,12 @@ class HasherTest extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder(IConfig::class) - ->disableOriginalConstructor()->getMock(); + $this->config = $this->createMock(IConfig::class); $this->hasher = new Hasher($this->config); } - function testHash() { + public function testHash() { $hash = $this->hasher->hash('String To Hash'); $this->assertNotNull($hash); } @@ -92,16 +113,16 @@ class HasherTest extends \Test\TestCase { /** * @dataProvider versionHashProvider */ - function testSplitHash($hash, $expected) { - $relativePath = self::invokePrivate($this->hasher, 'splitHash', array($hash)); + public function testSplitHash($hash, $expected) { + $relativePath = self::invokePrivate($this->hasher, 'splitHash', [$hash]); $this->assertSame($expected, $relativePath); } /** - * @dataProvider allHashProviders + * @dataProvider hashProviders70_71 */ - function testVerify($password, $hash, $expected) { + public function testVerify($password, $hash, $expected) { $this->config ->expects($this->any()) ->method('getSystemValue') @@ -112,4 +133,33 @@ class HasherTest extends \Test\TestCase { $this->assertSame($expected, $result); } + /** + * @dataProvider hashProviders72 + */ + public function testVerifyArgon2i($password, $hash, $expected) { + if (!\defined('PASSWORD_ARGON2I')) { + $this->markTestSkipped('Need ARGON2 support to test ARGON2 hashes'); + } + + $result = $this->hasher->verify($password, $hash); + $this->assertSame($expected, $result); + } + + public function testUpgradeHashBlowFishToArgon2i() { + if (!\defined('PASSWORD_ARGON2I')) { + $this->markTestSkipped('Need ARGON2 support to test ARGON2 hashes'); + } + + $message = 'mysecret'; + + $blowfish = 1 . '|' . password_hash($message, PASSWORD_BCRYPT, []); + $argon2i = 2 . '|' . password_hash($message, PASSWORD_ARGON2I, []); + + $this->assertTrue($this->hasher->verify($message, $blowfish,$newHash)); + $this->assertTrue($this->hasher->verify($message, $argon2i)); + + $relativePath = self::invokePrivate($this->hasher, 'splitHash', [$newHash]); + + $this->assertFalse(password_needs_rehash($relativePath['hash'], PASSWORD_ARGON2I, [])); + } } diff --git a/tests/lib/User/UserTest.php b/tests/lib/User/UserTest.php index acb171d92e3..2a99e725ec7 100644 --- a/tests/lib/User/UserTest.php +++ b/tests/lib/User/UserTest.php @@ -816,7 +816,7 @@ class UserTest extends TestCase { ->method('triggerChange') ->with( 'enabled', - 'false' + false ); $user->setEnabled(false); diff --git a/version.php b/version.php index 9b735f21098..bd0de81ff33 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ // between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel // when updating major/minor version number. -$OC_Version = array(14, 0, 0, 1); +$OC_Version = array(14, 0, 0, 2); // The human readable string $OC_VersionString = '14.0.0 alpha'; |