diff options
author | raghunayyar <me@iraghu.com> | 2014-01-16 14:42:37 +0530 |
---|---|---|
committer | raghunayyar <me@iraghu.com> | 2014-01-16 14:42:37 +0530 |
commit | 775e08e0ee4125cc7b2a594771437686f6a21b56 (patch) | |
tree | 362f84449171898335dd3e8511b65c97c150e9e1 /apps/user_ldap | |
parent | 4687d2dd0bde3f689eb57c90d0c4341cd00991bd (diff) | |
parent | bd643c47f32ba6d7b3ba6a18ed1591aab0b81be8 (diff) | |
download | nextcloud-server-775e08e0ee4125cc7b2a594771437686f6a21b56.tar.gz nextcloud-server-775e08e0ee4125cc7b2a594771437686f6a21b56.zip |
Merge branch 'master' into core-em-to-px
Conflicts:
apps/files_sharing/css/public.css
apps/user_ldap/css/settings.css
core/css/multiselect.css
core/css/share.css
Diffstat (limited to 'apps/user_ldap')
123 files changed, 5273 insertions, 1461 deletions
diff --git a/apps/user_ldap/ajax/setConfiguration.php b/apps/user_ldap/ajax/setConfiguration.php index 94de8835fbc..84acecee5da 100644 --- a/apps/user_ldap/ajax/setConfiguration.php +++ b/apps/user_ldap/ajax/setConfiguration.php @@ -27,6 +27,18 @@ OCP\JSON::checkAppEnabled('user_ldap'); OCP\JSON::callCheck(); $prefix = $_POST['ldap_serverconfig_chooser']; + +// Checkboxes are not submitted, when they are unchecked. Set them manually. +// only legacy checkboxes (Advanced and Expert tab) need to be handled here, +// the Wizard-like tabs handle it on their own +$chkboxes = array('ldap_configuration_active', 'ldap_override_main_server', + 'ldap_nocase', 'ldap_turn_off_cert_check'); +foreach($chkboxes as $boxid) { + if(!isset($_POST[$boxid])) { + $_POST[$boxid] = 0; + } +} + $ldapWrapper = new OCA\user_ldap\lib\LDAP(); $connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, $prefix); $connection->setConfiguration($_POST); diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index 0b8e4ccfe20..a6375209611 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -30,6 +30,8 @@ $l=OC_L10N::get('user_ldap'); $ldapWrapper = new OCA\user_ldap\lib\LDAP(); $connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, '', null); +//needs to be true, otherwise it will also fail with an irritating message +$_POST['ldap_configuration_active'] = 1; if($connection->setConfiguration($_POST)) { //Configuration is okay if($connection->bind()) { @@ -41,5 +43,5 @@ if($connection->setConfiguration($_POST)) { } } else { OCP\JSON::error(array('message' - => $l->t('The configuration is invalid. Please look in the ownCloud log for further details.'))); + => $l->t('The configuration is invalid. Please have a look at the logs for further details.'))); } diff --git a/apps/user_ldap/ajax/wizard.php b/apps/user_ldap/ajax/wizard.php new file mode 100644 index 00000000000..ad75a384369 --- /dev/null +++ b/apps/user_ldap/ajax/wizard.php @@ -0,0 +1,102 @@ +<?php + +/** + * ownCloud - user_ldap + * + * @author Arthur Schiwon + * @copyright 2013 Arthur Schiwon blizzz@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +// Check user and app status +OCP\JSON::checkAdminUser(); +OCP\JSON::checkAppEnabled('user_ldap'); +OCP\JSON::callCheck(); + +$l=OC_L10N::get('user_ldap'); + +if(!isset($_POST['action'])) { + \OCP\JSON::error(array('message' => $l->t('No action specified'))); +} +$action = $_POST['action']; + + +if(!isset($_POST['ldap_serverconfig_chooser'])) { + \OCP\JSON::error(array('message' => $l->t('No configuration specified'))); +} +$prefix = $_POST['ldap_serverconfig_chooser']; + +$ldapWrapper = new OCA\user_ldap\lib\LDAP(); +$configuration = new \OCA\user_ldap\lib\Configuration($prefix); +$wizard = new \OCA\user_ldap\lib\Wizard($configuration, $ldapWrapper); + +switch($action) { + case 'guessPortAndTLS': + case 'guessBaseDN': + case 'determineGroupMemberAssoc': + case 'determineUserObjectClasses': + case 'determineGroupObjectClasses': + case 'determineGroupsForUsers': + case 'determineGroupsForGroups': + case 'determineAttributes': + case 'getUserListFilter': + case 'getLoginFilterMode': + case 'getUserLoginFilter': + case 'getUserFilterMode': + case 'getGroupFilter': + case 'getGroupFilterMode': + case 'countUsers': + case 'countGroups': + try { + $result = $wizard->$action(); + if($result !== false) { + OCP\JSON::success($result->getResultArray()); + exit; + } + } catch (\Exception $e) { + \OCP\JSON::error(array('message' => $e->getMessage())); + exit; + } + \OCP\JSON::error(); + exit; + break; + + case 'save': + $key = isset($_POST['cfgkey']) ? $_POST['cfgkey'] : false; + $val = isset($_POST['cfgval']) ? $_POST['cfgval'] : null; + if($key === false || is_null($val)) { + \OCP\JSON::error(array('message' => $l->t('No data specified'))); + exit; + } + $cfg = array($key => $val); + $setParameters = array(); + $configuration->setConfiguration($cfg, $setParameters); + if(!in_array($key, $setParameters)) { + \OCP\JSON::error(array('message' => $l->t($key. + ' Could not set configuration %s', $setParameters[0]))); + exit; + } + $configuration->saveConfiguration(); + //clear the cache on save + $connection = new \OCA\user_ldap\lib\Connection($ldapWrapper, $prefix); + $connection->clearCache(); + OCP\JSON::success(); + break; + default: + //TODO: return 4xx error + break; +} + diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index 9d6327181af..c2cd295523e 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -30,7 +30,7 @@ if(count($configPrefixes) === 1) { $ldapAccess = new OCA\user_ldap\lib\Access($connector, $ldapWrapper); $userBackend = new OCA\user_ldap\USER_LDAP($ldapAccess); $groupBackend = new OCA\user_ldap\GROUP_LDAP($ldapAccess); -} else { +} else if(count($configPrefixes) > 1) { $userBackend = new OCA\user_ldap\User_Proxy($configPrefixes, $ldapWrapper); $groupBackend = new OCA\user_ldap\Group_Proxy($configPrefixes, $ldapWrapper); } diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index 179451dad69..41770cf97b1 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -1,20 +1,5 @@ <?php -//from version 0.1 to 0.2 - -//ATTENTION -//Upgrade from ownCloud 3 (LDAP backend 0.1) to ownCloud 4.5 (LDAP backend 0.3) is not supported!! -//You must do upgrade to ownCloud 4.0 first! -//The upgrade stuff in the section from 0.1 to 0.2 is just to minimize the bad effects. - -//settings -$pw = OCP\Config::getAppValue('user_ldap', 'ldap_password'); -if(!is_null($pw)) { - $pwEnc = base64_encode($pw); - OCP\Config::setAppValue('user_ldap', 'ldap_agent_password', $pwEnc); - OC_Appconfig::deleteKey('user_ldap', 'ldap_password'); -} - //detect if we can switch on naming guidelines. We won't do it on conflicts. //it's a bit spaghetti, but hey. $state = OCP\Config::getSystemValue('ldapIgnoreNamingRules', 'unset'); @@ -22,75 +7,21 @@ if($state === 'unset') { OCP\Config::setSystemValue('ldapIgnoreNamingRules', false); } -//from version 0.2 to 0.3 (0.2.0.x dev version) -$objects = array('user', 'group'); - -$connector = new \OCA\user_ldap\lib\Connection(); -$userBE = new \OCA\user_ldap\USER_LDAP(); -$userBE->setConnector($connector); -$groupBE = new \OCA\user_ldap\GROUP_LDAP(); -$groupBE->setConnector($connector); - -foreach($objects as $object) { - $fetchDNSql = ' - SELECT `ldap_dn`, `owncloud_name`, `directory_uuid` - FROM `*PREFIX*ldap_'.$object.'_mapping`'; - $updateSql = ' - UPDATE `*PREFIX*ldap_'.$object.'_mapping` - SET `ldap_DN` = ?, `directory_uuid` = ? - WHERE `ldap_dn` = ?'; - - $query = OCP\DB::prepare($fetchDNSql); - $res = $query->execute(); - $DNs = $res->fetchAll(); - $updateQuery = OCP\DB::prepare($updateSql); - foreach($DNs as $dn) { - $newDN = escapeDN(mb_strtolower($dn['ldap_dn'], 'UTF-8')); - if(!empty($dn['directory_uuid'])) { - $uuid = $dn['directory_uuid']; - } elseif($object === 'user') { - $uuid = $userBE->getUUID($newDN); - //fix home folder to avoid new ones depending on the configuration - $userBE->getHome($dn['owncloud_name']); - } else { - $uuid = $groupBE->getUUID($newDN); - } - try { - $updateQuery->execute(array($newDN, $uuid, $dn['ldap_dn'])); - } catch(Exception $e) { - \OCP\Util::writeLog('user_ldap', - 'Could not update '.$object.' '.$dn['ldap_dn'].' in the mappings table. ', - \OCP\Util::WARN); - } - - } -} - -function escapeDN($dn) { - $aDN = ldap_explode_dn($dn, false); - unset($aDN['count']); - foreach($aDN as $key => $part) { - $value = substr($part, strpos($part, '=')+1); - $escapedValue = strtr($value, Array(','=>'\2c', '='=>'\3d', '+'=>'\2b', - '<'=>'\3c', '>'=>'\3e', ';'=>'\3b', '\\'=>'\5c', - '"'=>'\22', '#'=>'\23')); - $part = str_replace($part, $value, $escapedValue); - } - $dn = implode(',', $aDN); - - return $dn; -} - - -// SUPPORTED UPGRADE FROM Version 0.3 (ownCloud 4.5) to 0.4 (ownCloud 5) - -if(!isset($connector)) { - $connector = new \OCA\user_ldap\lib\Connection(); +$configPrefixes = OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(true); +$ldap = new OCA\user_ldap\lib\LDAP(); +foreach($configPrefixes as $config) { + $connection = new OCA\user_ldap\lib\Connection($ldap, $config); + $value = \OCP\Config::getAppValue('user_ldap', + $config.'ldap_uuid_attribute', 'auto'); + \OCP\Config::setAppValue('user_ldap', + $config.'ldap_uuid_user_attribute', $value); + \OCP\Config::setAppValue('user_ldap', + $config.'ldap_uuid_group_attribute', $value); + + $value = \OCP\Config::getAppValue('user_ldap', + $config.'ldap_expert_uuid_attr', 'auto'); + \OCP\Config::setAppValue('user_ldap', + $config.'ldap_expert_uuid_user_attr', $value); + \OCP\Config::setAppValue('user_ldap', + $config.'ldap_expert_uuid_group_attr', $value); } -//it is required, that connections do have ldap_configuration_active setting stored in the database -$connector->getConfiguration(); -$connector->saveConfiguration(); - -// we don't save it anymore, was a well-meant bad idea. Clean up database. -$query = OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ? AND `configkey` = ?'); -$query->execute(array('user_ldap' , 'homedir')); diff --git a/apps/user_ldap/appinfo/version b/apps/user_ldap/appinfo/version index 60a2d3e96c8..44bb5d1f743 100644 --- a/apps/user_ldap/appinfo/version +++ b/apps/user_ldap/appinfo/version @@ -1 +1 @@ -0.4.0
\ No newline at end of file +0.4.1
\ No newline at end of file diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css index 55ca503adf5..44d74926b37 100644 --- a/apps/user_ldap/css/settings.css +++ b/apps/user_ldap/css/settings.css @@ -1,3 +1,86 @@ +.table { + display: table; + width: 60%; +} + +.tablerow { + display: table-row; + white-space: nowrap; +} + +.tablerow input, .tablerow textarea { + width: 100% !important; +} + +.tablerow textarea { + height: 15px; +} + +.invisible { + visibility: hidden; +} + +.ldapSettingsTabs { + float: right !important; +} + +.ldapWizardControls { + width: 60%; + text-align: right; +} + +.ldapWizardInfo { + width: 100% !important; + height: 50px; + background-color: lightyellow; + border-radius: 0.5em; + padding: 0.6em 0.5em 0.4em !important; + margin-bottom: 0.3em; +} + +#ldapWizard1 .hostPortCombinator { + width: 60%; + display: table; +} + +#ldapWizard1 .hostPortCombinator div span { + width: 7%; + display: table-cell; + text-align: right; +} + +#ldapWizard1 .host { + width: 96.5% !important; +} + +.tableCellInput { + margin-left: -40%; + width: 100%; +} + +.tableCellLabel { + text-align: right; + padding-right: 25%; +} + +.ldapIndent { + margin-left: 50px; +} + +.ldapwarning { + margin-left: 1.4em; + color: #FF3B3B; +} + +.wizSpinner { + height: 15px; + margin: 0.3em; +} + +.ldapSettingControls { + margin-top: 3ex; +} + #ldap fieldset p label { width: 20%; max-width: 200px; @@ -8,20 +91,43 @@ padding-right: 5px; } +#ldap fieldset input[type=submit] { + width: auto; +} + #ldap fieldset input, #ldap fieldset textarea { - width: 60%; - display: inline-block; + width: 60%; } #ldap fieldset p input[type=checkbox] { vertical-align: bottom; } -.ldapIndent { - margin-left: 50px; +select[multiple=multiple] + button { + height: 28px; + padding-top: 6px !important; + min-width: 40%; + max-width: 40%; } .ldapwarning { margin-left: 22px; color: #FF3B3B; } +.ldap_config_state_indicator_sign { + display: inline-block; + height: 16px; + width: 16px; + vertical-align: text-bottom; +} +.ldap_config_state_indicator_sign.success { + background: #37ce02; + border-radius: 8px; +} +.ldap_config_state_indicator_sign.error { + background: #ce3702; +} + +.ldap_grey { + color: #777; +} diff --git a/apps/user_ldap/group_proxy.php b/apps/user_ldap/group_proxy.php index acc563c9532..4404bd7fe3a 100644 --- a/apps/user_ldap/group_proxy.php +++ b/apps/user_ldap/group_proxy.php @@ -67,16 +67,17 @@ class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface { * @param $gid string, the gid connected to the request * @param $method string, the method of the group backend that shall be called * @param $parameters an array of parameters to be passed + * @param $passOnWhen the result matches this variable * @return mixed, the result of the method or false */ - protected function callOnLastSeenOn($gid, $method, $parameters) { + protected function callOnLastSeenOn($gid, $method, $parameters, $passOnWhen) { $cacheKey = $this->getGroupCacheKey($gid);; $prefix = $this->getFromCache($cacheKey); //in case the uid has been found in the past, try this stored connection first if(!is_null($prefix)) { if(isset($this->backends[$prefix])) { $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters); - if(!$result) { + if($result === $passOnWhen) { //not found here, reset cache to null if group vanished //because sometimes methods return false with a reason $groupExists = call_user_func_array( diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js index 20d6f76dcd6..acf88ef58a4 100644 --- a/apps/user_ldap/js/settings.js +++ b/apps/user_ldap/js/settings.js @@ -30,6 +30,7 @@ var LdapConfiguration = { // assign the value $('#'+configkey).val(configvalue); }); + LdapWizard.init(); } } ); @@ -91,6 +92,7 @@ var LdapConfiguration = { $('#ldap_serverconfig_chooser option:selected').removeAttr('selected'); var html = '<option value="'+result.configPrefix+'" selected="selected">'+$('#ldap_serverconfig_chooser option').length+'. Server</option>'; $('#ldap_serverconfig_chooser option:last').before(html); + LdapWizard.init(); } else { OC.dialogs.alert( result.message, @@ -101,10 +103,24 @@ var LdapConfiguration = { ); }, + testConfiguration: function(onSuccess, onError) { + $.post( + OC.filePath('user_ldap','ajax','testConfiguration.php'), + $('#ldap').serialize(), + function (result) { + if (result.status === 'success') { + onSuccess(result); + } else { + onError(result); + } + } + ); + }, + clearMappings: function(mappingSubject) { $.post( OC.filePath('user_ldap','ajax','clearMappings.php'), - 'ldap_clear_mapping='+mappingSubject, + 'ldap_clear_mapping='+encodeURIComponent(mappingSubject), function(result) { if(result.status == 'success') { OC.dialogs.info( @@ -122,30 +138,779 @@ var LdapConfiguration = { } }; +var LdapWizard = { + checkPortInfoShown: false, + saveBlacklist: {}, + userFilterGroupSelectState: 'enable', + spinner: '<img class="wizSpinner" src="'+ OC.imagePath('core', 'loading.gif') +'">', + filterModeAssisted: 0, + filterModeRaw: 1, + + ajax: function(param, fnOnSuccess, fnOnError) { + $.post( + OC.filePath('user_ldap','ajax','wizard.php'), + param, + function(result) { + if(result.status == 'success') { + fnOnSuccess(result); + } else { + fnOnError(result); + } + } + ); + }, + + applyChanges: function (result) { + for (id in result.changes) { + LdapWizard.blacklistAdd(id); + if(id.indexOf('count') > 0) { + $('#'+id).text(result.changes[id]); + } else { + $('#'+id).val(result.changes[id]); + } + } + LdapWizard.functionalityCheck(); + + if($('#ldapSettings').tabs('option', 'active') == 0) { + LdapWizard.basicStatusCheck(); + } + }, + + basicStatusCheck: function() { + //criterias to continue from the first tab + // - host, port, user filter, agent dn, password, base dn + host = $('#ldap_host').val(); + port = $('#ldap_port').val(); + agent = $('#ldap_dn').val(); + pwd = $('#ldap_agent_password').val(); + base = $('#ldap_base').val(); + + if((host && port && base) && ((!agent && !pwd) || (agent && pwd))) { + $('.ldap_action_continue').removeAttr('disabled'); + $('#ldapSettings').tabs('option', 'disabled', []); + } else { + $('.ldap_action_continue').attr('disabled', 'disabled'); + $('#ldapSettings').tabs('option', 'disabled', [1, 2, 3, 4, 5]); + } + }, + + + blacklistAdd: function(id) { + obj = $('#'+id); + if(!(obj[0].hasOwnProperty('multiple') && obj[0]['multiple'] == true)) { + //no need to blacklist multiselect + LdapWizard.saveBlacklist[id] = true; + return true; + } + return false; + }, + + blacklistRemove: function(id) { + if(LdapWizard.saveBlacklist.hasOwnProperty(id)) { + delete LdapWizard.saveBlacklist[id]; + return true; + } + return false; + }, + + checkBaseDN: function() { + host = $('#ldap_host').val(); + port = $('#ldap_port').val(); + user = $('#ldap_dn').val(); + pass = $('#ldap_agent_password').val(); + + //FIXME: determine base dn with anonymous access + if(host && port && user && pass) { + param = 'action=guessBaseDN'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.showSpinner('#ldap_base'); + $('#ldap_base').prop('disabled', 'disabled'); + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + LdapWizard.hideSpinner('#ldap_base'); + if($('#ldap_base').val()) { + LdapWizard.hideInfoBox(); + } + $('#ldap_base').prop('disabled', false); + }, + function (result) { + LdapWizard.hideSpinner('#ldap_base'); + LdapWizard.showInfoBox('Please specify a Base DN'); + LdapWizard.showInfoBox('Could not determine Base DN'); + } + ); + } + }, + + checkPort: function() { + host = $('#ldap_host').val(); + port = $('#ldap_port').val(); + + if(host && !port) { + param = 'action=guessPortAndTLS'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.showSpinner('#ldap_port'); + $('#ldap_port').prop('disabled', 'disabled'); + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + LdapWizard.hideSpinner('#ldap_port'); + if($('#ldap_port').val()) { + LdapWizard.checkBaseDN(); + $('#ldap_port').prop('disabled', false); + LdapWizard.hideInfoBox(); + } + }, + function (result) { + LdapWizard.hideSpinner('#ldap_port'); + $('#ldap_port').prop('disabled', false); + LdapWizard.showInfoBox('Please specify the port'); + } + ); + } + }, + + composeFilter: function(type) { + subject = type.charAt(0).toUpperCase() + type.substr(1); + if(!$('#raw'+subject+'FilterContainer').hasClass('invisible')) { + //Raw filter editing, i.e. user defined filter, don't compose + return; + } + + if(type == 'user') { + action = 'getUserListFilter'; + } else if(type == 'login') { + action = 'getUserLoginFilter'; + } else if(type == 'group') { + action = 'getGroupFilter'; + } + + param = 'action='+action+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + if(type == 'user') { + LdapWizard.countUsers(); + } else if(type == 'group') { + LdapWizard.countGroups(); + LdapWizard.detectGroupMemberAssoc(); + } + }, + function (result) { + // error handling + } + ); + }, + + controlBack: function() { + curTabIndex = $('#ldapSettings').tabs('option', 'active'); + if(curTabIndex == 0) { + return; + } + $('#ldapSettings').tabs('option', 'active', curTabIndex - 1); + LdapWizard.controlUpdate(curTabIndex - 1); + }, + + controlContinue: function() { + curTabIndex = $('#ldapSettings').tabs('option', 'active'); + if(curTabIndex == 3) { + return; + } + $('#ldapSettings').tabs('option', 'active', 1 + curTabIndex); + LdapWizard.controlUpdate(curTabIndex + 1); + }, + + controlUpdate: function(nextTabIndex) { + if(nextTabIndex == 0) { + $('.ldap_action_back').addClass('invisible'); + $('.ldap_action_continue').removeClass('invisible'); + } else + if(nextTabIndex == 1) { + $('.ldap_action_back').removeClass('invisible'); + $('.ldap_action_continue').removeClass('invisible'); + } else + if(nextTabIndex == 2) { + $('.ldap_action_continue').removeClass('invisible'); + $('.ldap_action_back').removeClass('invisible'); + } else + if(nextTabIndex == 3) { + //now last tab + $('.ldap_action_back').removeClass('invisible'); + $('.ldap_action_continue').addClass('invisible'); + } + }, + + _countThings: function(method) { + param = 'action='+method+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.ajax(param, + function(result) { + LdapWizard.applyChanges(result); + }, + function (result) { + // error handling + } + ); + }, + + countGroups: function() { + LdapWizard._countThings('countGroups'); + }, + + countUsers: function() { + LdapWizard._countThings('countUsers'); + }, + + detectGroupMemberAssoc: function() { + param = 'action=determineGroupMemberAssoc'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.ajax(param, + function(result) { + //pure background story + }, + function (result) { + // error handling + } + ); + }, + + findAttributes: function() { + param = 'action=determineAttributes'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.showSpinner('#ldap_loginfilter_attributes'); + LdapWizard.ajax(param, + function(result) { + $('#ldap_loginfilter_attributes').find('option').remove(); + for (i in result.options['ldap_loginfilter_attributes']) { + //FIXME: move HTML into template + attr = result.options['ldap_loginfilter_attributes'][i]; + $('#ldap_loginfilter_attributes').append( + "<option value='"+attr+"'>"+attr+"</option>"); + } + LdapWizard.hideSpinner('#ldap_loginfilter_attributes'); + LdapWizard.applyChanges(result); + $('#ldap_loginfilter_attributes').multiselect('refresh'); + if($('#rawLoginFilterContainer').hasClass('invisible')) { + $('#ldap_loginfilter_attributes').multiselect('enable'); + } + LdapWizard.postInitLoginFilter(); + }, + function (result) { + //deactivate if no attributes found + $('#ldap_loginfilter_attributes').multiselect( + {noneSelectedText : 'No attributes found'}); + $('#ldap_loginfilter_attributes').multiselect('disable'); + LdapWizard.hideSpinner('#ldap_loginfilter_attributes'); + } + ); + }, + + findAvailableGroups: function(multisel, type) { + if(type != 'Users' && type != 'Groups') { + return false; + } + param = 'action=determineGroupsFor'+encodeURIComponent(type)+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.showSpinner('#'+multisel); + LdapWizard.ajax(param, + function(result) { + $('#'+multisel).find('option').remove(); + for (i in result.options[multisel]) { + //FIXME: move HTML into template + objc = result.options[multisel][i]; + $('#'+multisel).append("<option value='"+objc+"'>"+objc+"</option>"); + } + LdapWizard.hideSpinner('#'+multisel); + LdapWizard.applyChanges(result); + $('#'+multisel).multiselect('refresh'); + part = type.slice(0, -1); + if($('#raw' + part + 'FilterContainer').hasClass('invisible')) { + //enable only when raw filter editing is not turned on + $('#'+multisel).multiselect('enable'); + } + if(type === 'Users') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } + }, + function (result) { + LdapWizard.hideSpinner('#'+multisel); + $('#'+multisel).multiselect('disable'); + if(type == 'Users') { + LdapWizard.userFilterAvailableGroupsHasRun = true; + LdapWizard.postInitUserFilter(); + } + } + ); + }, + + findObjectClasses: function(multisel, type) { + if(type != 'User' && type != 'Group') { + return false; + } + param = 'action=determine'+encodeURIComponent(type)+'ObjectClasses'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.showSpinner('#'+multisel); + LdapWizard.ajax(param, + function(result) { + $('#'+multisel).find('option').remove(); + for (i in result.options[multisel]) { + //FIXME: move HTML into template + objc = result.options[multisel][i]; + $('#'+multisel).append("<option value='"+objc+"'>"+objc+"</option>"); + } + LdapWizard.hideSpinner('#'+multisel); + LdapWizard.applyChanges(result); + $('#'+multisel).multiselect('refresh'); + if(type === 'User') { + //required for initial save + filter = $('#ldap_userlist_filter').val(); + if(!filter) { + LdapWizard.saveMultiSelect(multisel, + $('#'+multisel).multiselect("getChecked")); + } + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } + }, + function (result) { + LdapWizard.hideSpinner('#'+multisel); + if(type == 'User') { + LdapWizard.userFilterObjectClassesHasRun = true; + LdapWizard.postInitUserFilter(); + } + //TODO: error handling + } + ); + }, + + functionalityCheck: function() { + //criterias to enable the connection: + // - host, port, basedn, user filter, login filter + host = $('#ldap_host').val(); + port = $('#ldap_port').val(); + base = $('#ldap_base').val(); + userfilter = $('#ldap_userlist_filter').val(); + loginfilter = $('#ldap_login_filter').val(); + + //FIXME: activates a manually deactivated configuration. + if(host && port && base && userfilter && loginfilter) { + LdapWizard.updateStatusIndicator(true); + if($('#ldap_configuration_active').is(':checked')) { + return; + } + if(!LdapWizard.isConfigurationActiveControlLocked) { + //avoids a manually deactivated connection will be activated + //upon opening the admin page + $('#ldap_configuration_active').prop('checked', true); + LdapWizard.save($('#ldap_configuration_active')[0]); + } + } else { + if($('#ldap_configuration_active').is(':checked')) { + $('#ldap_configuration_active').prop('checked', false); + LdapWizard.save($('#ldap_configuration_active')[0]); + } + LdapWizard.updateStatusIndicator(false); + } + }, + + hideInfoBox: function() { + if(LdapWizard.checkInfoShown) { + $('#ldapWizard1 .ldapWizardInfo').addClass('invisible'); + LdapWizard.checkInfoShown = false; + } + }, + + hideSpinner: function(id) { + $(id+' + .wizSpinner').remove(); + $(id + " + button").css('display', 'inline'); + }, + + isConfigurationActiveControlLocked: true, + + init: function() { + LdapWizard.basicStatusCheck(); + LdapWizard.functionalityCheck(); + LdapWizard.isConfigurationActiveControlLocked = false; + }, + + initGroupFilter: function() { + LdapWizard.regardFilterMode('Group'); + LdapWizard.findObjectClasses('ldap_groupfilter_objectclass', 'Group'); + LdapWizard.findAvailableGroups('ldap_groupfilter_groups', 'Groups'); + LdapWizard.countGroups(); + }, + + /** init login filter tab section **/ + + initLoginFilter: function() { + LdapWizard.regardFilterMode('Login'); + LdapWizard.findAttributes(); + }, + + postInitLoginFilter: function() { + if($('#rawLoginFilterContainer').hasClass('invisible')) { + LdapWizard.composeFilter('login'); + } + }, + + /** end of init user filter tab section **/ + + initMultiSelect: function(object, id, caption) { + object.multiselect({ + header: false, + selectedList: 9, + noneSelectedText: caption, + click: function(event, ui) { + LdapWizard.saveMultiSelect(id, + $('#'+id).multiselect("getChecked")); + } + }); + }, + + /** init user filter tab section **/ + + userFilterObjectClassesHasRun: false, + userFilterAvailableGroupsHasRun: false, + + initUserFilter: function() { + LdapWizard.userFilterObjectClassesHasRun = false; + LdapWizard.userFilterAvailableGroupsHasRun = false; + LdapWizard.regardFilterMode('User'); + LdapWizard.findObjectClasses('ldap_userfilter_objectclass', 'User'); + LdapWizard.findAvailableGroups('ldap_userfilter_groups', 'Users'); + }, + + postInitUserFilter: function() { + if(LdapWizard.userFilterObjectClassesHasRun + && LdapWizard.userFilterAvailableGroupsHasRun) { + LdapWizard.composeFilter('user'); + LdapWizard.countUsers(); + } + }, + + /** end of init user filter tab section **/ + + onTabChange: function(event, ui) { + newTabIndex = 0; + if(ui.newTab[0].id === '#ldapWizard2') { + LdapWizard.initUserFilter(); + newTabIndex = 1; + } else if(ui.newTab[0].id === '#ldapWizard3') { + LdapWizard.initLoginFilter(); + newTabIndex = 2; + } else if(ui.newTab[0].id === '#ldapWizard4') { + LdapWizard.initGroupFilter(); + newTabIndex = 3; + } + + curTabIndex = $('#ldapSettings').tabs('option', 'active'); + if(curTabIndex >= 0 && curTabIndex <= 3) { + LdapWizard.controlUpdate(newTabIndex); + } + }, + + processChanges: function(triggerObj) { + LdapWizard.hideInfoBox(); + + if(triggerObj.id == 'ldap_host' + || triggerObj.id == 'ldap_port' + || triggerObj.id == 'ldap_dn' + || triggerObj.id == 'ldap_agent_password') { + LdapWizard.checkPort(); + if($('#ldap_port').val()) { + //if Port is already set, check BaseDN + LdapWizard.checkBaseDN(); + } + } + + if(triggerObj.id == 'ldap_userlist_filter') { + LdapWizard.countUsers(); + } else if(triggerObj.id == 'ldap_group_filter') { + LdapWizard.countGroups(); + LdapWizard.detectGroupMemberAssoc(); + } + + if(triggerObj.id == 'ldap_loginfilter_username' + || triggerObj.id == 'ldap_loginfilter_email') { + LdapWizard.composeFilter('login'); + } + + if($('#ldapSettings').tabs('option', 'active') == 0) { + LdapWizard.basicStatusCheck(); + LdapWizard.functionalityCheck(); + } + }, + + regardFilterMode: function(subject) { + param = 'action=get'+encodeURIComponent(subject)+'FilterMode'+ + '&ldap_serverconfig_chooser='+ + encodeURIComponent($('#ldap_serverconfig_chooser').val()); + + LdapWizard.ajax(param, + function(result) { + property = 'ldap' + subject + 'FilterMode'; + mode = result.changes[property]; + if(mode == LdapWizard.filterModeRaw + && $('#raw'+subject+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+subject+'Filter'](); + } else if(mode == LdapWizard.filterModeAssisted + && !$('#raw'+subject+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+subject+'Filter'](); + } + }, + function (result) { + //on error case get back to default i.e. Assisted + if(!$('#raw'+subject+'FilterContainer').hasClass('invisible')) { + LdapWizard['toggleRaw'+subject+'Filter'](); + } + } + ); + }, + + save: function(inputObj) { + if(LdapWizard.blacklistRemove(inputObj.id)) { + return; + } + if($(inputObj).is('input[type=checkbox]') + && !$(inputObj).is(':checked')) { + val = 0; + } else { + val = $(inputObj).val(); + } + LdapWizard._save(inputObj, val); + }, + + saveMultiSelect: function(originalObj, resultObj) { + values = ''; + for(i = 0; i < resultObj.length; i++) { + values = values + "\n" + resultObj[i].value; + } + LdapWizard._save($('#'+originalObj)[0], $.trim(values)); + if(originalObj == 'ldap_userfilter_objectclass' + || originalObj == 'ldap_userfilter_groups') { + LdapWizard.composeFilter('user'); + //when user filter is changed afterwards, login filter needs to + //be adjusted, too + LdapWizard.composeFilter('login'); + } else if(originalObj == 'ldap_loginfilter_attributes') { + LdapWizard.composeFilter('login'); + } else if(originalObj == 'ldap_groupfilter_objectclass' + || originalObj == 'ldap_groupfilter_groups') { + LdapWizard.composeFilter('group'); + } + }, + + _save: function(object, value) { + param = 'cfgkey='+encodeURIComponent(object.id)+ + '&cfgval='+encodeURIComponent(value)+ + '&action=save'+ + '&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val(); + + $.post( + OC.filePath('user_ldap','ajax','wizard.php'), + param, + function(result) { + if(result.status == 'success') { + LdapWizard.processChanges(object); + } else { +// alert('Oooooooooooh :('); + } + } + ); + }, + + showInfoBox: function(text) { + $('#ldapWizard1 .ldapWizardInfo').text(t('user_ldap', text)); + $('#ldapWizard1 .ldapWizardInfo').removeClass('invisible'); + LdapWizard.checkInfoShown = true; + }, + + showSpinner: function(id) { + if($(id + ' + .wizSpinner').length == 0) { + $(LdapWizard.spinner).insertAfter($(id)); + $(id + " + img + button").css('display', 'none'); + } + }, + + toggleRawFilter: function(container, moc, mg, stateVar, modeKey) { + //moc = multiselect objectclass + //mg = mutliselect groups + if($(container).hasClass('invisible')) { + $(container).removeClass('invisible'); + $(moc).multiselect('disable'); + if($(mg).multiselect().attr('disabled') == 'disabled') { + LdapWizard[stateVar] = 'disable'; + } else { + LdapWizard[stateVar] = 'enable'; + } + $(mg).multiselect('disable'); + LdapWizard._save({ id: modeKey }, LdapWizard.filterModeRaw); + } else { + $(container).addClass('invisible'); + $(mg).multiselect(LdapWizard[stateVar]); + $(moc).multiselect('enable'); + LdapWizard._save({ id: modeKey }, LdapWizard.filterModeAssisted); + if(moc.indexOf('user') >= 0) { + LdapWizard.blacklistRemove('ldap_userlist_filter'); + LdapWizard.composeFilter('user'); + } else { + LdapWizard.blacklistRemove('ldap_group_filter'); + LdapWizard.composeFilter('group'); + } + } + }, + + toggleRawGroupFilter: function() { + LdapWizard.blacklistRemove('ldap_group_filter'); + LdapWizard.toggleRawFilter('#rawGroupFilterContainer', + '#ldap_groupfilter_objectclass', + '#ldap_groupfilter_groups', + 'groupFilterGroupSelectState', + 'ldapGroupFilterMode' + ); + }, + + toggleRawLoginFilter: function() { + LdapWizard.blacklistRemove('ldap_login_filter'); + container = '#rawLoginFilterContainer'; + if($(container).hasClass('invisible')) { + $(container).removeClass('invisible'); + action = 'disable'; + property = 'disabled'; + mode = LdapWizard.filterModeRaw; + } else { + $(container).addClass('invisible'); + action = 'enable'; + property = false; + mode = LdapWizard.filterModeAssisted; + } + $('#ldap_loginfilter_attributes').multiselect(action); + $('#ldap_loginfilter_email').prop('disabled', property); + $('#ldap_loginfilter_username').prop('disabled', property); + LdapWizard._save({ id: 'ldapLoginFilterMode' }, mode); + if(action == 'enable') { + LdapWizard.composeFilter('login'); + } + }, + + toggleRawUserFilter: function() { + LdapWizard.blacklistRemove('ldap_userlist_filter'); + LdapWizard.toggleRawFilter('#rawUserFilterContainer', + '#ldap_userfilter_objectclass', + '#ldap_userfilter_groups', + 'userFilterGroupSelectState', + 'ldapUserFilterMode' + ); + }, + + updateStatusIndicator: function(isComplete) { + if(isComplete) { + LdapConfiguration.testConfiguration( + //onSuccess + function(result) { + $('.ldap_config_state_indicator').text(t('user_ldap', + 'Configuration OK' + )); + $('.ldap_config_state_indicator').addClass('ldap_grey'); + $('.ldap_config_state_indicator_sign').removeClass('error'); + $('.ldap_config_state_indicator_sign').addClass('success'); + }, + //onError + function(result) { + $('.ldap_config_state_indicator').text(t('user_ldap', + 'Configuration incorrect' + )); + $('.ldap_config_state_indicator').removeClass('ldap_grey'); + $('.ldap_config_state_indicator_sign').addClass('error'); + $('.ldap_config_state_indicator_sign').removeClass('success'); + } + ); + } else { + $('.ldap_config_state_indicator').text(t('user_ldap', + 'Configuration incomplete' + )); + $('.ldap_config_state_indicator').removeClass('ldap_grey'); + $('.ldap_config_state_indicator_sign').removeClass('error'); + $('.ldap_config_state_indicator_sign').removeClass('success'); + } + } +}; + $(document).ready(function() { $('#ldapAdvancedAccordion').accordion({ heightStyle: 'content', animate: 'easeInOutCirc'}); - $('#ldapSettings').tabs(); - $('#ldap_submit').button(); - $('#ldap_action_test_connection').button(); + $('#ldapSettings').tabs({ beforeActivate: LdapWizard.onTabChange }); + $('.ldap_submit').button(); + $('.ldap_action_test_connection').button(); $('#ldap_action_delete_configuration').button(); + LdapWizard.initMultiSelect($('#ldap_userfilter_groups'), + 'ldap_userfilter_groups', + t('user_ldap', 'Select groups')); + LdapWizard.initMultiSelect($('#ldap_userfilter_objectclass'), + 'ldap_userfilter_objectclass', + t('user_ldap', 'Select object classes')); + LdapWizard.initMultiSelect($('#ldap_loginfilter_attributes'), + 'ldap_loginfilter_attributes', + t('user_ldap', 'Select attributes')); + LdapWizard.initMultiSelect($('#ldap_groupfilter_groups'), + 'ldap_groupfilter_groups', + t('user_ldap', 'Select groups')); + LdapWizard.initMultiSelect($('#ldap_groupfilter_objectclass'), + 'ldap_groupfilter_objectclass', + t('user_ldap', 'Select object classes')); + $('.lwautosave').change(function() { LdapWizard.save(this); }); + $('#toggleRawUserFilter').click(LdapWizard.toggleRawUserFilter); + $('#toggleRawGroupFilter').click(LdapWizard.toggleRawGroupFilter); + $('#toggleRawLoginFilter').click(LdapWizard.toggleRawLoginFilter); LdapConfiguration.refreshConfig(); - $('#ldap_action_test_connection').click(function(event){ + $('.ldap_action_continue').click(function(event) { event.preventDefault(); - $.post( - OC.filePath('user_ldap','ajax','testConfiguration.php'), - $('#ldap').serialize(), - function (result) { - if (result.status === 'success') { - OC.dialogs.alert( - result.message, - t('user_ldap', 'Connection test succeeded') - ); - } else { - OC.dialogs.alert( - result.message, - t('user_ldap', 'Connection test failed') - ); - } + LdapWizard.controlContinue(); + }); + $('.ldap_action_back').click(function(event) { + event.preventDefault(); + LdapWizard.controlBack(); + }); + $('.ldap_action_test_connection').click(function(event){ + event.preventDefault(); + LdapConfiguration.testConfiguration( + //onSuccess + function(result) { + OC.dialogs.alert( + result.message, + t('user_ldap', 'Connection test succeeded') + ); + }, + //onError + function(result) { + OC.dialogs.alert( + result.message, + t('user_ldap', 'Connection test failed') + ); } ); }); @@ -163,18 +928,18 @@ $(document).ready(function() { ); }); - $('#ldap_submit').click(function(event) { + $('.ldap_submit').click(function(event) { event.preventDefault(); $.post( OC.filePath('user_ldap','ajax','setConfiguration.php'), $('#ldap').serialize(), function (result) { - bgcolor = $('#ldap_submit').css('background'); + bgcolor = $('.ldap_submit').css('background'); if (result.status === 'success') { //the dealing with colors is a but ugly, but the jQuery version in use has issues with rgba colors - $('#ldap_submit').css('background', '#fff'); - $('#ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() { - $('#ldap_submit').css('background', bgcolor); + $('.ldap_submit').css('background', '#fff'); + $('.ldap_submit').effect('highlight', {'color':'#A8FA87'}, 5000, function() { + $('.ldap_submit').css('background', bgcolor); }); //update the Label in the config chooser caption = $('#ldap_serverconfig_chooser option:selected:first').text(); @@ -184,9 +949,9 @@ $(document).ready(function() { $('#ldap_serverconfig_chooser option:selected:first').text(caption); } else { - $('#ldap_submit').css('background', '#fff'); - $('#ldap_submit').effect('highlight', {'color':'#E97'}, 5000, function() { - $('#ldap_submit').css('background', bgcolor); + $('.ldap_submit').css('background', '#fff'); + $('.ldap_submit').effect('highlight', {'color':'#E97'}, 5000, function() { + $('.ldap_submit').css('background', bgcolor); }); } } diff --git a/apps/user_ldap/l10n/ach.php b/apps/user_ldap/l10n/ach.php new file mode 100644 index 00000000000..2371ee70593 --- /dev/null +++ b/apps/user_ldap/l10n/ach.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/ady.php b/apps/user_ldap/l10n/ady.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/ady.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/af.php b/apps/user_ldap/l10n/af.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/af.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/af_ZA.php b/apps/user_ldap/l10n/af_ZA.php index 32feab61b49..130e471e0e4 100644 --- a/apps/user_ldap/l10n/af_ZA.php +++ b/apps/user_ldap/l10n/af_ZA.php @@ -1,6 +1,8 @@ <?php $TRANSLATIONS = array( -"Password" => "Wagwoord", -"Help" => "Hulp" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Help" => "Hulp", +"Password" => "Wagwoord" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ak.php b/apps/user_ldap/l10n/ak.php new file mode 100644 index 00000000000..dd5f66761d6 --- /dev/null +++ b/apps/user_ldap/l10n/ak.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=n > 1;"; diff --git a/apps/user_ldap/l10n/ar.php b/apps/user_ldap/l10n/ar.php index 3dd88eb2655..2b0cbbd75a5 100644 --- a/apps/user_ldap/l10n/ar.php +++ b/apps/user_ldap/l10n/ar.php @@ -2,7 +2,13 @@ $TRANSLATIONS = array( "Deletion failed" => "فشل الحذف", "Error" => "خطأ", +"Select groups" => "إختر مجموعة", +"_%s group found_::_%s groups found_" => array("","","","","",""), +"_%s user found_::_%s users found_" => array("","","","","",""), +"Save" => "حفظ", +"Help" => "المساعدة", +"Host" => "المضيف", "Password" => "كلمة المرور", -"Help" => "المساعدة" +"Back" => "رجوع" ); $PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"; diff --git a/apps/user_ldap/l10n/az.php b/apps/user_ldap/l10n/az.php new file mode 100644 index 00000000000..bba52d53a1a --- /dev/null +++ b/apps/user_ldap/l10n/az.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array("") +); +$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/be.php b/apps/user_ldap/l10n/be.php new file mode 100644 index 00000000000..089b92efe7b --- /dev/null +++ b/apps/user_ldap/l10n/be.php @@ -0,0 +1,7 @@ +<?php +$TRANSLATIONS = array( +"Error" => "Памылка", +"_%s group found_::_%s groups found_" => array("","","",""), +"_%s user found_::_%s users found_" => array("","","","") +); +$PLURAL_FORMS = "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/bg_BG.php b/apps/user_ldap/l10n/bg_BG.php index b750884e9de..588f6d448b4 100644 --- a/apps/user_ldap/l10n/bg_BG.php +++ b/apps/user_ldap/l10n/bg_BG.php @@ -1,7 +1,10 @@ <?php $TRANSLATIONS = array( "Error" => "Грешка", -"Password" => "Парола", -"Help" => "Помощ" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Запис", +"Help" => "Помощ", +"Password" => "Парола" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php index 407d5f509ec..0b43a27df94 100644 --- a/apps/user_ldap/l10n/bn_BD.php +++ b/apps/user_ldap/l10n/bn_BD.php @@ -1,19 +1,18 @@ <?php $TRANSLATIONS = array( "Error" => "সমস্যা", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "সংরক্ষণ", +"Help" => "সহায়িকা", "Host" => "হোস্ট", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://", -"Base DN" => "ভিত্তি DN", -"You can specify Base DN for users and groups in the Advanced tab" => "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।", +"Port" => "পোর্ট", "User DN" => "ব্যবহারকারি DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", "Password" => "কূটশব্দ", "For anonymous access, leave DN and Password empty." => "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।", -"User Login Filter" => "ব্যবহারকারির প্রবেশ ছাঁকনী", -"User List Filter" => "ব্যবহারকারী তালিকা ছাঁকনী", -"Group Filter" => "গোষ্ঠী ছাঁকনী", -"Port" => "পোর্ট", -"Use TLS" => "TLS ব্যবহার কর", +"You can specify Base DN for users and groups in the Advanced tab" => "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।", "Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)", "Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।", "in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।", @@ -23,7 +22,6 @@ $TRANSLATIONS = array( "Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে", "Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন", "in bytes" => "বাইটে", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।", -"Help" => "সহায়িকা" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/bs.php b/apps/user_ldap/l10n/bs.php new file mode 100644 index 00000000000..7a64be44e0d --- /dev/null +++ b/apps/user_ldap/l10n/bs.php @@ -0,0 +1,7 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Spasi" +); +$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php index 455ad62d84c..2ebaa7d7a5a 100644 --- a/apps/user_ldap/l10n/ca.php +++ b/apps/user_ldap/l10n/ca.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Ha fallat en eliminar la configuració del servidor", "The configuration is valid and the connection could be established!" => "La configuració és vàlida i s'ha pogut establir la comunicació!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuració és vàlida, però ha fallat el Bind. Comproveu les credencials i l'arranjament del servidor.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuració no és vàlida. Per més detalls mireu al registre d'ownCloud.", +"The configuration is invalid. Please have a look at the logs for further details." => "La configuració no és vàlida. Per més detalls mireu al registre del sistema.", +"No action specified" => "No heu especificat cap acció", +"No configuration specified" => "No heu especificat cap configuració", +"No data specified" => "No heu especificat cap dada", +" Could not set configuration %s" => "No s'ha pogut establir la configuració %s", "Deletion failed" => "Eliminació fallida", "Take over settings from recent server configuration?" => "Voleu prendre l'arranjament de la configuració actual del servidor?", "Keep settings?" => "Voleu mantenir la configuració?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "s'han eliminat els mapatges", "Success" => "Èxit", "Error" => "Error", +"Configuration OK" => "Configuració correcte", +"Configuration incorrect" => "Configuració incorrecte", +"Configuration incomplete" => "Configuració incompleta", +"Select groups" => "Selecciona els grups", +"Select object classes" => "Seleccioneu les classes dels objectes", +"Select attributes" => "Seleccioneu els atributs", "Connection test succeeded" => "La prova de connexió ha reeixit", "Connection test failed" => "La prova de connexió ha fallat", "Do you really want to delete the current Server Configuration?" => "Voleu eliminar la configuració actual del servidor?", "Confirm Deletion" => "Confirma l'eliminació", -"<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>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Avís:</b> El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.", -"Server configuration" => "Configuració del servidor", +"_%s group found_::_%s groups found_" => array("S'ha trobat %s grup","S'han trobat %s grups"), +"_%s user found_::_%s users found_" => array("S'ha trobat %s usuari","S'han trobat %s usuaris"), +"Invalid Host" => "Ordinador central no vàlid", +"Could not find the desired feature" => "La característica desitjada no s'ha trobat", +"Save" => "Desa", +"Test Configuration" => "Comprovació de la configuració", +"Help" => "Ajuda", +"Limit the access to %s to groups meeting this criteria:" => "Limita l'accés a %s grups que compleixin amb el criteri:", +"only those object classes:" => "només aquestes classes d'objecte:", +"only from those groups:" => "només d'aquests grups", +"Edit raw filter instead" => "Edita filtre raw", +"Raw LDAP filter" => "Filtre raw LDAP", +"The filter specifies which LDAP groups shall have access to the %s instance." => "El filtre especifica quins grups LDAP haurien de tenir accés a la instància %s.", +"groups found" => "grups trobats", +"What attribute shall be used as login name:" => "Quin atribut s'hauria d'utilitzar com a nom per a l'acreditació:", +"LDAP Username:" => "Nom d'usuari LDAP:", +"LDAP Email Address:" => "Adreça de correu electrònic LDAP:", +"Other Attributes:" => "Altres atributs:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Defineix el filtre a aplicar quan s'intenta iniciar la sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió. Per exemple: \"uid=%%uid\"", "Add Server Configuration" => "Afegeix la configuració del servidor", "Host" => "Equip remot", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podeu ometre el protocol, excepte si requeriu SSL. Llavors comenceu amb ldaps://", -"Base DN" => "DN Base", -"One Base DN per line" => "Una DN Base per línia", -"You can specify Base DN for users and groups in the Advanced tab" => "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat", +"Port" => "Port", "User DN" => "DN Usuari", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "La DN de l'usuari client amb la que s'haurà de fer, per exemple uid=agent,dc=exemple,dc=com. Per un accés anònim, deixeu la DN i la contrasenya en blanc.", "Password" => "Contrasenya", "For anonymous access, leave DN and Password empty." => "Per un accés anònim, deixeu la DN i la contrasenya en blanc.", -"User Login Filter" => "Filtre d'inici de sessió d'usuari", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Defineix el filtre a aplicar quan s'intenta iniciar la sessió. %%uid reemplaça el nom d'usuari en l'acció d'inici de sessió. Per exemple: \"uid=%%uid\"", -"User List Filter" => "Llista de filtres d'usuari", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Defineix el filtre a aplicar quan es mostren usuaris (no textos variables). Per exemple: \"objectClass=person\"", -"Group Filter" => "Filtre de grup", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Defineix el filtre a aplicar quan es mostren grups (no textos variables). Per exemple: \"objectClass=posixGroup\"", +"One Base DN per line" => "Una DN Base per línia", +"You can specify Base DN for users and groups in the Advanced tab" => "Podeu especificar DN Base per usuaris i grups a la pestanya Avançat", +"Limit the access to %s to users meeting this criteria:" => "Limita l'accés a %s usuaris que compleixin amb el criteri:", +"The filter specifies which LDAP users shall have access to the %s instance." => "El filtre especifica quins usuaris LDAP haurien de tenir accés a la instància %s", +"users found" => "usuaris trobats", +"Back" => "Enrera", +"Continue" => "Continua", +"<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>Avís:</b> Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Avís:</b> El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.", "Connection Settings" => "Arranjaments de connexió", "Configuration Active" => "Configuració activa", "When unchecked, this configuration will be skipped." => "Si està desmarcat, aquesta configuració s'ometrà.", -"Port" => "Port", "Backup (Replica) Host" => "Màquina de còpia de serguretat (rèplica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Afegiu una màquina de còpia de seguretat opcional. Ha de ser una rèplica del servidor LDAP/AD principal.", "Backup (Replica) Port" => "Port de la còpia de seguretat (rèplica)", "Disable Main Server" => "Desactiva el servidor principal", "Only connect to the replica server." => "Connecta només al servidor rèplica.", -"Use TLS" => "Usa TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "No ho useu adicionalment per a conexions LDAPS, fallarà.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)", "Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atribut nom d'usuari intern:", "Override UUID detection" => "Sobrescriu la detecció UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Per defecte, owncloud autodetecta l'atribut UUID. L'atribut UUID s'utilitza per identificar usuaris i grups de forma indubtable. També el nom d'usuari intern es crearà en base a la UUIS, si no heu especificat res diferent a dalt. Podeu sobreescriure l'arranjament i passar l'atribut que desitgeu. Heu d'assegurar-vos que l'atribut que escolliu pot ser recollit tant pels usuaris com pels grups i que és únic. Deixeu-ho en blanc si preferiu el comportament per defecte. els canvis s'aplicaran als usuaris i grups LDAP mapats de nou (afegits).", -"UUID Attribute:" => "Atribut UUID:", +"UUID Attribute for Users:" => "Atribut UUID per Usuaris:", +"UUID Attribute for Groups:" => "Atribut UUID per Grups:", "Username-LDAP User Mapping" => "Mapatge d'usuari Nom d'usuari-LDAP", "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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." => "Els noms d'usuari s'usen per desar i assignar (meta)dades. Per tal d'identificar amb precisió i reconèixer els usuaris, cada usuari LDAP tindrà un nom d'usuari intern. Això requereix mapatge del nom d'usuari a l'usuari LDAP. El nom d'usuari creat es mapa a la UUID de l'usuari LDAP. A més, la DN es posa a la memòria de cau per reduir la interacció LDAP, però no s'usa per identificació. En cas que la DN canvïi, els canvis es trobaran. El nom d'usuari intern s'usa a tot arreu. Si esborreu els mapatges quedaran sobrants a tot arreu. Esborrar els mapatges no és sensible a la configuració, afecta a totes les configuracions LDAP! No esborreu mai els mapatges en un entorn de producció, només en un estadi de prova o experimental.", "Clear Username-LDAP User Mapping" => "Elimina el mapatge d'usuari Nom d'usuari-LDAP", -"Clear Groupname-LDAP Group Mapping" => "Elimina el mapatge de grup Nom de grup-LDAP", -"Test Configuration" => "Comprovació de la configuració", -"Help" => "Ajuda" +"Clear Groupname-LDAP Group Mapping" => "Elimina el mapatge de grup Nom de grup-LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php index 9109a8c710a..6bcf364ab33 100644 --- a/apps/user_ldap/l10n/cs_CZ.php +++ b/apps/user_ldap/l10n/cs_CZ.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Selhalo smazání nastavení serveru", "The configuration is valid and the connection could be established!" => "Nastavení je v pořádku a spojení bylo navázáno.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurace je v pořádku, ale spojení selhalo. Zkontrolujte, prosím, nastavení serveru a přihlašovací údaje.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavení je neplatné. Zkontrolujte, prosím, záznamy ownCloud pro další podrobnosti.", +"The configuration is invalid. Please have a look at the logs for further details." => "Konfigurace je neplatná. Pro bližší informace se podívejte do logu.", +"No action specified" => "Neurčena žádná akce", +"No configuration specified" => "Neurčena žádná konfigurace", +"No data specified" => "Neurčena žádná data", +" Could not set configuration %s" => "Nelze nastavit konfiguraci %s", "Deletion failed" => "Mazání selhalo", "Take over settings from recent server configuration?" => "Převzít nastavení z nedávné konfigurace serveru?", "Keep settings?" => "Ponechat nastavení?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "mapování zrušeno", "Success" => "Úspěch", "Error" => "Chyba", +"Configuration OK" => "Konfigurace v pořádku", +"Configuration incorrect" => "Nesprávná konfigurace", +"Configuration incomplete" => "Nekompletní konfigurace", +"Select groups" => "Vyberte skupiny", +"Select object classes" => "Vyberte objektové třídy", +"Select attributes" => "Vyberte atributy", "Connection test succeeded" => "Test spojení byl úspěšný", "Connection test failed" => "Test spojení selhal", "Do you really want to delete the current Server Configuration?" => "Opravdu si přejete smazat současné nastavení serveru?", "Confirm Deletion" => "Potvrdit smazá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>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 vašeho systémového administrátora o zakázání jednoho z nich.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému, aby jej nainstaloval.", -"Server configuration" => "Nastavení serveru", +"_%s group found_::_%s groups found_" => array("nalezena %s skupina","nalezeny %s skupiny","nalezeno %s skupin"), +"_%s user found_::_%s users found_" => array("nalezen %s uživatel","nalezeni %s uživatelé","nalezeno %s uživatelů"), +"Invalid Host" => "Neplatný hostitel", +"Could not find the desired feature" => "Nelze nalézt požadovanou vlastnost", +"Save" => "Uložit", +"Test Configuration" => "Vyzkoušet nastavení", +"Help" => "Nápověda", +"Limit the access to %s to groups meeting this criteria:" => "Omezit přístup k %s skupinám uživatelů splňujícím tyto podmínky:", +"only those object classes:" => "pouze tyto objektové třídy:", +"only from those groups:" => "pouze z těchto skupin:", +"Edit raw filter instead" => "Edituj filtr přímo", +"Raw LDAP filter" => "Původní filtr LDAP", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", +"groups found" => "nalezené skupiny", +"What attribute shall be used as login name:" => "Který atribut má být použit jako přihlašovací jméno:", +"LDAP Username:" => "LDAP uživatelské jméno:", +"LDAP Email Address:" => "LDAP e-mailová adresa:", +"Other Attributes:" => "Další atributy:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Určuje použitý filtr při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení. Příklad: \"uid=%%uid\"", "Add Server Configuration" => "Přidat nastavení serveru", "Host" => "Počítač", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Můžete vynechat protokol, vyjma pokud požadujete SSL. Tehdy začněte s ldaps://", -"Base DN" => "Základní DN", -"One Base DN per line" => "Jedna základní DN na řádku", -"You can specify Base DN for users and groups in the Advanced tab" => "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny", +"Port" => "Port", "User DN" => "Uživatelské DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN klientského uživatele, ke kterému tvoříte vazbu, např. uid=agent,dc=example,dc=com. Pro anonymní přístup ponechte DN a heslo prázdné.", "Password" => "Heslo", "For anonymous access, leave DN and Password empty." => "Pro anonymní přístup ponechte údaje DN and heslo prázdné.", -"User Login Filter" => "Filtr přihlášení uživatelů", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Určuje použitý filtr při pokusu o přihlášení. %%uid nahrazuje uživatelské jméno v činnosti přihlášení. Příklad: \"uid=%%uid\"", -"User List Filter" => "Filtr seznamu uživatelů", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Určuje použitý filtr při získávání uživatelů (bez zástupných znaků). Příklad: \"objectClass=person\"", -"Group Filter" => "Filtr skupin", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Určuje použitý filtr při získávání skupin (bez zástupných znaků). Příklad: \"objectClass=posixGroup\"", +"One Base DN per line" => "Jedna základní DN na řádku", +"You can specify Base DN for users and groups in the Advanced tab" => "V rozšířeném nastavení můžete určit základní DN pro uživatele a skupiny", +"Limit the access to %s to users meeting this criteria:" => "Omezit přístup k %s uživatelům splňujícím tyto podmínky:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Filtr určuje, kteří uživatelé LDAP mají mít přístup k instanci %s.", +"users found" => "nalezení uživatelé", +"Back" => "Zpět", +"Continue" => "Pokračovat", +"<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 vašeho systémového administrátora o zakázání jednoho z nich.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému, aby jej nainstaloval.", "Connection Settings" => "Nastavení spojení", "Configuration Active" => "Nastavení aktivní", "When unchecked, this configuration will be skipped." => "Pokud není zaškrtnuto, bude toto nastavení přeskočeno.", -"Port" => "Port", "Backup (Replica) Host" => "Záložní (kopie) hostitel", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadejte volitelného záložního hostitele. Musí to být kopie hlavního serveru LDAP/AD.", "Backup (Replica) Port" => "Záložní (kopie) port", "Disable Main Server" => "Zakázat hlavní server", "Only connect to the replica server." => "Připojit jen k záložnímu serveru.", -"Use TLS" => "Použít TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívejte v kombinaci s LDAPS spojením, nebude to fungovat.", "Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)", "Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Nedoporučuje se, určeno pouze k testovacímu použití. Pokud spojení funguje jen s touto volbou, importujte SSL certifikát vašeho LDAP serveru na server %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atribut interního uživatelského jména:", "Override UUID detection" => "Nastavit ručně UUID atribut", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut, který sami zvolíte. Musíte se ale ujistit, že atribut, který vyberete, bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.", -"UUID Attribute:" => "Atribut UUID:", +"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 a 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ány 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ý uživatel z LDAP 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. Navíc je cachována DN pro zmenš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é konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, jen 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", -"Test Configuration" => "Vyzkoušet nastavení", -"Help" => "Nápověda" +"Clear Groupname-LDAP Group Mapping" => "Zrušit mapování názvů skupin LDAPu" ); $PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/cy_GB.php b/apps/user_ldap/l10n/cy_GB.php index 71a38fad25d..65a78432c75 100644 --- a/apps/user_ldap/l10n/cy_GB.php +++ b/apps/user_ldap/l10n/cy_GB.php @@ -2,7 +2,10 @@ $TRANSLATIONS = array( "Deletion failed" => "Methwyd dileu", "Error" => "Gwall", -"Password" => "Cyfrinair", -"Help" => "Cymorth" +"_%s group found_::_%s groups found_" => array("","","",""), +"_%s user found_::_%s users found_" => array("","","",""), +"Save" => "Cadw", +"Help" => "Cymorth", +"Password" => "Cyfrinair" ); $PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"; diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php index e33efe3de09..e375598c9bd 100644 --- a/apps/user_ldap/l10n/da.php +++ b/apps/user_ldap/l10n/da.php @@ -2,39 +2,39 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Kunne ikke slette server konfigurationen", "The configuration is valid and the connection could be established!" => "Konfigurationen er korrekt og forbindelsen kunne etableres!", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurationen er ugyldig. Se venligst ownCloud loggen for yderligere detaljer.", "Deletion failed" => "Fejl ved sletning", "Take over settings from recent server configuration?" => "Overtag indstillinger fra nylig server konfiguration? ", "Keep settings?" => "Behold indstillinger?", "Cannot add server configuration" => "Kan ikke tilføje serverkonfiguration", "Success" => "Succes", "Error" => "Fejl", +"Select groups" => "Vælg grupper", "Connection test succeeded" => "Forbindelsestest lykkedes", "Connection test failed" => "Forbindelsestest mislykkedes", "Do you really want to delete the current Server Configuration?" => "Ønsker du virkelig at slette den nuværende Server Konfiguration?", "Confirm Deletion" => "Bekræft Sletning", -"Server configuration" => "Server konfiguration", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Gem", +"Test Configuration" => "Test Konfiguration", +"Help" => "Hjælp", "Add Server Configuration" => "Tilføj Server Konfiguration", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://", -"Base DN" => "Base DN", -"You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab", +"Port" => "Port", "User DN" => "Bruger DN", "Password" => "Kodeord", "For anonymous access, leave DN and Password empty." => "For anonym adgang, skal du lade DN og Adgangskode tomme.", -"User Login Filter" => "Bruger Login Filter", -"User List Filter" => "Brugerliste Filter", -"Group Filter" => "Gruppe Filter", +"You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab", +"Back" => "Tilbage", +"Continue" => "Videre", "Connection Settings" => "Forbindelsesindstillinger ", "Configuration Active" => "Konfiguration Aktiv", -"Port" => "Port", "Backup (Replica) Host" => "Backup (Replika) Vært", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgiv en ikke obligatorisk backup server. Denne skal være en replikation af hoved-LDAP/AD serveren.", "Backup (Replica) Port" => "Backup (Replika) Port", "Disable Main Server" => "Deaktiver Hovedserver", "Only connect to the replica server." => "Forbind kun til replika serveren.", -"Use TLS" => "Brug TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Benyt ikke flere LDAPS forbindelser, det vil mislykkeds. ", "Case insensitve LDAP server (Windows)" => "Ikke versalfølsom LDAP server (Windows)", "Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering", "Cache Time-To-Live" => "Cache Time-To-Live", @@ -45,8 +45,6 @@ $TRANSLATIONS = array( "Quota Field" => "Kvote Felt", "in bytes" => "i bytes", "Email Field" => "Email Felt", -"Internal Username" => "Internt Brugernavn", -"Test Configuration" => "Test Konfiguration", -"Help" => "Hjælp" +"Internal Username" => "Internt Brugernavn" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index cb13275fafa..0c80ecfa850 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen", "The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfe die Servereinstellungen und Anmeldeinformationen.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, sieh für weitere Details bitte im ownCloud Log nach", +"The configuration is invalid. Please have a look at the logs for further details." => "Die Konfiguration ist ungültig. Weitere Details kannst Du in den Logdateien nachlesen.", +"No action specified" => "Keine Aktion spezifiziert", +"No configuration specified" => "Keine Konfiguration spezifiziert", +"No data specified" => "Keine Daten spezifiziert", +" Could not set configuration %s" => "Die Konfiguration %s konnte nicht gesetzt werden", "Deletion failed" => "Löschen fehlgeschlagen", "Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", "Keep settings?" => "Einstellungen beibehalten?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "Zuordnungen gelöscht", "Success" => "Erfolgreich", "Error" => "Fehler", +"Configuration OK" => "Konfiguration OK", +"Configuration incorrect" => "Konfiguration nicht korrekt", +"Configuration incomplete" => "Konfiguration nicht vollständig", +"Select groups" => "Wähle Gruppen aus", +"Select object classes" => "Objekt-Klassen auswählen", +"Select attributes" => "Attribute auswählen", "Connection test succeeded" => "Verbindungstest erfolgreich", "Connection test failed" => "Verbindungstest fehlgeschlagen", "Do you really want to delete the current Server Configuration?" => "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", -"<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 demzufolge zu unerwarteten Verhalten kommen. Bitte\ndeinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren.", -"Server configuration" => "Serverkonfiguration", +"_%s group found_::_%s groups found_" => array("%s Gruppe gefunden","%s Gruppen gefunden"), +"_%s user found_::_%s users found_" => array("%s Benutzer gefunden","%s Benutzer gefunden"), +"Invalid Host" => "Ungültiger Host", +"Could not find the desired feature" => "Konnte die gewünschte Funktion nicht finden", +"Save" => "Speichern", +"Test Configuration" => "Testkonfiguration", +"Help" => "Hilfe", +"Limit the access to %s to groups meeting this criteria:" => "Beschränke den Zugriff auf %s auf Gruppen, die die folgenden Kriterien erfüllen:", +"only those object classes:" => "Nur diese Objekt-Klassen:", +"only from those groups:" => "Nur von diesen Gruppen:", +"Edit raw filter instead" => "Original-Filter stattdessen bearbeiten", +"Raw LDAP filter" => "Original LDAP-Filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Der Filter definiert welche LDAP-Gruppen Zugriff auf die %s Instanz haben sollen.", +"groups found" => "Gruppen gefunden", +"What attribute shall be used as login name:" => "Welches Attribut soll als Login-Name verwendet werden:", +"LDAP Username:" => "LDAP-Benutzername:", +"LDAP Email Address:" => "LDAP E-Mail-Adresse:", +"Other Attributes:" => "Andere Attribute:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://", -"Base DN" => "Basis-DN", -"One Base DN per line" => "Ein Basis-DN pro Zeile", -"You can specify Base DN for users and groups in the Advanced tab" => "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", +"Port" => "Port", "User DN" => "Benutzer-DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer.", "Password" => "Passwort", "For anonymous access, leave DN and Password empty." => "Lasse die Felder DN und Passwort für anonymen Zugang leer.", -"User Login Filter" => "Benutzer-Login-Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", -"User List Filter" => "Benutzer-Filter-Liste", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definiert den Filter für die Wiederherstellung eines Benutzers (kein Platzhalter). Beispiel: \"objectClass=person\"", -"Group Filter" => "Gruppen-Filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definiert den Filter für die Wiederherstellung einer Gruppe (kein Platzhalter). Beispiel: \"objectClass=posixGroup\"", +"One Base DN per line" => "Ein Basis-DN pro Zeile", +"You can specify Base DN for users and groups in the Advanced tab" => "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", +"Limit the access to %s to users meeting this criteria:" => "Beschränke den Zugriff auf %s auf Benutzer, die die folgenden Kriterien erfüllen:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Der Filter definiert welche LDAP-Benutzer Zugriff auf die %s Instanz haben sollen.", +"users found" => "Benutzer gefunden", +"Back" => "Zurück", +"Continue" => "Fortsetzen", +"<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 demzufolge zu unerwarteten Verhalten kommen. Bitte\ndeinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren.", "Connection Settings" => "Verbindungseinstellungen", "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Konfiguration wird übersprungen wenn deaktiviert", -"Port" => "Port", "Backup (Replica) Host" => "Backup Host (Kopie)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", "Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", "Only connect to the replica server." => "Nur zum Replikat-Server verbinden.", -"Use TLS" => "Nutze TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Benutze es nicht zusammen mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importiere das SSL-Zertifikat des LDAP-Servers in deinen %s Server.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Attribut für interne Benutzernamen:", "Override UUID detection" => "UUID-Erkennung überschreiben", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Du musst allerdings sicherstellen, dass deine gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lasse es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.", -"UUID Attribute:" => "UUID-Attribut:", +"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 a 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öschen Sie niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" => "Lösche LDAP-Benutzernamenzuordnung", -"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung", -"Test Configuration" => "Testkonfiguration", -"Help" => "Hilfe" +"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/de_AT.php b/apps/user_ldap/l10n/de_AT.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/de_AT.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/de_CH.php b/apps/user_ldap/l10n/de_CH.php index df9175e73b1..5f8e2907f07 100644 --- a/apps/user_ldap/l10n/de_CH.php +++ b/apps/user_ldap/l10n/de_CH.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen", "The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, sehen Sie für weitere Details bitte im ownCloud Log nach", "Deletion failed" => "Löschen fehlgeschlagen", "Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", "Keep settings?" => "Einstellungen beibehalten?", @@ -12,40 +11,37 @@ $TRANSLATIONS = array( "mappings cleared" => "Zuordnungen gelöscht", "Success" => "Erfolg", "Error" => "Fehler", +"Select groups" => "Wähle Gruppen", "Connection test succeeded" => "Verbindungstest erfolgreich", "Connection test failed" => "Verbindungstest fehlgeschlagen", "Do you really want to delete the current Server Configuration?" => "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", -"<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 demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", -"Server configuration" => "Serverkonfiguration", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Speichern", +"Test Configuration" => "Testkonfiguration", +"Help" => "Hilfe", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, ausser wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", -"Base DN" => "Basis-DN", -"One Base DN per line" => "Ein Basis-DN pro Zeile", -"You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem «Erweitert»-Reiter konfigurieren", +"Port" => "Port", "User DN" => "Benutzer-DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer.", "Password" => "Passwort", "For anonymous access, leave DN and Password empty." => "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer.", -"User Login Filter" => "Benutzer-Login-Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", -"User List Filter" => "Benutzer-Filter-Liste", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definiert den Filter für die Wiederherstellung eines Benutzers (kein Platzhalter). Beispiel: \"objectClass=person\"", -"Group Filter" => "Gruppen-Filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definiert den Filter für die Wiederherstellung einer Gruppe (kein Platzhalter). Beispiel: \"objectClass=posixGroup\"", +"One Base DN per line" => "Ein Basis-DN pro Zeile", +"You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem «Erweitert»-Reiter konfigurieren", +"<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 demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", "Connection Settings" => "Verbindungseinstellungen", "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", -"Port" => "Port", "Backup (Replica) Host" => "Backup Host (Kopie)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", "Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", "Only connect to the replica server." => "Nur zum Replikat-Server verbinden.", -"Use TLS" => "Nutze TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Gross- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importieren Sie das SSL-Zertifikat des LDAP-Servers in Ihren %s Server.", @@ -76,12 +72,9 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Interne Eigenschaften des Benutzers:", "Override UUID detection" => "UUID-Erkennung überschreiben", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Standardmässig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Ausserdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Sie müssen allerdings sicherstellen, dass Ihre gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lassen Sie es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.", -"UUID Attribute:" => "UUID-Attribut:", "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 a 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öschen Sie niemals die Zuordnungen in einer produktiven Umgebung. Löschen Sie die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" => "Lösche LDAP-Benutzernamenzuordnung", -"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung", -"Test Configuration" => "Testkonfiguration", -"Help" => "Hilfe" +"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php index 677d603ffa0..168f1fe059c 100644 --- a/apps/user_ldap/l10n/de_DE.php +++ b/apps/user_ldap/l10n/de_DE.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen", "The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Die Konfiguration ist gültig aber die Verbindung ist fehlgeschlagen. Bitte überprüfen Sie die Servereinstellungen und die Anmeldeinformationen.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Die Konfiguration ist ungültig, sehen Sie für weitere Details bitte im ownCloud Log nach", +"The configuration is invalid. Please have a look at the logs for further details." => "Die Konfiguration ist ungültig. Weitere Details können Sie in den Logdateien nachlesen.", +"No action specified" => "Keine Aktion spezifiziert", +"No configuration specified" => "Keine Konfiguration spezifiziert", +"No data specified" => "Keine Daten spezifiziert", +" Could not set configuration %s" => "Die Konfiguration %s konnte nicht gesetzt werden", "Deletion failed" => "Löschen fehlgeschlagen", "Take over settings from recent server configuration?" => "Einstellungen von letzter Konfiguration übernehmen?", "Keep settings?" => "Einstellungen beibehalten?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "Zuordnungen gelöscht", "Success" => "Erfolg", "Error" => "Fehler", +"Configuration OK" => "Konfiguration OK", +"Configuration incorrect" => "Konfiguration nicht korrekt", +"Configuration incomplete" => "Konfiguration nicht vollständig", +"Select groups" => "Wähle Gruppen", +"Select object classes" => "Objekt-Klassen auswählen", +"Select attributes" => "Attribute auswählen", "Connection test succeeded" => "Verbindungstest erfolgreich", "Connection test failed" => "Verbindungstest fehlgeschlagen", "Do you really want to delete the current Server Configuration?" => "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", -"<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 demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", -"Server configuration" => "Serverkonfiguration", +"_%s group found_::_%s groups found_" => array("%s Gruppe gefunden","%s Gruppen gefunden"), +"_%s user found_::_%s users found_" => array("%s Benutzer gefunden","%s Benutzer gefunden"), +"Invalid Host" => "Ungültiger Host", +"Could not find the desired feature" => "Konnte die gewünschte Funktion nicht finden", +"Save" => "Speichern", +"Test Configuration" => "Testkonfiguration", +"Help" => "Hilfe", +"Limit the access to %s to groups meeting this criteria:" => "Beschränke den Zugriff auf %s auf Gruppen, die die folgenden Kriterien erfüllen:", +"only those object classes:" => "Nur diese Objekt-Klassen:", +"only from those groups:" => "Nur von diesen Gruppen:", +"Edit raw filter instead" => "Original-Filter stattdessen bearbeiten", +"Raw LDAP filter" => "Original LDAP-Filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Der Filter definiert welche LDAP-Gruppen Zugriff auf die %s Instanz haben sollen.", +"groups found" => "Gruppen gefunden", +"What attribute shall be used as login name:" => "Welches Attribut soll als Login-Name verwendet werden:", +"LDAP Username:" => "LDAP-Benutzername:", +"LDAP Email Address:" => "LDAP E-Mail-Adresse:", +"Other Attributes:" => "Andere Attribute:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", "Add Server Configuration" => "Serverkonfiguration hinzufügen", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", -"Base DN" => "Basis-DN", -"One Base DN per line" => "Ein Basis-DN pro Zeile", -"You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", +"Port" => "Port", "User DN" => "Benutzer-DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für einen anonymen Zugriff lassen Sie DN und Passwort leer.", "Password" => "Passwort", "For anonymous access, leave DN and Password empty." => "Lassen Sie die Felder DN und Passwort für einen anonymen Zugang leer.", -"User Login Filter" => "Benutzer-Login-Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Bestimmt den Filter, welcher bei einer Anmeldung angewandt wird. %%uid ersetzt den Benutzernamen bei der Anmeldung. Beispiel: \"uid=%%uid\"", -"User List Filter" => "Benutzer-Filter-Liste", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definiert den Filter für die Wiederherstellung eines Benutzers (kein Platzhalter). Beispiel: \"objectClass=person\"", -"Group Filter" => "Gruppen-Filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definiert den Filter für die Wiederherstellung einer Gruppe (kein Platzhalter). Beispiel: \"objectClass=posixGroup\"", +"One Base DN per line" => "Ein Basis-DN pro Zeile", +"You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", +"Limit the access to %s to users meeting this criteria:" => "Beschränke den Zugriff auf %s auf Benutzer, die die folgenden Kriterien erfüllen:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Der Filter definiert welche LDAP-Benutzer Zugriff auf die %s Instanz haben sollen.", +"users found" => "Benutzer gefunden", +"Back" => "Zurück", +"Continue" => "Fortsetzen", +"<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 demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", "Connection Settings" => "Verbindungseinstellungen", "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Wenn nicht angehakt, wird diese Konfiguration übersprungen.", -"Port" => "Port", "Backup (Replica) Host" => "Backup Host (Kopie)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", "Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", "Only connect to the replica server." => "Nur zum Replikat-Server verbinden.", -"Use TLS" => "Nutze TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importieren Sie das SSL-Zertifikat des LDAP-Servers in Ihren %s Server.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Interne Eigenschaften des Benutzers:", "Override UUID detection" => "UUID-Erkennung überschreiben", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Sie müssen allerdings sicherstellen, dass Ihre gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lassen Sie es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.", -"UUID Attribute:" => "UUID-Attribut:", +"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 a 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öschen Sie niemals die Zuordnungen in einer produktiven Umgebung. Löschen Sie die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" => "Lösche LDAP-Benutzernamenzuordnung", -"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung", -"Test Configuration" => "Testkonfiguration", -"Help" => "Hilfe" +"Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php index d588f90518e..8369dff4895 100644 --- a/apps/user_ldap/l10n/el.php +++ b/apps/user_ldap/l10n/el.php @@ -1,55 +1,87 @@ <?php $TRANSLATIONS = array( +"Failed to clear the mappings." => "Αποτυχία εκκαθάρισης των αντιστοιχιών.", "Failed to delete the server configuration" => "Αποτυχία διαγραφής ρυθμίσεων διακομιστή", "The configuration is valid and the connection could be established!" => "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Μη έγκυρες ρυθμίσεις. Παρακαλώ ελέγξτε τις καταγραφές του ownCloud για περισσότερες λεπτομέρειες.", +"The configuration is invalid. Please have a look at the logs for further details." => "Η διαμόρφωση είναι άκυρη. Παρακαλώ ελέγξτε τα αρχεία σφαλμάτων για περαιτέρω λεπτομέρειες.", +"No action specified" => "Καμμία εντολή δεν προσδιορίστηκε", +"No configuration specified" => "Καμμία διαμόρφωση δεν προσδιορίστηκε", +"No data specified" => "Δεν προσδιορίστηκαν δεδομένα", "Deletion failed" => "Η διαγραφή απέτυχε", "Take over settings from recent server configuration?" => "Πάρτε πάνω από τις πρόσφατες ρυθμίσεις διαμόρφωσης του διακομιστή?", "Keep settings?" => "Διατήρηση ρυθμίσεων;", "Cannot add server configuration" => "Αδυναμία προσθήκης ρυθμίσεων διακομιστή", +"mappings cleared" => "αντιστοιχίες εκκαθαρίστηκαν", "Success" => "Επιτυχία", "Error" => "Σφάλμα", +"Configuration OK" => "Η διαμόρφωση είναι εντάξει", +"Configuration incorrect" => "Η διαμόρφωση είναι λανθασμένη", +"Configuration incomplete" => "Η διαμόρφωση είναι ελλιπής", +"Select groups" => "Επιλέξτε ομάδες", +"Select object classes" => "Επιλογή κλάσης αντικειμένων", +"Select attributes" => "Επιλογή χαρακτηριστικών", "Connection test succeeded" => "Επιτυχημένη δοκιμαστική σύνδεση", "Connection test failed" => "Αποτυχημένη δοκιμαστική σύνδεσης.", "Do you really want to delete the current Server Configuration?" => "Θέλετε να διαγράψετε τις τρέχουσες ρυθμίσεις του διακομιστή;", "Confirm Deletion" => "Επιβεβαίωση Διαγραφής", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει.", -"Server configuration" => "Ρυθμίσεις Διακομιστή", +"_%s group found_::_%s groups found_" => array("%s ομάδα βρέθηκε","%s ομάδες βρέθηκαν"), +"_%s user found_::_%s users found_" => array("%s χρήστης βρέθηκε","%s χρήστες βρέθηκαν"), +"Invalid Host" => "Άκυρος εξυπηρετητής", +"Could not find the desired feature" => "Αδυναμία εύρεσης επιθυμητου χαρακτηριστικού", +"Save" => "Αποθήκευση", +"Test Configuration" => "Δοκιμαστικες ρυθμισεις", +"Help" => "Βοήθεια", +"Limit the access to %s to groups meeting this criteria:" => "Περιορισμός πρόσβασης %s σε ομάδες που ταιριάζουν αυτά τα κριτήρια:", +"only those object classes:" => "μόνο αυτές οι κλάσεις αντικειμένων:", +"only from those groups:" => "μόνο από αυτές τις ομάδες:", +"Edit raw filter instead" => "Επεξεργασία πρωτογενούς φίλτρου αντί αυτού", +"Raw LDAP filter" => "Πρωτογενές φίλτρο ", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιες ομάδες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", +"groups found" => "ομάδες βρέθηκαν", +"What attribute shall be used as login name:" => "Ποια ιδιότητα θα χρησιμοποιηθεί ως όνομα σύνδεσης:", +"LDAP Username:" => "Όνομα χρήστη LDAP:", +"LDAP Email Address:" => "Διεύθυνση ηλ. ταχυδρομείου LDAP:", +"Other Attributes:" => "Άλλες Ιδιότητες:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Ορίζει το φίλτρο που θα εφαρμοστεί, όταν επιχειριθεί σύνδεση. Το %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. Παράδειγμα: \"uid=%%uid\"", "Add Server Configuration" => "Προσθήκη Ρυθμίσεων Διακομιστή", "Host" => "Διακομιστής", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "Ένα DN Βάσης ανά γραμμή ", -"You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις", +"Port" => "Θύρα", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά.", "Password" => "Συνθηματικό", "For anonymous access, leave DN and Password empty." => "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.", -"User Login Filter" => "User Login Filter", -"User List Filter" => "User List Filter", -"Group Filter" => "Group Filter", +"One Base DN per line" => "Ένα DN Βάσης ανά γραμμή ", +"You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις", +"Limit the access to %s to users meeting this criteria:" => "Περιορισμός πρόσβασης %s σε χρήστες που ταιριάζουν αυτά τα κριτήρια:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Το φίλτρο καθορίζει ποιοι χρήστες LDAP θα έχουν πρόσβαση στην εγκατάσταση %s.", +"users found" => "χρήστες βρέθηκαν", +"Back" => "Επιστροφή", +"Continue" => "Συνέχεια", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Το άρθρωμα PHP LDAP δεν είναι εγκατεστημένο και το σύστημα υποστήριξης δεν θα δουλέψει. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να το εγκαταστήσει.", "Connection Settings" => "Ρυθμίσεις Σύνδεσης", "Configuration Active" => "Ενεργοποιηση ρυθμισεων", "When unchecked, this configuration will be skipped." => "Όταν δεν είναι επιλεγμένο, αυτή η ρύθμιση θα πρέπει να παραλειφθεί. ", -"Port" => "Θύρα", "Backup (Replica) Host" => "Δημιουργία αντιγράφων ασφαλείας (Replica) Host ", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Δώστε μια προαιρετική εφεδρική υποδοχή. Πρέπει να είναι ένα αντίγραφο του κύριου LDAP / AD διακομιστη.", "Backup (Replica) Port" => "Δημιουργία αντιγράφων ασφαλείας (Replica) Υποδοχη", "Disable Main Server" => "Απενεργοποιηση του κεντρικου διακομιστη", -"Use TLS" => "Χρήση TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Μην το χρησιμοποιήσετε επιπροσθέτως, για LDAPS συνδέσεις , θα αποτύχει.", "Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ", "Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Δεν προτείνεται, χρησιμοποιείστε το μόνο για δοκιμές! Εάν η σύνδεση λειτουργεί μόνο με αυτή την επιλογή, εισάγετε το πιστοποιητικό SSL του διακομιστή LDAP στο %s διακομιστή σας.", "Cache Time-To-Live" => "Cache Time-To-Live", "in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.", "Directory Settings" => "Ρυθμίσεις Καταλόγου", "User Display Name Field" => "Πεδίο Ονόματος Χρήστη", +"The LDAP attribute to use to generate the user's display name." => "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος χρήστη.", "Base User Tree" => "Base User Tree", "One User Base DN per line" => "Ένα DN βάσης χρηστών ανά γραμμή", "User Search Attributes" => "Χαρακτηριστικά αναζήτησης των χρηστών ", "Optional; one attribute per line" => "Προαιρετικά? Ένα χαρακτηριστικό ανά γραμμή ", "Group Display Name Field" => "Group Display Name Field", +"The LDAP attribute to use to generate the groups's display name." => "Η ιδιότητα LDAP προς χρήση για δημιουργία του προβαλλόμενου ονόματος ομάδας.", "Base Group Tree" => "Base Group Tree", "One Group Base DN per line" => "Μια ομαδικη Βάση DN ανά γραμμή", "Group Search Attributes" => "Ομάδα Χαρακτηριστικων Αναζήτηση", @@ -61,7 +93,16 @@ $TRANSLATIONS = array( "Email Field" => "Email τυπος", "User Home Folder Naming Rule" => "Χρήστης Προσωπικόςφάκελος Ονομασία Κανόνας ", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.", -"Test Configuration" => "Δοκιμαστικες ρυθμισεις", -"Help" => "Βοήθεια" +"Internal Username" => "Εσωτερικό Όνομα Χρήστη", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Εξ ορισμού, το εσωτερικό όνομα χρήστη θα δημιουργηθεί από το χαρακτηριστικό UUID. Αυτό βεβαιώνει ότι το όνομα χρήστη είναι μοναδικό και δεν χρειάζεται μετατροπή χαρακτήρων. Το εσωτερικό όνομα χρήστη έχει τον περιορισμό ότι μόνο αυτοί οι χαρακτήρες επιτρέπονται: [ a-zA-Z0-9_.@- ]. Οι άλλοι χαρακτήρες αντικαθίστανται με τους αντίστοιχους ASCII ή απλά παραλείπονται. Στις συγκρούσεις ένας αριθμός θα προστεθεί / αυξηθεί. Το εσωτερικό όνομα χρήστη χρησιμοποιείται για την αναγνώριση ενός χρήστη εσωτερικά. Είναι επίσης το προεπιλεγμένο όνομα για τον αρχικό φάκελο χρήστη. Αποτελεί επίσης μέρος των απομακρυσμένων διευθύνσεων URL, για παράδειγμα για όλες τις υπηρεσίες *DAV. Με αυτή τη ρύθμιση, η προεπιλεγμένη συμπεριφορά μπορεί να παρακαμφθεί. Για να επιτευχθεί μια παρόμοια συμπεριφορά όπως πριν το ownCloud 5 εισάγετε το χαρακτηριστικό του προβαλλόμενου ονόματος χρήστη στο παρακάτω πεδίο. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε νεώτερους (προστιθέμενους) χρήστες LDAP.", +"Internal Username Attribute:" => "Ιδιότητα Εσωτερικού Ονόματος Χρήστη:", +"Override UUID detection" => "Παράκαμψη ανίχνευσης UUID", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Από προεπιλογή, το χαρακτηριστικό UUID εντοπίζεται αυτόματα. Το χαρακτηριστικό UUID χρησιμοποιείται για την αναγνώριση χωρίς αμφιβολία χρηστών και ομάδων LDAP. Επίσης, το εσωτερικό όνομα χρήστη θα δημιουργηθεί με βάση το UUID, εφόσον δεν ορίζεται διαφορετικά ανωτέρω. Μπορείτε να παρακάμψετε τη ρύθμιση και να ορίσετε ένα χαρακτηριστικό της επιλογής σας. Θα πρέπει να βεβαιωθείτε ότι το χαρακτηριστικό της επιλογής σας μπορεί να ληφθεί για τους χρήστες και τις ομάδες και ότι είναι μοναδικό. Αφήστε το κενό για την προεπιλεγμένη λειτουργία. Οι αλλαγές θα έχουν ισχύ μόνο σε πρόσφατα αντιστοιχισμένους (προστιθέμενους) χρήστες και ομάδες LDAP.", +"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 a 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 Ομάδας" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/en@pirate.php b/apps/user_ldap/l10n/en@pirate.php index e269c57c3d0..35308522f04 100644 --- a/apps/user_ldap/l10n/en@pirate.php +++ b/apps/user_ldap/l10n/en@pirate.php @@ -1,5 +1,7 @@ <?php $TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), "Password" => "Passcode" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/en_GB.php b/apps/user_ldap/l10n/en_GB.php index d613be34868..b83229d5a53 100644 --- a/apps/user_ldap/l10n/en_GB.php +++ b/apps/user_ldap/l10n/en_GB.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Failed to delete the server configuration", "The configuration is valid and the connection could be established!" => "The configuration is valid and the connection could be established!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "The configuration is valid, but the Bind failed. Please check the server settings and credentials.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "The configuration is invalid. Please look in the ownCloud log for further details.", +"The configuration is invalid. Please have a look at the logs for further details." => "The configuration is invalid. Please have a look at the logs for further details.", +"No action specified" => "No action specified", +"No configuration specified" => "No configuration specified", +"No data specified" => "No data specified", +" Could not set configuration %s" => " Could not set configuration %s", "Deletion failed" => "Deletion failed", "Take over settings from recent server configuration?" => "Take over settings from recent server configuration?", "Keep settings?" => "Keep settings?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "mappings cleared", "Success" => "Success", "Error" => "Error", +"Configuration OK" => "Configuration OK", +"Configuration incorrect" => "Configuration incorrect", +"Configuration incomplete" => "Configuration incomplete", +"Select groups" => "Select groups", +"Select object classes" => "Select object classes", +"Select attributes" => "Select attributes", "Connection test succeeded" => "Connection test succeeded", "Connection test failed" => "Connection test failed", "Do you really want to delete the current Server Configuration?" => "Do you really want to delete the current Server Configuration?", "Confirm Deletion" => "Confirm Deletion", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.", -"Server configuration" => "Server configuration", +"_%s group found_::_%s groups found_" => array("%s group found","%s groups found"), +"_%s user found_::_%s users found_" => array("%s user found","%s users found"), +"Invalid Host" => "Invalid Host", +"Could not find the desired feature" => "Could not find the desired feature", +"Save" => "Save", +"Test Configuration" => "Test Configuration", +"Help" => "Help", +"Limit the access to %s to groups meeting this criteria:" => "Limit the access to %s to groups meeting this criteria:", +"only those object classes:" => "only those object classes:", +"only from those groups:" => "only from those groups:", +"Edit raw filter instead" => "Edit raw filter instead", +"Raw LDAP filter" => "Raw LDAP filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "The filter specifies which LDAP groups shall have access to the %s instance.", +"groups found" => "groups found", +"What attribute shall be used as login name:" => "What attribute should be used as login name:", +"LDAP Username:" => "LDAP Username:", +"LDAP Email Address:" => "LDAP Email Address:", +"Other Attributes:" => "Other Attributes:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"", "Add Server Configuration" => "Add Server Configuration", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "You can omit the protocol, except you require SSL. Then start with ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "One Base DN per line", -"You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab", +"Port" => "Port", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.", "Password" => "Password", "For anonymous access, leave DN and Password empty." => "For anonymous access, leave DN and Password empty.", -"User Login Filter" => "User Login Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"", -"User List Filter" => "User List Filter", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"", -"Group Filter" => "Group Filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"", +"One Base DN per line" => "One Base DN per line", +"You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab", +"Limit the access to %s to users meeting this criteria:" => "Limit the access to %s to users meeting this criteria:", +"The filter specifies which LDAP users shall have access to the %s instance." => "The filter specifies which LDAP users shall have access to the %s instance.", +"users found" => "users found", +"Back" => "Back", +"Continue" => "Continue", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.", "Connection Settings" => "Connection Settings", "Configuration Active" => "Configuration Active", "When unchecked, this configuration will be skipped." => "When unchecked, this configuration will be skipped.", -"Port" => "Port", "Backup (Replica) Host" => "Backup (Replica) Host", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Give an optional backup host. It must be a replica of the main LDAP/AD server.", "Backup (Replica) Port" => "Backup (Replica) Port", "Disable Main Server" => "Disable Main Server", "Only connect to the replica server." => "Only connect to the replica server.", -"Use TLS" => "Use TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Do not use it additionally for LDAPS connections, it will fail.", "Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)", "Turn off SSL certificate validation." => "Turn off SSL certificate validation.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Internal Username Attribute:", "Override UUID detection" => "Override UUID detection", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "By default, the UUID attribute is automatically detected. The UUID attribute is used to unambiguously identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behaviour. Changes will have effect only on newly mapped (added) LDAP users and groups.", -"UUID Attribute:" => "UUID Attribute:", +"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 a 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 a 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", -"Test Configuration" => "Test Configuration", -"Help" => "Help" +"Clear Groupname-LDAP Group Mapping" => "Clear Groupname-LDAP Group Mapping" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php index 26d46b81b9f..0cae524bcc1 100644 --- a/apps/user_ldap/l10n/eo.php +++ b/apps/user_ldap/l10n/eo.php @@ -1,29 +1,58 @@ <?php $TRANSLATIONS = array( +"Failed to delete the server configuration" => "Malsukcesis forigo de la agordo de servilo", "Deletion failed" => "Forigo malsukcesis", +"Keep settings?" => "Ĉu daŭrigi la agordon?", +"Cannot add server configuration" => "Ne eblas aldoni agordon de servilo", "Success" => "Sukceso", "Error" => "Eraro", +"Select groups" => "Elekti grupojn", +"Select object classes" => "Elekti objektoklasojn", +"Select attributes" => "Elekti atribuojn", +"Connection test succeeded" => "Provo de konekto sukcesis", +"Connection test failed" => "Provo de konekto malsukcesis", +"Confirm Deletion" => "Konfirmi forigon", +"_%s group found_::_%s groups found_" => array("%s grupo troviĝis","%s grupoj troviĝis"), +"_%s user found_::_%s users found_" => array("%s uzanto troviĝis","%s uzanto troviĝis"), +"Invalid Host" => "Nevalida gastigo", +"Save" => "Konservi", +"Test Configuration" => "Provi agordon", +"Help" => "Helpo", +"only those object classes:" => "nur tiuj objektoklasoj:", +"only from those groups:" => "nur el tiuj grupoj:", +"groups found" => "grupoj trovitaj", +"LDAP Username:" => "LDAP-uzantonomo:", +"LDAP Email Address:" => "LDAP-retpoŝtadreso:", +"Other Attributes:" => "Aliaj atribuoj:", +"Add Server Configuration" => "Aldoni agordon de servilo", "Host" => "Gastigo", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vi povas neglekti la protokolon, escepte se vi bezonas SSL-on. Tiuokaze, komencu per ldaps://", -"Base DN" => "Bazo-DN", +"Port" => "Pordo", "User DN" => "Uzanto-DN", "Password" => "Pasvorto", "For anonymous access, leave DN and Password empty." => "Por sennoman aliron, lasu DN-on kaj Pasvorton malplenaj.", -"User Login Filter" => "Filtrilo de uzantensaluto", -"User List Filter" => "Filtrilo de uzantolisto", -"Group Filter" => "Filtrilo de grupo", -"Port" => "Pordo", -"Use TLS" => "Uzi TLS-on", +"users found" => "uzantoj trovitaj", +"Back" => "Antaŭen", +"Connection Settings" => "Agordo de konekto", +"Disable Main Server" => "Malkapabligi la ĉefan servilon", "Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)", "Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.", +"Cache Time-To-Live" => "Vivotempo de la kaŝmemoro", "in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.", "User Display Name Field" => "Kampo de vidignomo de uzanto", "Base User Tree" => "Baza uzantarbo", "Group Display Name Field" => "Kampo de vidignomo de grupo", "Base Group Tree" => "Baza gruparbo", +"Group Search Attributes" => "Atribuoj de gruposerĉo", "Group-Member association" => "Asocio de grupo kaj membro", +"Special Attributes" => "Specialaj atribuoj", +"Quota Field" => "Kampo de kvoto", "in bytes" => "duumoke", +"Email Field" => "Kampo de retpoŝto", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.", -"Help" => "Helpo" +"Internal Username" => "Ena uzantonomo", +"Internal Username Attribute:" => "Atribuo de ena uzantonomo:", +"UUID Attribute for Users:" => "UUID-atribuo por uzantoj:", +"UUID Attribute for Groups:" => "UUID-atribuo por grupoj:" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php index 4f37d5177a7..3348003e3e2 100644 --- a/apps/user_ldap/l10n/es.php +++ b/apps/user_ldap/l10n/es.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "No se pudo borrar la configuración del servidor", "The configuration is valid and the connection could be established!" => "¡La configuración es válida y la conexión puede establecerse!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, busque en el log de ownCloud para más detalles.", +"The configuration is invalid. Please have a look at the logs for further details." => "La configuración no es válida. Por favor, busque en el log para más detalles.", +"No action specified" => "No se ha especificado la acción", +"No configuration specified" => "No se ha especificado la configuración", +"No data specified" => "No se han especificado los datos", +" Could not set configuration %s" => "No se pudo establecer la configuración %s", "Deletion failed" => "Falló el borrado", "Take over settings from recent server configuration?" => "¿Asumir los ajustes actuales de la configuración del servidor?", "Keep settings?" => "¿Mantener la configuración?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "Asignaciones borradas", "Success" => "Éxito", "Error" => "Error", +"Configuration OK" => "Configuración OK", +"Configuration incorrect" => "Configuración Incorrecta", +"Configuration incomplete" => "Configuración incompleta", +"Select groups" => "Seleccionar grupos", +"Select object classes" => "Seleccionar la clase de objeto", +"Select attributes" => "Seleccionar atributos", "Connection test succeeded" => "La prueba de conexión fue exitosa", "Connection test failed" => "La prueba de conexión falló", "Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?", "Confirm Deletion" => "Confirmar eliminació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>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al su administrador de sistemas para desactivar uno de ellos.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.", -"Server configuration" => "Configuración del Servidor", +"_%s group found_::_%s groups found_" => array("Grupo %s encontrado","Grupos %s encontrados"), +"_%s user found_::_%s users found_" => array("Usuario %s encontrado","Usuarios %s encontrados"), +"Invalid Host" => "Host inválido", +"Could not find the desired feature" => "No se puede encontrar la función deseada.", +"Save" => "Guardar", +"Test Configuration" => "Configuración de prueba", +"Help" => "Ayuda", +"Limit the access to %s to groups meeting this criteria:" => "Limitar el acceso a %s a los grupos que cumplan este criterio:", +"only those object classes:" => "solamente de estas clases de objeto:", +"only from those groups:" => "solamente de estos grupos:", +"Edit raw filter instead" => "Editar el filtro en bruto en su lugar", +"Raw LDAP filter" => "Filtro LDAP en bruto", +"The filter specifies which LDAP groups shall have access to the %s instance." => "El filtro especifica que grupos LDAP tendrán acceso a %s.", +"groups found" => "grupos encontrados", +"What attribute shall be used as login name:" => "Que atributo debe ser usado como login:", +"LDAP Username:" => "Nombre de usuario LDAP:", +"LDAP Email Address:" => "Dirección e-mail LDAP:", +"Other Attributes:" => "Otros atributos:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", "Add Server Configuration" => "Agregar configuracion del servidor", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://", -"Base DN" => "DN base", -"One Base DN per line" => "Un DN Base por línea", -"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", +"Port" => "Puerto", "User DN" => "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.", "Password" => "Contraseña", "For anonymous access, leave DN and Password empty." => "Para acceso anónimo, deje DN y contraseña vacíos.", -"User Login Filter" => "Filtro de inicio de sesión de usuario", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", -"User List Filter" => "Lista de filtros de usuario", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define el filtro a aplicar, cuando se obtienen usuarios (sin comodines). Por ejemplo: \"objectClass=person\"", -"Group Filter" => "Filtro de grupo", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define el filtro a aplicar, cuando se obtienen grupos (sin comodines). Por ejemplo: \"objectClass=posixGroup\"", +"One Base DN per line" => "Un DN Base por línea", +"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", +"Limit the access to %s to users meeting this criteria:" => "Limitar el acceso a %s a los usuarios que cumplan el siguiente criterio:", +"The filter specifies which LDAP users shall have access to the %s instance." => "El filtro especifica que usuarios LDAP pueden tener acceso a %s.", +"users found" => "usuarios encontrados", +"Back" => "Atrás", +"Continue" => "Continuar", +"<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. Pregunte al su administrador de sistemas para desactivar uno de ellos.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.", "Connection Settings" => "Configuración de conexión", "Configuration Active" => "Configuracion activa", "When unchecked, this configuration will be skipped." => "Cuando deseleccione, esta configuracion sera omitida.", -"Port" => "Puerto", "Backup (Replica) Host" => "Servidor de copia de seguridad (Replica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD.", "Backup (Replica) Port" => "Puerto para copias de seguridad (Replica)", "Disable Main Server" => "Deshabilitar servidor principal", "Only connect to the replica server." => "Conectar sólo con el servidor de réplica.", -"Use TLS" => "Usar TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "No lo use para conexiones LDAPS, Fallará.", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)", "Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No se recomienda, ¡utilízalo únicamente para pruebas! Si la conexión únicamente funciona con esta opción, importa el certificado SSL del servidor LDAP en tu servidor %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atributo Nombre de usuario Interno:", "Override UUID detection" => "Sobrescribir la detección UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar indudablemente usuarios y grupos LDAP. Además, el nombre de usuario interno será creado en base al UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.", -"UUID Attribute:" => "Atributo UUID:", +"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 a 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", -"Test Configuration" => "Configuración de prueba", -"Help" => "Ayuda" +"Clear Groupname-LDAP Group Mapping" => "Borrar la asignación de los Nombres de grupo de los grupos de LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php index 2436df8de77..3a8f42e2c9c 100644 --- a/apps/user_ldap/l10n/es_AR.php +++ b/apps/user_ldap/l10n/es_AR.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Fallo al borrar la configuración del servidor", "The configuration is valid and the connection could be established!" => "La configuración es válida y la conexión pudo ser establecida.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero el enlace falló. Por favor, comprobá la configuración del servidor y las credenciales.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, buscá en el log de ownCloud más detalles.", "Deletion failed" => "Error al borrar", "Take over settings from recent server configuration?" => "Tomar los valores de la anterior configuración de servidor?", "Keep settings?" => "¿Mantener preferencias?", @@ -12,40 +11,38 @@ $TRANSLATIONS = array( "mappings cleared" => "Asignaciones borradas", "Success" => "Éxito", "Error" => "Error", +"Select groups" => "Seleccionar grupos", "Connection test succeeded" => "El este de conexión ha sido completado satisfactoriamente", "Connection test failed" => "Falló es test de conexión", "Do you really want to delete the current Server Configuration?" => "¿Realmente desea borrar la configuración actual del servidor?", "Confirm Deletion" => "Confirmar borrado", -"<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 ser que experimentes comportamientos inesperados. Pedile al administrador que desactive uno de ellos.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atención:</b> El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.", -"Server configuration" => "Configuración del Servidor", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Guardar", +"Test Configuration" => "Probar configuración", +"Help" => "Ayuda", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta ingresar. %%uid remplaza el nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", "Add Server Configuration" => "Añadir Configuración del Servidor", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://", -"Base DN" => "DN base", -"One Base DN per line" => "Una DN base por línea", -"You can specify Base DN for users and groups in the Advanced tab" => "Podés especificar el DN base para usuarios y grupos en la pestaña \"Avanzado\"", +"Port" => "Puerto", "User DN" => "DN usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, dejá DN y contraseña vacíos.", "Password" => "Contraseña", "For anonymous access, leave DN and Password empty." => "Para acceso anónimo, dejá DN y contraseña vacíos.", -"User Login Filter" => "Filtro de inicio de sesión de usuario", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta ingresar. %%uid remplaza el nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", -"User List Filter" => "Lista de filtros de usuario", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define el filtro a aplicar al obtener usuarios (sin comodines). Por ejemplo: \"objectClass=person\"", -"Group Filter" => "Filtro de grupo", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define el filtro a aplicar al obtener grupos (sin comodines). Por ejemplo: \"objectClass=posixGroup\"", +"One Base DN per line" => "Una DN base por línea", +"You can specify Base DN for users and groups in the Advanced tab" => "Podés especificar el DN base para usuarios y grupos en la pestaña \"Avanzado\"", +"Back" => "Volver", +"<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 ser que experimentes comportamientos inesperados. Pedile al administrador que desactive uno de ellos.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atención:</b> El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.", "Connection Settings" => "Configuración de Conección", "Configuration Active" => "Configuración activa", "When unchecked, this configuration will be skipped." => "Si no está seleccionada, esta configuración será omitida.", -"Port" => "Puerto", "Backup (Replica) Host" => "Host para copia de seguridad (réplica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP/AD.", "Backup (Replica) Port" => "Puerto para copia de seguridad (réplica)", "Disable Main Server" => "Deshabilitar el Servidor Principal", "Only connect to the replica server." => "Conectarse únicamente al servidor de réplica.", -"Use TLS" => "Usar TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conexiones LDAPS, las mismas fallarán", "Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No es recomendado, ¡Usalo solamente para pruebas! Si la conexión únicamente funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor %s.", @@ -76,12 +73,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atributo Nombre Interno de usuario:", "Override UUID detection" => "Sobrescribir la detección UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por defecto, el atributo UUID es detectado automáticamente. Este atributo es usado para identificar de manera certera usuarios y grupos LDAP. Además, el nombre de usuario interno será creado en base al UUID, si no fue especificado otro comportamiento más arriba. Podés sobrescribir la configuración y pasar un atributo de tu elección. Tenés que asegurarte que el atributo de tu elección sea accesible por los usuarios y grupos y que sea único. Dejalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto sólo en los nuevos usuarios y grupos de LDAP mapeados (agregados).", -"UUID Attribute:" => "Atributo UUID:", +"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 a 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 datos (metadatos). Con el fin de identificar de forma precisa y reconocer usuarios, a cada usuario de LDAP se será asignado 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 dejado en caché para reducir la interacción entre el LDAP, pero no es usado para la identificación. Si el DN cambia, los cambios van a ser aplicados. El nombre de usuario interno es usado en todos los lugares. Vaciar los mapeos, deja restos por todas partes. Vaciar los mapeos, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, solamente en 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", -"Test Configuration" => "Probar configuración", -"Help" => "Ayuda" +"Clear Groupname-LDAP Group Mapping" => "Borrar la asignación de los Nombres de grupo de los grupos de LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/es_CL.php b/apps/user_ldap/l10n/es_CL.php new file mode 100644 index 00000000000..b3522617b42 --- /dev/null +++ b/apps/user_ldap/l10n/es_CL.php @@ -0,0 +1,7 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Password" => "Clave" +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/es_MX.php b/apps/user_ldap/l10n/es_MX.php new file mode 100644 index 00000000000..16aaa91fd51 --- /dev/null +++ b/apps/user_ldap/l10n/es_MX.php @@ -0,0 +1,110 @@ +<?php +$TRANSLATIONS = array( +"Failed to clear the mappings." => "Ocurrió un fallo al borrar las asignaciones.", +"Failed to delete the server configuration" => "No se pudo borrar la configuración del servidor", +"The configuration is valid and the connection could be established!" => "¡La configuración es válida y la conexión puede establecerse!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.", +"The configuration is invalid. Please have a look at the logs for further details." => "La configuración no es válida. Por favor, busque en el log para más detalles.", +"No action specified" => "No se ha especificado la acción", +"No configuration specified" => "No se ha especificado la configuración", +"No data specified" => "No se han especificado los datos", +" Could not set configuration %s" => "No se pudo establecer la configuración %s", +"Deletion failed" => "Falló el borrado", +"Take over settings from recent server configuration?" => "¿Asumir los ajustes actuales de la configuración del servidor?", +"Keep settings?" => "¿Mantener la configuración?", +"Cannot add server configuration" => "No se puede añadir la configuración del servidor", +"mappings cleared" => "Asignaciones borradas", +"Success" => "Éxito", +"Error" => "Error", +"Configuration OK" => "Configuración OK", +"Configuration incorrect" => "Configuración Incorrecta", +"Configuration incomplete" => "Configuración incompleta", +"Select groups" => "Seleccionar grupos", +"Select object classes" => "Seleccionar la clase de objeto", +"Select attributes" => "Seleccionar atributos", +"Connection test succeeded" => "La prueba de conexión fue exitosa", +"Connection test failed" => "La prueba de conexión falló", +"Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?", +"Confirm Deletion" => "Confirmar eliminación", +"_%s group found_::_%s groups found_" => array("Grupo %s encontrado","Grupos %s encontrados"), +"_%s user found_::_%s users found_" => array("Usuario %s encontrado","Usuarios %s encontrados"), +"Invalid Host" => "Host inválido", +"Could not find the desired feature" => "No se puede encontrar la función deseada.", +"Save" => "Guardar", +"Test Configuration" => "Configuración de prueba", +"Help" => "Ayuda", +"Limit the access to %s to groups meeting this criteria:" => "Limitar el acceso a %s a los grupos que cumplan este criterio:", +"only those object classes:" => "solamente de estas clases de objeto:", +"only from those groups:" => "solamente de estos grupos:", +"Edit raw filter instead" => "Editar el filtro en bruto en su lugar", +"Raw LDAP filter" => "Filtro LDAP en bruto", +"The filter specifies which LDAP groups shall have access to the %s instance." => "El filtro especifica que grupos LDAP tendrán acceso a %s.", +"groups found" => "grupos encontrados", +"What attribute shall be used as login name:" => "Que atributo debe ser usado como login:", +"LDAP Username:" => "Nombre de usuario LDAP:", +"LDAP Email Address:" => "Dirección e-mail LDAP:", +"Other Attributes:" => "Otros atributos:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"", +"Add Server Configuration" => "Agregar configuracion del servidor", +"Host" => "Servidor", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://", +"Port" => "Puerto", +"User DN" => "DN usuario", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "El DN del usuario cliente con el que se hará la asociación, p.ej. uid=agente,dc=ejemplo,dc=com. Para acceso anónimo, deje DN y contraseña vacíos.", +"Password" => "Contraseña", +"For anonymous access, leave DN and Password empty." => "Para acceso anónimo, deje DN y contraseña vacíos.", +"One Base DN per line" => "Un DN Base por línea", +"You can specify Base DN for users and groups in the Advanced tab" => "Puede especificar el DN base para usuarios y grupos en la pestaña Avanzado", +"Limit the access to %s to users meeting this criteria:" => "Limitar el acceso a %s a los usuarios que cumplan el siguiente criterio:", +"The filter specifies which LDAP users shall have access to the %s instance." => "El filtro especifica que usuarios LDAP pueden tener acceso a %s.", +"users found" => "usuarios encontrados", +"Back" => "Atrás", +"Continue" => "Continuar", +"<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. Pregunte al su administrador de sistemas para desactivar uno de ellos.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.", +"Connection Settings" => "Configuración de conexión", +"Configuration Active" => "Configuracion activa", +"When unchecked, this configuration will be skipped." => "Cuando deseleccione, esta configuracion sera omitida.", +"Backup (Replica) Host" => "Servidor de copia de seguridad (Replica)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD.", +"Backup (Replica) Port" => "Puerto para copias de seguridad (Replica)", +"Disable Main Server" => "Deshabilitar servidor principal", +"Only connect to the replica server." => "Conectar sólo con el servidor de réplica.", +"Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)", +"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No se recomienda, ¡utilízalo únicamente para pruebas! Si la conexión únicamente funciona con esta opción, importa el certificado SSL del servidor LDAP en tu servidor %s.", +"Cache Time-To-Live" => "Cache TTL", +"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la caché.", +"Directory Settings" => "Configuración de directorio", +"User Display Name Field" => "Campo de nombre de usuario a mostrar", +"The LDAP attribute to use to generate the user's display name." => "El campo LDAP a usar para generar el nombre para mostrar del usuario.", +"Base User Tree" => "Árbol base de usuario", +"One User Base DN per line" => "Un DN Base de Usuario por línea", +"User Search Attributes" => "Atributos de la busqueda de usuario", +"Optional; one attribute per line" => "Opcional; un atributo por linea", +"Group Display Name Field" => "Campo de nombre de grupo a mostrar", +"The LDAP attribute to use to generate the groups's display name." => "El campo LDAP a usar para generar el nombre para mostrar del grupo.", +"Base Group Tree" => "Árbol base de grupo", +"One Group Base DN per line" => "Un DN Base de Grupo por línea", +"Group Search Attributes" => "Atributos de busqueda de grupo", +"Group-Member association" => "Asociación Grupo-Miembro", +"Special Attributes" => "Atributos especiales", +"Quota Field" => "Cuota", +"Quota Default" => "Cuota por defecto", +"in bytes" => "en bytes", +"Email Field" => "E-mail", +"User Home Folder Naming Rule" => "Regla para la carpeta Home de usuario", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.", +"Internal Username" => "Nombre de usuario interno", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "El nombre de usuario interno será creado de forma predeterminada desde el atributo UUID. Esto asegura que el nombre de usuario es único y los caracteres no necesitan ser convertidos. En el nombre de usuario interno sólo se pueden usar estos caracteres: [ a-zA-Z0-9_.@- ]. El resto de caracteres son sustituidos por su correspondiente en ASCII o simplemente omitidos. En caso de duplicidades, se añadirá o incrementará un número. El nombre de usuario interno es usado para identificar un usuario. Es también el nombre predeterminado para la carpeta personal del usuario en ownCloud. También es parte de URLs remotas, por ejemplo, para todos los servicios *DAV. Con esta configuración el comportamiento predeterminado puede ser cambiado. Para conseguir un comportamiento similar a como era antes de ownCloud 5, introduzca el campo del nombre para mostrar del usuario en la siguiente caja. Déjelo vacío para el comportamiento predeterminado. Los cambios solo tendrán efecto en los usuarios LDAP mapeados (añadidos) recientemente.", +"Internal Username Attribute:" => "Atributo Nombre de usuario Interno:", +"Override UUID detection" => "Sobrescribir la detección UUID", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar indudablemente usuarios y grupos LDAP. Además, el nombre de usuario interno será creado en base al UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.", +"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 a 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" +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php index b949fe02041..10f513c8b80 100644 --- a/apps/user_ldap/l10n/et_EE.php +++ b/apps/user_ldap/l10n/et_EE.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Serveri seadistuse kustutamine ebaõnnestus", "The configuration is valid and the connection could be established!" => "Seadistus on korrektne ning ühendus on olemas!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Seadistus on korrektne, kuid ühendus ebaõnnestus. Palun kontrolli serveri seadeid ja ühenduseks kasutatavaid kasutajatunnuseid.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Seadistus on vigane. Palun vaata ownCloud logist täpsemalt.", +"The configuration is invalid. Please have a look at the logs for further details." => "Seadistus on vigane. Lisainfot vaata palun logidest.", +"No action specified" => "Tegevusi pole määratletud", +"No configuration specified" => "Seadistust pole määratletud", +"No data specified" => "Andmeid pole määratletud", +" Could not set configuration %s" => "Ei suutnud seadistada %s", "Deletion failed" => "Kustutamine ebaõnnestus", "Take over settings from recent server configuration?" => "Võta sätted viimasest serveri seadistusest?", "Keep settings?" => "Säilitada seadistused?", @@ -12,50 +16,70 @@ $TRANSLATIONS = array( "mappings cleared" => "vastendused puhastatud", "Success" => "Korras", "Error" => "Viga", +"Configuration OK" => "Seadistus on korras", +"Configuration incorrect" => "Seadistus on vigane", +"Configuration incomplete" => "Seadistus on puudulik", +"Select groups" => "Vali grupid", +"Select object classes" => "Vali objekti klassid", +"Select attributes" => "Vali atribuudid", "Connection test succeeded" => "Ühenduse testimine õnnestus", "Connection test failed" => "Ühenduse testimine ebaõnnestus", "Do you really want to delete the current Server Configuration?" => "Oled kindel, et tahad kustutada praegust serveri seadistust?", "Confirm Deletion" => "Kinnita kustutamine", -"<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>Hoiatus:</b> rakendused user_ldap ja user_webdavauht ei ole ühilduvad. Töös võib esineda ootamatuid tõrkeid.\nPalu oma süsteemihalduril üks neist rakendustest kasutusest eemaldada.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Hoiatus:</b>PHP LDAP moodul pole paigaldatud ning LDAP kasutamine ei ole võimalik. Palu oma süsteeihaldurit see paigaldada.", -"Server configuration" => "Serveri seadistus", +"_%s group found_::_%s groups found_" => array("%s grupp leitud","%s gruppi leitud"), +"_%s user found_::_%s users found_" => array("%s kasutaja leitud","%s kasutajat leitud"), +"Invalid Host" => "Vigane server", +"Could not find the desired feature" => "Ei suuda leida soovitud funktsioonaalsust", +"Save" => "Salvesta", +"Test Configuration" => "Testi seadistust", +"Help" => "Abiinfo", +"Limit the access to %s to groups meeting this criteria:" => "Piira ligipääs %s grupile, mis sobivad kriteeriumiga:", +"only those object classes:" => "ainult need objektiklassid:", +"only from those groups:" => "ainult nendest gruppidest:", +"Edit raw filter instead" => "Selle asemel muuda filtrit", +"Raw LDAP filter" => "LDAP filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filter määrab millised LDAP grupid saavad ligipääsu sellele %s instantsile.", +"groups found" => "gruppi leitud", +"What attribute shall be used as login name:" => "Mis atribuuti kasutada sisselogimise kasutajatunnusena:", +"LDAP Username:" => "LDAP kasutajanimi:", +"LDAP Email Address:" => "LDAP e-posti aadress:", +"Other Attributes:" => "Muud atribuudid:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"", "Add Server Configuration" => "Lisa serveri seadistus", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sa ei saa protokolli ära jätta, välja arvatud siis, kui sa nõuad SSL-ühendust. Sel juhul alusta eesliitega ldaps://", -"Base DN" => "Baas DN", -"One Base DN per line" => "Üks baas-DN rea kohta", -"You can specify Base DN for users and groups in the Advanced tab" => "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt", +"Port" => "Port", "User DN" => "Kasutaja DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Klientkasutaja DN, kellega seotakse, nt. uid=agent,dc=näidis,dc=com. Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", "Password" => "Parool", "For anonymous access, leave DN and Password empty." => "Anonüümseks ligipääsuks jäta DN ja parool tühjaks.", -"User Login Filter" => "Kasutajanime filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Määrab sisselogimisel kasutatava filtri. %%uid asendab sisselogimistegevuses kasutajanime. Näide: \"uid=%%uid\"", -"User List Filter" => "Kasutajate nimekirja filter", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Määrab kasutajate leidmiseks kasutatava filtri (ilma muutujateta). Näide: \"objectClass=person\"", -"Group Filter" => "Grupi filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Määrab gruppide leidmiseks kasutatava filtri (ilma muutujateta). Näide: \"objectClass=posixGroup\"", +"One Base DN per line" => "Üks baas-DN rea kohta", +"You can specify Base DN for users and groups in the Advanced tab" => "Sa saad kasutajate ja gruppide baas DN-i määrata lisavalikute vahekaardilt", +"Limit the access to %s to users meeting this criteria:" => "Piira ligipääs %s kasutajale, kes sobivad kriteeriumiga:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Filter määrab millised LDAP kasutajad pääsevad ligi %s instantsile.", +"users found" => "kasutajat leitud", +"Back" => "Tagasi", +"Continue" => "Jätka", +"<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>Hoiatus:</b> rakendused user_ldap ja user_webdavauht ei ole ühilduvad. Töös võib esineda ootamatuid tõrkeid.\nPalu oma süsteemihalduril üks neist rakendustest kasutusest eemaldada.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Hoiatus:</b>PHP LDAP moodul pole paigaldatud ning LDAP kasutamine ei ole võimalik. Palu oma süsteeihaldurit see paigaldada.", "Connection Settings" => "Ühenduse seaded", "Configuration Active" => "Seadistus aktiivne", -"When unchecked, this configuration will be skipped." => "Kui märkimata, siis seadistust ei kasutata", -"Port" => "Port", +"When unchecked, this configuration will be skipped." => "Kui on märkimata, siis seadistust ei kasutata.", "Backup (Replica) Host" => "Varuserver", -"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Lisa täiendav LDAP/AD server, mida replikeeritakse peaserveriga.", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Lisa valikuline varuserver. See peab olema koopia peamisest LDAP/AD serverist.", "Backup (Replica) Port" => "Varuserveri (replika) port", "Disable Main Server" => "Ära kasuta peaserverit", "Only connect to the replica server." => "Ühendu ainult replitseeriva serveriga.", -"Use TLS" => "Kasuta TLS-i", -"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS puhul ära kasuta. Ühendus ei toimi.", "Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)", "Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Pole soovitatav, kasuta seda ainult testimiseks! Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma %s serverisse.", "Cache Time-To-Live" => "Puhvri iga", "in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.", -"Directory Settings" => "Kataloogi seaded", +"Directory Settings" => "Kausta seaded", "User Display Name Field" => "Kasutaja näidatava nime väli", "The LDAP attribute to use to generate the user's display name." => "LDAP atribuut, mida kasutatakse kasutaja kuvatava nime loomiseks.", "Base User Tree" => "Baaskasutaja puu", -"One User Base DN per line" => "Üks kasutajate baas-DN rea kohta", +"One User Base DN per line" => "Üks kasutaja baas-DN rea kohta", "User Search Attributes" => "Kasutaja otsingu atribuudid", "Optional; one attribute per line" => "Valikuline; üks atribuut rea kohta", "Group Display Name Field" => "Grupi näidatava nime väli", @@ -68,7 +92,7 @@ $TRANSLATIONS = array( "Quota Field" => "Mahupiirangu atribuut", "Quota Default" => "Vaikimisi mahupiirang", "in bytes" => "baitides", -"Email Field" => "Email atribuut", +"Email Field" => "E-posti väli", "User Home Folder Naming Rule" => "Kasutaja kodukataloogi nimetamise reegel", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kasutajanime (vaikeväärtus) kasutamiseks jäta tühjaks. Vastasel juhul määra LDAP/AD omadus.", "Internal Username" => "Sisemine kasutajanimi", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Sisemise kasutajatunnuse atribuut:", "Override UUID detection" => "Tühista UUID tuvastus", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Vaikimis ownCloud tuvastab automaatselt UUID atribuudi. UUID atribuuti kasutatakse LDAP kasutajate ja gruppide kindlaks tuvastamiseks. Samuti tekitatakse sisemine kasutajanimi UUID alusel, kui pole määratud teisiti. Sa saad tühistada selle seadistuse ning määrata atribuudi omal valikul. Pead veenduma, et valitud atribuut toimib nii kasutajate kui gruppide puhul ning on unikaalne. Vaikimisi seadistuseks jäta tühjaks. Muudatused mõjutavad ainult uusi (lisatud) LDAP kasutajate vastendusi.", -"UUID Attribute:" => "UUID atribuut:", +"UUID Attribute for Users:" => "UUID atribuut kasutajatele:", +"UUID Attribute for Groups:" => "UUID atribuut gruppidele:", "Username-LDAP User Mapping" => "LDAP-Kasutajatunnus Kasutaja Vastendus", "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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 kasutab kasutajanime talletamaks ja omistamaks (pseudo) andmeid. Et täpselt tuvastada ja määratleda kasutajaid, peab iga LDAP kasutaja omama sisemist kasutajatunnust. See vajab ownCloud kasutajatunnuse vastendust LDAP kasutajaks. Tekitatud kasutajanimi vastendatakse LDAP kasutaja UUID-iks. Lisaks puhverdatakse DN vähendamaks LDAP päringuid, kuid seda ei kasutata tuvastamisel. ownCloud suudab tuvastada ka DN muutumise. ownCloud sisemist kasutajatunnust kasutatakse üle kogu ownCloudi. Eemaldates vastenduse tekivad kõikjal andmejäägid. Vastenduste eemaldamine ei ole konfiguratsiooni tundlik, see mõjutab kõiki LDAP seadistusi! Ära kunagi eemalda vastendusi produktsioonis! Seda võid teha ainult testis või katsetuste masinas.", "Clear Username-LDAP User Mapping" => "Puhasta LDAP-Kasutajatunnus Kasutaja Vastendus", -"Clear Groupname-LDAP Group Mapping" => "Puhasta LDAP-Grupinimi Grupp Vastendus", -"Test Configuration" => "Testi seadistust", -"Help" => "Abiinfo" +"Clear Groupname-LDAP Group Mapping" => "Puhasta LDAP-Grupinimi Grupp Vastendus" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php index 664d4901947..1026e017159 100644 --- a/apps/user_ldap/l10n/eu.php +++ b/apps/user_ldap/l10n/eu.php @@ -3,53 +3,80 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Zerbitzariaren konfigurazioa ezabatzeak huts egin du", "The configuration is valid and the connection could be established!" => "Konfigurazioa egokia da eta konexioa ezarri daiteke!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurazioa ongi dago, baina Bind-ek huts egin du. Mesedez egiaztatu zerbitzariaren ezarpenak eta kredentzialak.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurazioa ez dago ongi. Mesedez ikusi ownCloud-en egunerokoa informazio gehiago eskuratzeko.", +"The configuration is invalid. Please have a look at the logs for further details." => "Konfigurazioa ez dago ongi. Mesedez ikusi egunerokoak (log) informazio gehiago eskuratzeko.", +"No action specified" => "Ez da ekintzarik zehaztu", +"No configuration specified" => "Ez da konfiguraziorik zehaztu", +"No data specified" => "Ez da daturik zehaztu", +" Could not set configuration %s" => "Ezin izan da %s konfigurazioa ezarri", "Deletion failed" => "Ezabaketak huts egin du", "Take over settings from recent server configuration?" => "oraintsuko zerbitzariaren konfigurazioaren ezarpenen ardura hartu?", "Keep settings?" => "Mantendu ezarpenak?", "Cannot add server configuration" => "Ezin da zerbitzariaren konfigurazioa gehitu", "Success" => "Arrakasta", "Error" => "Errorea", +"Configuration OK" => "Konfigurazioa ongi dago", +"Configuration incorrect" => "Konfigurazioa ez dago ongi", +"Configuration incomplete" => "Konfigurazioa osatu gabe dago", +"Select groups" => "Hautatu taldeak", +"Select object classes" => "Hautatu objektu klaseak", +"Select attributes" => "Hautatu atributuak", "Connection test succeeded" => "Konexio froga ongi burutu da", "Connection test failed" => "Konexio frogak huts egin du", "Do you really want to delete the current Server Configuration?" => "Ziur zaude Zerbitzariaren Konfigurazioa ezabatu nahi duzula?", "Confirm Deletion" => "Baieztatu Ezabatzea", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Abisua:</b> PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.", -"Server configuration" => "Zerbitzariaren konfigurazioa", +"_%s group found_::_%s groups found_" => array("Talde %s aurkitu da","%s talde aurkitu dira"), +"_%s user found_::_%s users found_" => array("Erabiltzaile %s aurkitu da","%s erabiltzaile aurkitu dira"), +"Invalid Host" => "Baliogabeko hostalaria", +"Could not find the desired feature" => "Ezin izan da nahi zen ezaugarria aurkitu", +"Save" => "Gorde", +"Test Configuration" => "Egiaztatu Konfigurazioa", +"Help" => "Laguntza", +"Limit the access to %s to groups meeting this criteria:" => "Mugatu sarrera baldintza hauek betetzen dituzten %s taldetara:", +"only those object classes:" => "bakarrik objektu klase hauetakoak:", +"only from those groups:" => "bakarrik talde hauetakoak:", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Iragazkiak zehazten du ze LDAP taldek izango duten sarrera %s instantziara:", +"groups found" => "talde aurkituta", +"What attribute shall be used as login name:" => "Sarrera izen gisa erabiliko den atributua:", +"LDAP Username:" => "LDAP Erabiltzaile izena:", +"LDAP Email Address:" => "LDAP Eposta helbidea:", +"Other Attributes:" => "Bestelako atributuak:", "Add Server Configuration" => "Gehitu Zerbitzariaren Konfigurazioa", "Host" => "Hostalaria", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://", -"Base DN" => "Oinarrizko DN", -"One Base DN per line" => "DN Oinarri bat lerroko", -"You can specify Base DN for users and groups in the Advanced tab" => "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan", +"Port" => "Portua", "User DN" => "Erabiltzaile DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Lotura egingo den bezero erabiltzailearen DNa, adb. uid=agent,dc=example,dc=com. Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik.", "Password" => "Pasahitza", "For anonymous access, leave DN and Password empty." => "Sarrera anonimoak gaitzeko utzi DN eta Pasahitza hutsik.", -"User Login Filter" => "Erabiltzaileen saioa hasteko iragazkia", -"User List Filter" => "Erabiltzaile zerrendaren Iragazkia", -"Group Filter" => "Taldeen iragazkia", +"One Base DN per line" => "DN Oinarri bat lerroko", +"You can specify Base DN for users and groups in the Advanced tab" => "Erabiltzaile eta taldeentzako Oinarrizko DN zehaztu dezakezu Aurreratu fitxan", +"Limit the access to %s to users meeting this criteria:" => "Mugatu sarrera hurrengo baldintzak betetzen duten %s erabiltzaileei:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Iragazkiak zehazten du ze LDAP erabiltzailek izango duten sarrera %s instantziara:", +"users found" => "erabiltzaile aurkituta", +"Back" => "Atzera", +"Continue" => "Jarraitu", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Abisua:</b> PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.", "Connection Settings" => "Konexio Ezarpenak", "Configuration Active" => "Konfigurazio Aktiboa", "When unchecked, this configuration will be skipped." => "Markatuta ez dagoenean, konfigurazio hau ez da kontutan hartuko.", -"Port" => "Portua", "Backup (Replica) Host" => "Babeskopia (Replica) Ostalaria", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Eman babeskopia ostalari gehigarri bat. LDAP/AD zerbitzari nagusiaren replica bat izan behar da.", "Backup (Replica) Port" => "Babeskopia (Replica) Ataka", "Disable Main Server" => "Desgaitu Zerbitzari Nagusia", -"Use TLS" => "Erabili TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Ez erabili LDAPS konexioetarako, huts egingo du.", +"Only connect to the replica server." => "Konektatu bakarrik erreplika zerbitzarira", "Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)", "Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.", "Cache Time-To-Live" => "Katxearen Bizi-Iraupena", "in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.", "Directory Settings" => "Karpetaren Ezarpenak", "User Display Name Field" => "Erabiltzaileen bistaratzeko izena duen eremua", +"The LDAP attribute to use to generate the user's display name." => "Erabiltzailearen bistaratze izena sortzeko erabiliko den LDAP atributua.", "Base User Tree" => "Oinarrizko Erabiltzaile Zuhaitza", "One User Base DN per line" => "Erabiltzaile DN Oinarri bat lerroko", "User Search Attributes" => "Erabili Bilaketa Atributuak ", "Optional; one attribute per line" => "Aukerakoa; atributu bat lerro bakoitzeko", "Group Display Name Field" => "Taldeen bistaratzeko izena duen eremua", +"The LDAP attribute to use to generate the groups's display name." => "Taldearen bistaratze izena sortzeko erabiliko den LDAP atributua.", "Base Group Tree" => "Oinarrizko Talde Zuhaitza", "One Group Base DN per line" => "Talde DN Oinarri bat lerroko", "Group Search Attributes" => "Taldekatu Bilaketa Atributuak ", @@ -62,7 +89,9 @@ $TRANSLATIONS = array( "User Home Folder Naming Rule" => "Erabiltzailearen Karpeta Nagusia Izendatzeko Patroia", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Utzi hutsik erabiltzaile izenarako (lehentsia). Bestela zehaztu LDAP/AD atributua.", "Internal Username" => "Barneko erabiltzaile izena", -"Test Configuration" => "Egiaztatu Konfigurazioa", -"Help" => "Laguntza" +"Internal Username Attribute:" => "Baliogabeko Erabiltzaile Izen atributua", +"Override UUID detection" => "Gainidatzi UUID antzematea", +"UUID Attribute for Users:" => "Erabiltzaileentzako UUID atributuak:", +"UUID Attribute for Groups:" => "Taldeentzako UUID atributuak:" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php index c4db39521dd..688a6ee0d42 100644 --- a/apps/user_ldap/l10n/fa.php +++ b/apps/user_ldap/l10n/fa.php @@ -14,26 +14,26 @@ $TRANSLATIONS = array( "Connection test failed" => "تست اتصال ناموفق بود", "Do you really want to delete the current Server Configuration?" => "آیا واقعا می خواهید پیکربندی کنونی سرور را حذف کنید؟", "Confirm Deletion" => "تایید حذف", -"Server configuration" => "پیکربندی سرور", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "ذخیره", +"Test Configuration" => "امتحان پیکربندی", +"Help" => "راهنما", "Add Server Configuration" => "افزودن پیکربندی سرور", "Host" => "میزبانی", -"Base DN" => "پایه DN", -"One Base DN per line" => "یک پایه DN در هر خط", -"You can specify Base DN for users and groups in the Advanced tab" => "شما می توانید پایه DN را برای کاربران و گروه ها در زبانه Advanced مشخص کنید.", +"Port" => "درگاه", "User DN" => "کاربر DN", "Password" => "گذرواژه", "For anonymous access, leave DN and Password empty." => "برای دسترسی ناشناس، DN را رها نموده و رمزعبور را خالی بگذارید.", -"User Login Filter" => "فیلتر ورودی کاربر", -"Group Filter" => "فیلتر گروه", +"One Base DN per line" => "یک پایه DN در هر خط", +"You can specify Base DN for users and groups in the Advanced tab" => "شما می توانید پایه DN را برای کاربران و گروه ها در زبانه Advanced مشخص کنید.", +"Back" => "بازگشت", "Connection Settings" => "تنظیمات اتصال", "Configuration Active" => "پیکربندی فعال", "When unchecked, this configuration will be skipped." => "زمانیکه انتخاب نشود، این پیکربندی نادیده گرفته خواهد شد.", -"Port" => "درگاه", "Backup (Replica) Host" => "پشتیبان گیری (بدل) میزبان", "Backup (Replica) Port" => "پشتیبان گیری (بدل) پورت", "Disable Main Server" => "غیر فعال کردن سرور اصلی", -"Use TLS" => "استفاده ازTLS", -"Do not use it additionally for LDAPS connections, it will fail." => "علاوه بر این برای اتصالات LDAPS از آن استفاده نکنید، با شکست مواجه خواهد شد.", "Case insensitve LDAP server (Windows)" => "غیر حساس به بزرگی و کوچکی حروف LDAP سرور (ویندوز)", "Turn off SSL certificate validation." => "غیرفعال کردن اعتبار گواهی نامه SSL .", "Directory Settings" => "تنظیمات پوشه", @@ -57,11 +57,8 @@ $TRANSLATIONS = array( "Internal Username" => "نام کاربری داخلی", "Internal Username Attribute:" => "ویژگی نام کاربری داخلی:", "Override UUID detection" => "نادیده گرفتن تشخیص UUID ", -"UUID Attribute:" => "صفت UUID:", "Username-LDAP User Mapping" => "نام کاربری - نگاشت کاربر LDAP ", "Clear Username-LDAP User Mapping" => "پاک کردن نام کاربری- LDAP نگاشت کاربر ", -"Clear Groupname-LDAP Group Mapping" => "پاک کردن نام گروه -LDAP گروه نقشه برداری", -"Test Configuration" => "امتحان پیکربندی", -"Help" => "راهنما" +"Clear Groupname-LDAP Group Mapping" => "پاک کردن نام گروه -LDAP گروه نقشه برداری" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php index 341ffe8f627..ac1dfcc5ab8 100644 --- a/apps/user_ldap/l10n/fi_FI.php +++ b/apps/user_ldap/l10n/fi_FI.php @@ -5,24 +5,26 @@ $TRANSLATIONS = array( "Cannot add server configuration" => "Palvelinasetusten lisäys epäonnistui", "Success" => "Onnistui!", "Error" => "Virhe", +"Select groups" => "Valitse ryhmät", "Connection test succeeded" => "Yhteystesti onnistui", "Connection test failed" => "Yhteystesti epäonnistui", "Confirm Deletion" => "Vahvista poisto", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Tallenna", +"Help" => "Ohje", "Host" => "Isäntä", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Voit jättää protokollan määrittämättä, paitsi kun vaadit SSL:ää. Aloita silloin ldaps://", -"Base DN" => "Oletus DN", -"You can specify Base DN for users and groups in the Advanced tab" => "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset'-välilehdeltä ", +"Port" => "Portti", "User DN" => "Käyttäjän DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Asiakasohjelman DN, jolla yhdistäminen tehdään, ts. uid=agent,dc=example,dc=com. Mahdollistaaksesi anonyymin yhteyden, jätä DN ja salasana tyhjäksi.", "Password" => "Salasana", "For anonymous access, leave DN and Password empty." => "Jos haluat mahdollistaa anonyymin pääsyn, jätä DN ja Salasana tyhjäksi ", -"User Login Filter" => "Login suodatus", -"User List Filter" => "Käyttäjien suodatus", -"Group Filter" => "Ryhmien suodatus", +"You can specify Base DN for users and groups in the Advanced tab" => "Voit määrittää käyttäjien ja ryhmien oletus DN:n (distinguished name) 'tarkemmat asetukset'-välilehdeltä ", +"Back" => "Takaisin", +"Continue" => "Jatka", "Connection Settings" => "Yhteysasetukset", -"Port" => "Portti", "Disable Main Server" => "Poista pääpalvelin käytöstä", -"Use TLS" => "Käytä TLS:ää", "Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)", "Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus", "in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.", @@ -34,7 +36,6 @@ $TRANSLATIONS = array( "Group-Member association" => "Ryhmän ja jäsenen assosiaatio (yhteys)", "in bytes" => "tavuissa", "Email Field" => "Sähköpostikenttä", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti.", -"Help" => "Ohje" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php index 8b6027b81e6..a5429130d61 100644 --- a/apps/user_ldap/l10n/fr.php +++ b/apps/user_ldap/l10n/fr.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Échec de la suppression de la configuration du serveur", "The configuration is valid and the connection could be established!" => "La configuration est valide et la connexion peut être établie !", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuration est valide, mais le lien ne peut être établi. Veuillez vérifier les paramètres du serveur ainsi que vos identifiants de connexion.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuration est invalide. Veuillez vous référer aux fichiers de journaux ownCloud pour plus d'information.", +"The configuration is invalid. Please have a look at the logs for further details." => "La configuration est invalide. Veuillez consulter les logs pour plus de détails.", +"No action specified" => "Aucune action spécifiée", +"No configuration specified" => "Aucune configuration spécifiée", +"No data specified" => "Aucune donnée spécifiée", +" Could not set configuration %s" => "Impossible de spécifier la configuration %s", "Deletion failed" => "La suppression a échoué", "Take over settings from recent server configuration?" => "Récupérer les paramètres depuis une configuration récente du serveur ?", "Keep settings?" => "Garder ces paramètres ?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "associations supprimées", "Success" => "Succès", "Error" => "Erreur", +"Configuration OK" => "Configuration OK", +"Configuration incorrect" => "Configuration incorrecte", +"Configuration incomplete" => "Configuration incomplète", +"Select groups" => "Sélectionnez les groupes", +"Select object classes" => "Sélectionner les classes d'objet", +"Select attributes" => "Sélectionner les attributs", "Connection test succeeded" => "Test de connexion réussi", "Connection test failed" => "Test de connexion échoué", "Do you really want to delete the current Server Configuration?" => "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?", "Confirm Deletion" => "Confirmer la suppression", -"<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 désactive l'une d'elles.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Attention :</b> Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.", -"Server configuration" => "Configuration du serveur", +"_%s group found_::_%s groups found_" => array("%s groupe trouvé","%s groupes trouvés"), +"_%s user found_::_%s users found_" => array("%s utilisateur trouvé","%s utilisateurs trouvés"), +"Invalid Host" => "Hôte invalide", +"Could not find the desired feature" => "Impossible de trouver la fonction souhaitée", +"Save" => "Sauvegarder", +"Test Configuration" => "Tester la configuration", +"Help" => "Aide", +"Limit the access to %s to groups meeting this criteria:" => "Limiter l'accès à %s aux groupes respectant ce critère :", +"only those object classes:" => "seulement ces classes d'objet :", +"only from those groups:" => "seulement de ces groupes :", +"Edit raw filter instead" => "Éditer le filtre raw à la place", +"Raw LDAP filter" => "Filtre Raw LDAP", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Le filtre spécifie quels groupes LDAP doivent avoir accès à l'instance %s.", +"groups found" => "groupes trouvés", +"What attribute shall be used as login name:" => "Quel attribut doit être utilisé comme nom de login:", +"LDAP Username:" => "Nom d'utilisateur LDAP :", +"LDAP Email Address:" => "Adresse email LDAP :", +"Other Attributes:" => "Autres attributs :", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Définit le filtre à appliquer lors d'une tentative de connexion. %%uid remplace le nom d'utilisateur lors de la connexion. Exemple : \"uid=%%uid\"", "Add Server Configuration" => "Ajouter une configuration du serveur", "Host" => "Hôte", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://", -"Base DN" => "DN racine", -"One Base DN per line" => "Un DN racine par ligne", -"You can specify Base DN for users and groups in the Advanced tab" => "Vous pouvez spécifier les DN Racines de vos utilisateurs et groupes via l'onglet Avancé", +"Port" => "Port", "User DN" => "DN Utilisateur (Autorisé à consulter l'annuaire)", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN de l'utilisateur client pour lequel la liaison doit se faire, par exemple uid=agent,dc=example,dc=com. Pour un accès anonyme, laisser le DN et le mot de passe vides.", "Password" => "Mot de passe", "For anonymous access, leave DN and Password empty." => "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.", -"User Login Filter" => "Modèle d'authentification utilisateurs", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Définit le filtre à appliquer lors d'une tentative de connexion. %%uid remplace le nom d'utilisateur lors de la connexion. Exemple : \"uid=%%uid\"", -"User List Filter" => "Filtre d'utilisateurs", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Définit le filtre à appliquer lors de la récupération des utilisateurs. Exemple : \"objectClass=person\"", -"Group Filter" => "Filtre de groupes", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Définit le filtre à appliquer lors de la récupération des groupes. Exemple : \"objectClass=posixGroup\"", +"One Base DN per line" => "Un DN racine par ligne", +"You can specify Base DN for users and groups in the Advanced tab" => "Vous pouvez spécifier les DN Racines de vos utilisateurs et groupes via l'onglet Avancé", +"Limit the access to %s to users meeting this criteria:" => "Limiter l'accès à %s aux utilisateurs respectant ce critère :", +"The filter specifies which LDAP users shall have access to the %s instance." => "Le filtre spécifie quels utilisateurs LDAP doivent avoir accès à l'instance %s.", +"users found" => "utilisateurs trouvés", +"Back" => "Retour", +"Continue" => "Poursuivre", +"<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 désactive l'une d'elles.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Attention :</b> Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.", "Connection Settings" => "Paramètres de connexion", "Configuration Active" => "Configuration active", "When unchecked, this configuration will be skipped." => "Lorsque non cochée, la configuration sera ignorée.", -"Port" => "Port", "Backup (Replica) Host" => "Serveur de backup (réplique)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.", "Backup (Replica) Port" => "Port du serveur de backup (réplique)", "Disable Main Server" => "Désactiver le serveur principal", "Only connect to the replica server." => "Se connecter uniquement au serveur de replica.", -"Use TLS" => "Utiliser TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "À ne pas utiliser pour les connexions LDAPS (cela échouera).", "Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)", "Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Non recommandé, à utiliser à des fins de tests uniquement. Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Nom d'utilisateur interne:", "Override UUID detection" => "Surcharger la détection d'UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Par défaut, l'attribut UUID est automatiquement détecté. Cet attribut est utilisé pour identifier les utilisateurs et groupes de façon fiable. Un nom d'utilisateur interne basé sur l'UUID sera automatiquement créé, sauf s'il est spécifié autrement ci-dessus. Vous pouvez modifier ce comportement et définir l'attribut de votre choix. Vous devez alors vous assurer que l'attribut de votre choix peut être récupéré pour les utilisateurs ainsi que pour les groupes et qu'il soit unique. Laisser à blanc pour le comportement par défaut. Les modifications seront effectives uniquement pour les nouveaux (ajoutés) utilisateurs et groupes LDAP.", -"UUID Attribute:" => "Attribut UUID :", +"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 a 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 reconnaitre 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érimentation.", "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", -"Test Configuration" => "Tester la configuration", -"Help" => "Aide" +"Clear Groupname-LDAP Group Mapping" => "Supprimer l'association nom de groupe-groupe LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/fr_CA.php b/apps/user_ldap/l10n/fr_CA.php new file mode 100644 index 00000000000..2371ee70593 --- /dev/null +++ b/apps/user_ldap/l10n/fr_CA.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php index 911e481ca76..34e818ef951 100644 --- a/apps/user_ldap/l10n/gl.php +++ b/apps/user_ldap/l10n/gl.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Non foi posíbel eliminar a configuración do servidor", "The configuration is valid and the connection could be established!" => "A configuración é correcta e pode estabelecerse a conexión.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuración é correcta, mais a ligazón non. Comprobe a configuración do servidor e as credenciais.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", +"The configuration is invalid. Please have a look at the logs for further details." => "A configuración non é correcta. Vexa o rexistro de ownCloud para máis detalles", +"No action specified" => "Non se especificou unha acción", +"No configuration specified" => "Non se especificou unha configuración", +"No data specified" => "Non se especificaron datos", +" Could not set configuration %s" => "Non foi posíbel estabelecer a configuración %s", "Deletion failed" => "Produciuse un fallo ao eliminar", "Take over settings from recent server configuration?" => "Tomar os recentes axustes de configuración do servidor?", "Keep settings?" => "Manter os axustes?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "limpadas as asignacións", "Success" => "Correcto", "Error" => "Erro", +"Configuration OK" => "Configuración correcta", +"Configuration incorrect" => "Configuración incorrecta", +"Configuration incomplete" => "Configuración incompleta", +"Select groups" => "Seleccionar grupos", +"Select object classes" => "Seleccione as clases de obxectos", +"Select attributes" => "Seleccione os atributos", "Connection test succeeded" => "A proba de conexión foi satisfactoria", "Connection test failed" => "A proba de conexión fracasou", "Do you really want to delete the current Server Configuration?" => "Confirma que quere eliminar a configuración actual do servidor?", "Confirm Deletion" => "Confirmar a eliminación", -"<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 son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP non está instalado, o servidor non funcionará. Consulte co administrador do sistema para instalalo.", -"Server configuration" => "Configuración do servidor", +"_%s group found_::_%s groups found_" => array("Atopouse %s grupo","Atopáronse %s grupos"), +"_%s user found_::_%s users found_" => array("Atopouse %s usuario","Atopáronse %s usuarios"), +"Invalid Host" => "Máquina incorrecta", +"Could not find the desired feature" => "Non foi posíbel atopar a función desexada", +"Save" => "Gardar", +"Test Configuration" => "Probar a configuración", +"Help" => "Axuda", +"Limit the access to %s to groups meeting this criteria:" => "Limitar o acceso a %s aos grupos que coincidan con estes criterios:", +"only those object classes:" => "só as clases de obxecto:", +"only from those groups:" => "só dos grupos:", +"Edit raw filter instead" => "Editar, no seu canto, o filtro en bruto", +"Raw LDAP filter" => "Filtro LDAP en bruto", +"The filter specifies which LDAP groups shall have access to the %s instance." => "O filtro especifica que grupos LDAP teñen acceso á instancia %s.", +"groups found" => "atopáronse grupos", +"What attribute shall be used as login name:" => "Atributo que utilizar como nome de usuario:", +"LDAP Username:" => "Nome de usuario LDAP:", +"LDAP Email Address:" => "Enderezo de correo LDAP:", +"Other Attributes:" => "Outros atributos:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso. Exemplo: «uid=%%uid»", "Add Server Configuration" => "Engadir a configuración do servidor", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://", -"Base DN" => "DN base", -"One Base DN per line" => "Un DN base por liña", -"You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»", +"Port" => "Porto", "User DN" => "DN do usuario", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros.", "Password" => "Contrasinal", "For anonymous access, leave DN and Password empty." => "Para o acceso anónimo deixe o DN e o contrasinal baleiros.", -"User Login Filter" => "Filtro de acceso de usuarios", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define o filtro que se aplica cando se intenta o acceso. %%uid substitúe o nome de usuario e a acción de acceso. Exemplo: «uid=%%uid»", -"User List Filter" => "Filtro da lista de usuarios", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define o filtro a aplicar cando de recuperan os usuarios (sen comodíns). Exemplo: «objectClass=person»", -"Group Filter" => "Filtro de grupo", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define o filtro a aplicar cando de recuperan os usuarios (sen comodíns). Exemplo: «objectClass=posixGroup»", +"One Base DN per line" => "Un DN base por liña", +"You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»", +"Limit the access to %s to users meeting this criteria:" => "Limitar o acceso a %s aos usuarios que coincidan con estes criterios:", +"The filter specifies which LDAP users shall have access to the %s instance." => "O filtro especifica que usuarios LDAP teñen acceso á instancia %s.", +"users found" => "atopáronse usuarios", +"Back" => "Atrás", +"Continue" => "Continuar", +"<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 son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP non está instalado, o servidor non funcionará. Consulte co administrador do sistema para instalalo.", "Connection Settings" => "Axustes da conexión", "Configuration Active" => "Configuración activa", "When unchecked, this configuration will be skipped." => "Se está sen marcar, omítese esta configuración.", -"Port" => "Porto", "Backup (Replica) Host" => "Servidor da copia de seguranza (Réplica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Indicar un servidor de copia de seguranza opcional. Debe ser unha réplica do servidor principal LDAP/AD.", "Backup (Replica) Port" => "Porto da copia de seguranza (Réplica)", "Disable Main Server" => "Desactivar o servidor principal", "Only connect to the replica server." => "Conectar só co servidor de réplica.", -"Use TLS" => "Usar TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Non utilizalo ademais para conexións LDAPS xa que fallará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)", "Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Non recomendado, utilizar só para probas! Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atributo do nome de usuario interno:", "Override UUID detection" => "Ignorar a detección do UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "De xeito predeterminado, o atributo UUID é detectado automaticamente. O atributo UUID utilizase para identificar, sen dúbida, aos usuarios e grupos LDAP. Ademais, crearase o usuario interno baseado no UUID, se non se especifica anteriormente o contrario. Pode anular a configuración e pasar un atributo da súa escolla. Vostede debe asegurarse de que o atributo da súa escolla pode ser recuperado polos usuarios e grupos e de que é único. Déixeo baleiro para o comportamento predeterminado. Os cambios terán efecto só nas novas asignacións (engadidos) de usuarios de LDAP.", -"UUID Attribute:" => "Atributo do UUID:", +"UUID Attribute for Users:" => "Atributo do UUID para usuarios:", +"UUID Attribute for Groups:" => "Atributo do UUID para grupos:", "Username-LDAP User Mapping" => "Asignación do usuario ao «nome de usuario LDAP»", "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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 usuario empreganse para almacenar e asignar (meta) datos. Coa fin de identificar con precisión e recoñecer aos usuarios, cada usuario LDAP terá un nome de usuario interno. Isto require unha asignación de ownCloud nome de usuario a usuario LDAP. O nome de usuario creado asignase ao UUID do usuario LDAP. Ademais o DN almacenase na caché, para así reducir a interacción do LDAP, mais non se utiliza para a identificación. Se o DN cambia, os cambios poden ser atopados polo ownCloud. O nome interno no ownCloud utilizase en todo o ownCloud. A limpeza das asignacións deixará rastros en todas partes. A limpeza das asignacións non é sensíbel á configuración, afecta a todas as configuracións de LDAP! Non limpar nunca as asignacións nun entorno de produción. Limpar as asignacións só en fases de proba ou experimentais.", "Clear Username-LDAP User Mapping" => "Limpar a asignación do usuario ao «nome de usuario LDAP»", -"Clear Groupname-LDAP Group Mapping" => "Limpar a asignación do grupo ao «nome de grupo LDAP»", -"Test Configuration" => "Probar a configuración", -"Help" => "Axuda" +"Clear Groupname-LDAP Group Mapping" => "Limpar a asignación do grupo ao «nome de grupo LDAP»" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php index b39a4277078..0dcf8527849 100644 --- a/apps/user_ldap/l10n/he.php +++ b/apps/user_ldap/l10n/he.php @@ -8,18 +8,18 @@ $TRANSLATIONS = array( "Connection test failed" => "בדיקת החיבור נכשלה", "Do you really want to delete the current Server Configuration?" => "האם אכן למחוק את הגדרות השרת הנוכחיות?", "Confirm Deletion" => "אישור המחיקה", -"Server configuration" => "הגדרות השרת", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "שמירה", +"Help" => "עזרה", "Add Server Configuration" => "הוספת הגדרות השרת", "Host" => "מארח", +"Port" => "פורט", "User DN" => "DN משתמש", "Password" => "סיסמא", "For anonymous access, leave DN and Password empty." => "לגישה אנונימית, השאר את הDM והסיסמא ריקים.", -"User Login Filter" => "סנן כניסת משתמש", -"User List Filter" => "סנן רשימת משתמשים", -"Group Filter" => "סנן קבוצה", -"Port" => "פורט", +"Back" => "אחורה", "in seconds. A change empties the cache." => "בשניות. שינוי מרוקן את המטמון.", -"in bytes" => "בבתים", -"Help" => "עזרה" +"in bytes" => "בבתים" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/hi.php b/apps/user_ldap/l10n/hi.php index 24ae7a02176..386134547eb 100644 --- a/apps/user_ldap/l10n/hi.php +++ b/apps/user_ldap/l10n/hi.php @@ -1,7 +1,10 @@ <?php $TRANSLATIONS = array( "Error" => "त्रुटि", -"Password" => "पासवर्ड", -"Help" => "सहयोग" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "सहेजें", +"Help" => "सहयोग", +"Password" => "पासवर्ड" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/hr.php b/apps/user_ldap/l10n/hr.php index c9445de0dfc..b28175994eb 100644 --- a/apps/user_ldap/l10n/hr.php +++ b/apps/user_ldap/l10n/hr.php @@ -1,7 +1,11 @@ <?php $TRANSLATIONS = array( "Error" => "Greška", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Snimi", +"Help" => "Pomoć", "Password" => "Lozinka", -"Help" => "Pomoć" +"Back" => "Natrag" ); $PLURAL_FORMS = "nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php index b43dcbc2c87..2799d0407c4 100644 --- a/apps/user_ldap/l10n/hu_HU.php +++ b/apps/user_ldap/l10n/hu_HU.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Nem sikerült törölni a kiszolgáló konfigurációját", "The configuration is valid and the connection could be established!" => "A konfiguráció érvényes, és a kapcsolat létrehozható!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A konfiguráció érvényes, de a kapcsolat nem hozható létre. Kérem ellenőrizze a kiszolgáló beállításait, és az elérési adatokat.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Érvénytelen konfiguráció. További információkért nézze meg az ownCloud naplófájlját.", +"The configuration is invalid. Please have a look at the logs for further details." => "Érvénytelen konfiguráció. További információkért nézze meg a naplófájlokat!", +"No action specified" => "Nincs megadva parancs", +"No configuration specified" => "Nincs megadva konfiguráció", +"No data specified" => "Nincs adat megadva", +" Could not set configuration %s" => "A(z) %s konfiguráció nem állítható be", "Deletion failed" => "A törlés nem sikerült", "Take over settings from recent server configuration?" => "Vegyük át a beállításokat az előző konfigurációból?", "Keep settings?" => "Tartsuk meg a beállításokat?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "Töröltük a hozzárendeléseket", "Success" => "Sikeres végrehajtás", "Error" => "Hiba", +"Configuration OK" => "Konfiguráció OK", +"Configuration incorrect" => "Konfiguráió hibás", +"Configuration incomplete" => "Konfiguráció nincs befejezve", +"Select groups" => "Csoportok kiválasztása", +"Select object classes" => "Objektumosztályok kiválasztása", +"Select attributes" => "Attribútumok kiválasztása", "Connection test succeeded" => "A kapcsolatellenőrzés eredménye: sikerült", "Connection test failed" => "A kapcsolatellenőrzés eredménye: nem sikerült", "Do you really want to delete the current Server Configuration?" => "Tényleg törölni szeretné a kiszolgáló beállításait?", "Confirm Deletion" => "A törlés megerősítése", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Figyelmeztetés:</b> Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!", -"Server configuration" => "A kiszolgálók beállításai", +"_%s group found_::_%s groups found_" => array("%s csoport van","%s csoport van"), +"_%s user found_::_%s users found_" => array("%s felhasználó van","%s felhasználó van"), +"Invalid Host" => "Érvénytelen gépnév", +"Could not find the desired feature" => "A kívánt funkció nem található", +"Save" => "Mentés", +"Test Configuration" => "A beállítások tesztelése", +"Help" => "Súgó", +"Limit the access to %s to groups meeting this criteria:" => "Korlátozzuk %s elérését a következő feltételeknek megfelelő csoportokra:", +"only those object classes:" => "csak ezek az objektumosztályok:", +"only from those groups:" => "csak ezek a csoportok:", +"Edit raw filter instead" => "Inkább közvetlenül megadom a szűrési kifejezést:", +"Raw LDAP filter" => "Az LDAP szűrőkifejezés", +"The filter specifies which LDAP groups shall have access to the %s instance." => "A szűrő meghatározza, hogy mely LDAP csoportok lesznek jogosultak %s elérésére.", +"groups found" => "csoport van", +"What attribute shall be used as login name:" => "Melyik attribútumot használjuk login névként:", +"LDAP Username:" => "LDAP felhasználónév:", +"LDAP Email Address:" => "LDAP e-mail cím:", +"Other Attributes:" => "Más attribútumok:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"", "Add Server Configuration" => "Új kiszolgáló beállításának hozzáadása", "Host" => "Kiszolgáló", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "A protokoll előtag elhagyható, kivéve, ha SSL-t kíván használni. Ebben az esetben kezdje így: ldaps://", -"Base DN" => "DN-gyökér", -"One Base DN per line" => "Soronként egy DN-gyökér", -"You can specify Base DN for users and groups in the Advanced tab" => "A Haladó fülre kattintva külön DN-gyökér állítható be a felhasználók és a csoportok számára", +"Port" => "Port", "User DN" => "A kapcsolódó felhasználó DN-je", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Annak a felhasználónak a DN-je, akinek a nevében bejelentkezve kapcsolódunk a kiszolgálóhoz, pl. uid=agent,dc=example,dc=com. Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!", "Password" => "Jelszó", "For anonymous access, leave DN and Password empty." => "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!", -"User Login Filter" => "Szűrő a bejelentkezéshez", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül. Például: \"uid=%%uid\"", -"User List Filter" => "A felhasználók szűrője", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Ez a szűrő érvényes a felhasználók listázásakor (nincs helyettesíthető változó). Például: \"objectClass=person\"", -"Group Filter" => "A csoportok szűrője", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Ez a szűrő érvényes a csoportok listázásakor (nincs helyettesíthető változó). Például: \"objectClass=posixGroup\"", +"One Base DN per line" => "Soronként egy DN-gyökér", +"You can specify Base DN for users and groups in the Advanced tab" => "A Haladó fülre kattintva külön DN-gyökér állítható be a felhasználók és a csoportok számára", +"Limit the access to %s to users meeting this criteria:" => "Korlátozzuk %s elérését a következő feltételeknek megfelelő felhasználókra:", +"The filter specifies which LDAP users shall have access to the %s instance." => "A szűrő meghatározza, hogy mely LDAP felhasználók lesznek jogosultak %s elérésére.", +"users found" => "felhasználó van", +"Back" => "Vissza", +"Continue" => "Folytatás", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Figyelmeztetés:</b> Az LDAP PHP modul nincs telepítve, ezért ez az alrendszer nem fog működni. Kérje meg a rendszergazdát, hogy telepítse!", "Connection Settings" => "Kapcsolati beállítások", "Configuration Active" => "A beállítás aktív", "When unchecked, this configuration will be skipped." => "Ha nincs kipipálva, ez a beállítás kihagyódik.", -"Port" => "Port", "Backup (Replica) Host" => "Másodkiszolgáló (replika)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Adjon meg egy opcionális másodkiszolgálót. Ez a fő LDAP/AD kiszolgáló szinkron másolata (replikája) kell legyen.", "Backup (Replica) Port" => "A másodkiszolgáló (replika) portszáma", "Disable Main Server" => "A fő szerver kihagyása", "Only connect to the replica server." => "Csak a másodlagos (másolati) kiszolgálóhoz kapcsolódjunk.", -"Use TLS" => "Használjunk TLS-t", -"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS kapcsolatok esetén ne kapcsoljuk be, mert nem fog működni.", "Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)", "Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Használata nem javasolt (kivéve tesztelési céllal). Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát a(z) %s kiszolgálóra!", @@ -75,11 +99,12 @@ $TRANSLATIONS = array( "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Alapértelmezetten a belső felhasználónév az UUID tulajdonságból jön létre. Ez biztosítja a felhasználónév egyediségét és hogy a nem kell konvertálni a karaktereket benne. A belső felhasználónévnél a megkötés az, hogy csak a következő karakterek engdélyezettek benne: [ a-zA-Z0-9_.@- ]. Ezeken a karaktereken kivül minden karakter le lesz cserélve az adott karakter ASCII kódtáblában használható párjára vagy ha ilyen nincs akkor egyszerűen ki lesz hagyva. Ha így mégis ütköznének a nevek akkor hozzá lesz füzve egy folyamatosan növekvő számláló rész. A belső felhasználónevet lehet használni a felhasználó azonosítására a programon belül. Illetve ez lesz az alapáértelmezett neve a felhasználó kezdő könyvtárának az ownCloud-ban. Illetve...............................", "Internal Username Attribute:" => "A belső felhasználónév attribútuma:", "Override UUID detection" => "Az UUID-felismerés felülbírálása", -"UUID Attribute:" => "UUID attribútum:", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Az UUID attribútum alapértelmezetten felismerésre kerül. Az UUID attribútum segítségével az LDAP felhasználók és csoportok egyértelműen azonosíthatók. A belső felhasználónév is azonos lesz az UUID-vel, ha fentebb nincs másként definiálva. Ezt a beállítást felülbírálhatja és bármely attribútummal helyettesítheti. Ekkor azonban gondoskodnia kell arról, hogy a kiválasztott attribútum minden felhasználó és csoport esetén lekérdezhető és egyedi értékkel bír. Ha a mezőt üresen hagyja, akkor az alapértelmezett attribútum lesz érvényes. Egy esetleges módosítás csak az újonnan hozzárendelt (ill. létrehozott) felhasználókra és csoportokra lesz érvényes.", +"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 a 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 segítségével történik a (meta)adatok tárolása és hozzárendelése. A felhasználók pontos azonosítása céljából minden LDAP felhasználóhoz egy belső felhasználónevet rendelünk. Ezt a felhasználónevet az LDAP felhasználó UUID attribútumához rendeljük hozzá. Ezen túlmenően a DN is tárolásra kerül a gyorsítótárban, hogy csökkentsük az LDAP lekérdezések számát, de a DN-t nem használjuk azonosításra. Ha a DN megváltozik, akkor a rendszer ezt észleli. A belső felhasználóneveket a rendszer igen sok helyen használja, ezért a hozzárendelések törlése sok érvénytelen adatrekordot eredményez az adatbázisban. A hozzárendelések törlése nem függ a konfigurációtól, minden LDAP konfigurációt érint! Ténylegesen működő szolgáltatás esetén sose törölje a hozzárendeléseket, csak tesztelési vagy kísérleti célú szerveren!", "Clear Username-LDAP User Mapping" => "A felhasználó - LDAP felhasználó hozzárendelés törlése", -"Clear Groupname-LDAP Group Mapping" => "A csoport - LDAP csoport hozzárendelés törlése", -"Test Configuration" => "A beállítások tesztelése", -"Help" => "Súgó" +"Clear Groupname-LDAP Group Mapping" => "A csoport - LDAP csoport hozzárendelés törlése" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/hy.php b/apps/user_ldap/l10n/hy.php new file mode 100644 index 00000000000..805020b059c --- /dev/null +++ b/apps/user_ldap/l10n/hy.php @@ -0,0 +1,7 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Պահպանել" +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ia.php b/apps/user_ldap/l10n/ia.php index 9de7344f15f..e138fd835f1 100644 --- a/apps/user_ldap/l10n/ia.php +++ b/apps/user_ldap/l10n/ia.php @@ -1,7 +1,12 @@ <?php $TRANSLATIONS = array( +"Deletion failed" => "Il falleva deler", "Error" => "Error", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Salveguardar", +"Help" => "Adjuta", "Password" => "Contrasigno", -"Help" => "Adjuta" +"Back" => "Retro" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php index 9580725616d..03071bb1d0f 100644 --- a/apps/user_ldap/l10n/id.php +++ b/apps/user_ldap/l10n/id.php @@ -3,42 +3,42 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Gagal menghapus konfigurasi server", "The configuration is valid and the connection could be established!" => "Konfigurasi valid dan koneksi dapat dilakukan!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasi valid, tetapi Bind gagal. Silakan cek pengaturan server dan keamanan.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurasi salah. Silakan lihat log ownCloud untuk lengkapnya.", "Deletion failed" => "Penghapusan gagal", "Take over settings from recent server configuration?" => "Ambil alih pengaturan dari konfigurasi server saat ini?", "Keep settings?" => "Biarkan pengaturan?", "Cannot add server configuration" => "Gagal menambah konfigurasi server", "Success" => "Sukses", "Error" => "Galat", +"Select groups" => "Pilih grup", "Connection test succeeded" => "Tes koneksi sukses", "Connection test failed" => "Tes koneksi gagal", "Do you really want to delete the current Server Configuration?" => "Anda ingin menghapus Konfigurasi Server saat ini?", "Confirm Deletion" => "Konfirmasi Penghapusan", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Peringatan:</b> Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya.", -"Server configuration" => "Konfigurasi server", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "Simpan", +"Test Configuration" => "Uji Konfigurasi", +"Help" => "Bantuan", "Add Server Configuration" => "Tambah Konfigurasi Server", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol dapat tidak ditulis, kecuali anda menggunakan SSL. Lalu jalankan dengan ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "Satu Base DN per baris", -"You can specify Base DN for users and groups in the Advanced tab" => "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan", +"Port" => "port", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN dari klien pengguna yang dengannya tautan akan diterapkan, mis. uid=agen,dc=contoh,dc=com. Untuk akses anonim, biarkan DN dan kata sandi kosong.", "Password" => "Sandi", "For anonymous access, leave DN and Password empty." => "Untuk akses anonim, biarkan DN dan Kata sandi kosong.", -"User Login Filter" => "gunakan saringan login", -"User List Filter" => "Daftar Filter Pengguna", -"Group Filter" => "saringan grup", +"One Base DN per line" => "Satu Base DN per baris", +"You can specify Base DN for users and groups in the Advanced tab" => "Anda dapat menetapkan Base DN untuk pengguna dan grup dalam tab Lanjutan", +"Back" => "Kembali", +"Continue" => "Lanjutkan", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Peringatan:</b> Modul LDAP PHP tidak terpasang, perangkat tidak akan bekerja. Silakan minta administrator sistem untuk memasangnya.", "Connection Settings" => "Pengaturan Koneksi", "Configuration Active" => "Konfigurasi Aktif", "When unchecked, this configuration will be skipped." => "Jika tidak dicentang, konfigurasi ini dilewati.", -"Port" => "port", "Backup (Replica) Host" => "Host Cadangan (Replika)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Berikan pilihan host cadangan. Harus merupakan replika dari server LDAP/AD utama.", "Backup (Replica) Port" => "Port Cadangan (Replika)", "Disable Main Server" => "Nonaktifkan Server Utama", -"Use TLS" => "gunakan TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Jangan gunakan utamanya untuk koneksi LDAPS, koneksi akan gagal.", "Case insensitve LDAP server (Windows)" => "Server LDAP dengan kapitalisasi tidak sensitif (Windows)", "Turn off SSL certificate validation." => "matikan validasi sertivikat SSL", "Cache Time-To-Live" => "Gunakan Tembolok untuk Time-To-Live", @@ -60,8 +60,6 @@ $TRANSLATIONS = array( "in bytes" => "dalam bytes", "Email Field" => "Bidang Email", "User Home Folder Naming Rule" => "Aturan Penamaan Folder Home Pengguna", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD.", -"Test Configuration" => "Uji Konfigurasi", -"Help" => "Bantuan" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Biarkan nama pengguna kosong (default). Atau tetapkan atribut LDAP/AD." ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/is.php b/apps/user_ldap/l10n/is.php index 70c6bb61570..e146c93cb81 100644 --- a/apps/user_ldap/l10n/is.php +++ b/apps/user_ldap/l10n/is.php @@ -2,9 +2,12 @@ $TRANSLATIONS = array( "Keep settings?" => "Geyma stillingar ?", "Error" => "Villa", -"Host" => "Netþjónn", -"Password" => "Lykilorð", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Vista", "Test Configuration" => "Prúfa uppsetningu", -"Help" => "Hjálp" +"Help" => "Hjálp", +"Host" => "Netþjónn", +"Password" => "Lykilorð" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php index 4b47846f227..f5e53bdbe90 100644 --- a/apps/user_ldap/l10n/it.php +++ b/apps/user_ldap/l10n/it.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Eliminazione della configurazione del server non riuscita", "The configuration is valid and the connection could be established!" => "La configurazione è valida e la connessione può essere stabilita.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configurazione è valida, ma il Bind non è riuscito. Controlla le impostazioni del server e le credenziali.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "La configurazione non è valida. Controlla il log di ownCloud per ulteriori dettagli.", +"The configuration is invalid. Please have a look at the logs for further details." => "La configurazione non è valida. Controlla i log per ulteriori dettagli.", +"No action specified" => "Nessuna azione specificata", +"No configuration specified" => "Nessuna configurazione specificata", +"No data specified" => "Nessun dato specificato", +" Could not set configuration %s" => "Impossibile impostare la configurazione %s", "Deletion failed" => "Eliminazione non riuscita", "Take over settings from recent server configuration?" => "Vuoi recuperare le impostazioni dalla configurazione recente del server?", "Keep settings?" => "Vuoi mantenere le impostazioni?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "associazioni cancellate", "Success" => "Riuscito", "Error" => "Errore", +"Configuration OK" => "Configurazione corretta", +"Configuration incorrect" => "Configurazione non corretta", +"Configuration incomplete" => "Configurazione incompleta", +"Select groups" => "Seleziona i gruppi", +"Select object classes" => "Seleziona le classi di oggetti", +"Select attributes" => "Seleziona gli attributi", "Connection test succeeded" => "Prova di connessione riuscita", "Connection test failed" => "Prova di connessione non riuscita", "Do you really want to delete the current Server Configuration?" => "Vuoi davvero eliminare la configurazione attuale del server?", "Confirm Deletion" => "Conferma l'eliminazione", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Avviso:</b> il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo.", -"Server configuration" => "Configurazione del server", +"_%s group found_::_%s groups found_" => array("%s gruppo trovato","%s gruppi trovati"), +"_%s user found_::_%s users found_" => array("%s utente trovato","%s utenti trovati"), +"Invalid Host" => "Host non valido", +"Could not find the desired feature" => "Impossibile trovare la funzionalità desiderata", +"Save" => "Salva", +"Test Configuration" => "Prova configurazione", +"Help" => "Aiuto", +"Limit the access to %s to groups meeting this criteria:" => "Limita l'accesso a %s ai gruppi che verificano questi criteri:", +"only those object classes:" => "solo queste classi di oggetti:", +"only from those groups:" => "solo da questi gruppi:", +"Edit raw filter instead" => "Modifica invece il filtro grezzo", +"Raw LDAP filter" => "Filtro LDAP grezzo", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Il filtro specifica quali gruppi LDAP devono avere accesso all'istanza %s.", +"groups found" => "gruppi trovati", +"What attribute shall be used as login name:" => "Quale attributo deve essere usato come nome di accesso:", +"LDAP Username:" => "Nome utente LDAP:", +"LDAP Email Address:" => "Indirizzo email LDAP:", +"Other Attributes:" => "Altri attributi:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso. Esempio: \"uid=%%uid\"", "Add Server Configuration" => "Aggiungi configurazione del server", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "È possibile omettere il protocollo, ad eccezione se è necessario SSL. Quindi inizia con ldaps://", -"Base DN" => "DN base", -"One Base DN per line" => "Un DN base per riga", -"You can specify Base DN for users and groups in the Advanced tab" => "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate", +"Port" => "Porta", "User DN" => "DN utente", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Il DN per il client dell'utente con cui deve essere associato, ad esempio uid=agent,dc=example,dc=com. Per l'accesso anonimo, lasciare vuoti i campi DN e Password", "Password" => "Password", "For anonymous access, leave DN and Password empty." => "Per l'accesso anonimo, lasciare vuoti i campi DN e Password", -"User Login Filter" => "Filtro per l'accesso utente", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Specifica quale filtro utilizzare quando si tenta l'accesso. %%uid sostituisce il nome utente all'atto dell'accesso. Esempio: \"uid=%%uid\"", -"User List Filter" => "Filtro per l'elenco utenti", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Specifica quale filtro utilizzare durante il recupero degli utenti (nessun segnaposto). Esempio: \"objectClass=person\"", -"Group Filter" => "Filtro per il gruppo", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Specifica quale filtro utilizzare durante il recupero dei gruppi (nessun segnaposto). Esempio: \"objectClass=posixGroup\"", +"One Base DN per line" => "Un DN base per riga", +"You can specify Base DN for users and groups in the Advanced tab" => "Puoi specificare una DN base per gli utenti ed i gruppi nella scheda Avanzate", +"Limit the access to %s to users meeting this criteria:" => "Limita l'accesso a %s ai gruppi che verificano questi criteri:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Il filtro specifica quali utenti LDAP devono avere accesso all'istanza %s.", +"users found" => "utenti trovati", +"Back" => "Indietro", +"Continue" => "Continua", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Avviso:</b> il modulo PHP LDAP non è installato, il motore non funzionerà. Chiedi al tuo amministratore di sistema di installarlo.", "Connection Settings" => "Impostazioni di connessione", "Configuration Active" => "Configurazione attiva", "When unchecked, this configuration will be skipped." => "Se deselezionata, questa configurazione sarà saltata.", -"Port" => "Porta", "Backup (Replica) Host" => "Host di backup (Replica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fornisci un host di backup opzionale. Deve essere una replica del server AD/LDAP principale.", "Backup (Replica) Port" => "Porta di backup (Replica)", "Disable Main Server" => "Disabilita server principale", "Only connect to the replica server." => "Collegati solo al server di replica.", -"Use TLS" => "Usa TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Da non utilizzare per le connessioni LDAPS, non funzionerà.", "Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)", "Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Non consigliata, da utilizzare solo per test! Se la connessione funziona solo con questa opzione, importa il certificate SSL del server LDAP sul tuo server %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Attributo nome utente interno:", "Override UUID detection" => "Ignora rilevamento UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "In modo predefinito, l'attributo UUID viene rilevato automaticamente. L'attributo UUID è utilizzato per identificare senza alcun dubbio gli utenti e i gruppi LDAP. Inoltre, il nome utente interno sarà creato sulla base dell'UUID, se non è specificato in precedenza. Puoi ignorare l'impostazione e fornire un attributo di tua scelta. Assicurati che l'attributo scelto possa essere ottenuto sia per gli utenti che per i gruppi e che sia univoco. Lascialo vuoto per ottenere il comportamento predefinito. Le modifiche avranno effetto solo sui nuovi utenti e gruppi LDAP associati (aggiunti).", -"UUID Attribute:" => "Attributo UUID:", +"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 a 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à esclusivamente 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", -"Test Configuration" => "Prova configurazione", -"Help" => "Aiuto" +"Clear Groupname-LDAP Group Mapping" => "Cancella associazione Nome gruppo-Gruppo LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php index e9ef2165bb3..8e98e80370d 100644 --- a/apps/user_ldap/l10n/ja_JP.php +++ b/apps/user_ldap/l10n/ja_JP.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "サーバ設定の削除に失敗しました", "The configuration is valid and the connection could be established!" => "設定は有効であり、接続を確立しました!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "設定は有効ですが、接続に失敗しました。サーバ設定と資格情報を確認して下さい。", -"The configuration is invalid. Please look in the ownCloud log for further details." => "設定は無効です。詳細は ownCloud のログを見て下さい。", +"The configuration is invalid. Please have a look at the logs for further details." => "設定が無効です。詳細はログを確認してください。", +"No action specified" => "アクションが指定されていません", +"No configuration specified" => "構成が指定されていません", +"No data specified" => "データが指定されていません", +" Could not set configuration %s" => "構成 %s を設定できませんでした", "Deletion failed" => "削除に失敗しました", "Take over settings from recent server configuration?" => "最近のサーバ設定から設定を引き継ぎますか?", "Keep settings?" => "設定を保持しますか?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "マッピングをクリアしました", "Success" => "成功", "Error" => "エラー", +"Configuration OK" => "設定OK", +"Configuration incorrect" => "設定に誤りがあります", +"Configuration incomplete" => "設定が不完全です", +"Select groups" => "グループを選択", +"Select object classes" => "オブジェクトクラスを選択", +"Select attributes" => "属性を選択", "Connection test succeeded" => "接続テストに成功しました", "Connection test failed" => "接続テストに失敗しました", "Do you really want to delete the current Server Configuration?" => "現在のサーバ設定を本当に削除してもよろしいですか?", "Confirm Deletion" => "削除の確認", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b> PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。", -"Server configuration" => "サーバ設定", +"_%s group found_::_%s groups found_" => array("%s グループが見つかりました"), +"_%s user found_::_%s users found_" => array("%s ユーザが見つかりました"), +"Invalid Host" => "無効なホスト", +"Could not find the desired feature" => "望ましい機能は見つかりませんでした", +"Save" => "保存", +"Test Configuration" => "設定をテスト", +"Help" => "ヘルプ", +"Limit the access to %s to groups meeting this criteria:" => "この基準に合致するグループに %s へのアクセスを制限:", +"only those object classes:" => "それらのオブジェクトクラスのみ:", +"only from those groups:" => "それらのグループからのみ:", +"Edit raw filter instead" => "フィルタを編集", +"Raw LDAP filter" => "LDAP フィルタ", +"The filter specifies which LDAP groups shall have access to the %s instance." => "フィルタは、どの LDAP グループが %s にアクセスするかを指定します。", +"groups found" => "グループが見つかりました", +"What attribute shall be used as login name:" => "ログイン名として利用する属性:", +"LDAP Username:" => "LDAP ユーザ名:", +"LDAP Email Address:" => "LDAP メールアドレス:", +"Other Attributes:" => "他の属性:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "ログイン実行時に適用するフィルタを定義します。%%uid にはログイン操作におけるユーザ名が入ります。例: \"uid=%%uid\"", "Add Server Configuration" => "サーバ設定を追加", "Host" => "ホスト", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL通信しない場合には、プロトコル名を省略することができます。そうでない場合には、ldaps:// から始めてください。", -"Base DN" => "ベースDN", -"One Base DN per line" => "1行に1つのベースDN", -"You can specify Base DN for users and groups in the Advanced tab" => "拡張タブでユーザとグループのベースDNを指定することができます。", +"Port" => "ポート", "User DN" => "ユーザDN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "クライアントユーザーのDNは、特定のものに結びつけることはしません。 例えば uid=agent,dc=example,dc=com. だと匿名アクセスの場合、DNとパスワードは空のままです。", "Password" => "パスワード", "For anonymous access, leave DN and Password empty." => "匿名アクセスの場合は、DNとパスワードを空にしてください。", -"User Login Filter" => "ユーザログインフィルタ", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "ログイン実行時に適用するフィルタを定義します。%%uid にはログイン操作におけるユーザ名が入ります。例: \"uid=%%uid\"", -"User List Filter" => "ユーザリストフィルタ", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "ユーザ取得時に適用するフィルタを定義します(プレースホルダ無し)。例: \"objectClass=person\"", -"Group Filter" => "グループフィルタ", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "グループ取得時に適用するフィルタを定義します(プレースホルダ無し)。例: \"objectClass=posixGroup\"", +"One Base DN per line" => "1行に1つのベースDN", +"You can specify Base DN for users and groups in the Advanced tab" => "拡張タブでユーザとグループのベースDNを指定することができます。", +"Limit the access to %s to users meeting this criteria:" => "この基準に合致するユーザに %s へのアクセスを制限:", +"The filter specifies which LDAP users shall have access to the %s instance." => "フィルタは、どの LDAP ユーザが %s にアクセスするかを指定します。", +"users found" => "ユーザが見つかりました", +"Back" => "戻る", +"Continue" => "続ける", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b> PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。", "Connection Settings" => "接続設定", "Configuration Active" => "設定はアクティブです", "When unchecked, this configuration will be skipped." => "チェックを外すと、この設定はスキップされます。", -"Port" => "ポート", "Backup (Replica) Host" => "バックアップ(レプリカ)ホスト", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。", "Backup (Replica) Port" => "バックアップ(レプリカ)ポート", "Disable Main Server" => "メインサーバを無効にする", "Only connect to the replica server." => "レプリカサーバーにのみ接続します。", -"Use TLS" => "TLSを利用", -"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。", "Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)", "Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "推奨されません、テストにおいてのみ使用してください!このオプションでのみ接続が動作する場合は、LDAP サーバのSSL証明書を %s サーバにインポートしてください。", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "内部ユーザ名属性:", "Override UUID detection" => "UUID検出を再定義する", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "デフォルトでは、UUID 属性は自動的に検出されます。UUID属性は、LDAPユーザとLDAPグループを間違いなく識別するために利用されます。また、もしこれを指定しない場合は、内部ユーザ名はUUIDに基づいて作成されます。この設定は再定義することができ、あなたの選択した属性を用いることができます。選択した属性がユーザとグループの両方に対して適用でき、かつユニークであることを確認してください。空であればデフォルトの振る舞いとなります。変更は、新しくマッピング(追加)されたLDAPユーザとLDAPグループに対してのみ有効となります。", -"UUID Attribute:" => "UUID属性:", +"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 a 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グループのマッピングをクリアする", -"Test Configuration" => "設定をテスト", -"Help" => "ヘルプ" +"Clear Groupname-LDAP Group Mapping" => "グループ名とLDAPグループのマッピングをクリアする" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/ka.php b/apps/user_ldap/l10n/ka.php index 3de4d3c722a..23b6c93df86 100644 --- a/apps/user_ldap/l10n/ka.php +++ b/apps/user_ldap/l10n/ka.php @@ -1,6 +1,8 @@ <?php $TRANSLATIONS = array( -"Password" => "პაროლი", -"Help" => "შველა" +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Help" => "შველა", +"Password" => "პაროლი" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/ka_GE.php b/apps/user_ldap/l10n/ka_GE.php index 860e8933b0d..ffdf7655517 100644 --- a/apps/user_ldap/l10n/ka_GE.php +++ b/apps/user_ldap/l10n/ka_GE.php @@ -3,42 +3,40 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "შეცდომა სერვერის კონფიგურაციის წაშლისას", "The configuration is valid and the connection could be established!" => "კონფიგურაცია მართებულია და კავშირი დამყარდება!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "კონფიგურაცია მართებულია, მაგრამ მიერთება ვერ მოხერხდა. გთხოვთ შეამოწმოთ სერვერის პარამეტრები და აუთენთიკაციის პარამეტრები.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "კონფიგურაცია არ არის მართებული. გთხოვთ ჩაიხედოთ დეტალური ინფორმაციისთვის ownCloud –ის ლოგში.", "Deletion failed" => "წაშლა ვერ განხორციელდა", "Take over settings from recent server configuration?" => "დაბრუნდებით სერვერის წინა კონფიგურაციაში?", "Keep settings?" => "დავტოვოთ პარამეტრები?", "Cannot add server configuration" => "სერვერის პარამეტრების დამატება ვერ მოხერხდა", "Success" => "დასრულდა", "Error" => "შეცდომა", +"Select groups" => "ჯგუფების არჩევა", "Connection test succeeded" => "კავშირის ტესტირება მოხერხდა", "Connection test failed" => "კავშირის ტესტირება ვერ მოხერხდა", "Do you really want to delete the current Server Configuration?" => "ნამდვილად გინდათ წაშალოთ სერვერის მიმდინარე პარამეტრები?", "Confirm Deletion" => "წაშლის დადასტურება", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>გაფრთხილება:</b> PHP LDAP მოდული არ არის ინსტალირებული, ბექენდი არ იმუშავებს. თხოვეთ თქვენს ადმინისტრატორს დააინსტალიროს ის.", -"Server configuration" => "სერვერის პარამეტრები", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "შენახვა", +"Test Configuration" => "კავშირის ტესტირება", +"Help" => "დახმარება", "Add Server Configuration" => "სერვერის პარამეტრების დამატება", "Host" => "ჰოსტი", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "თქვენ შეგიძლიათ გამოტოვოთ პროტოკოლი. გარდა ამისა გჭირდებათ SSL. შემდეგ დაიწყეთ ldaps://", -"Base DN" => "საწყისი DN", -"One Base DN per line" => "ერთი საწყისი DN ერთ ხაზზე", -"You can specify Base DN for users and groups in the Advanced tab" => "თქვენ შეგიძლიათ მიუთითოთ საწყისი DN მომხმარებლებისთვის და ჯგუფებისთვის Advanced ტაბში", +"Port" => "პორტი", "User DN" => "მომხმარებლის DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "მომხმარებლის DN რომელთანაც უნდა მოხდეს დაკავშირება მოხდება შემდეგნაირად მაგ: uid=agent,dc=example,dc=com. ხოლო ანონიმური დაშვებისთვის, დატოვეთ DN–ის და პაროლის ველები ცარიელი.", "Password" => "პაროლი", "For anonymous access, leave DN and Password empty." => "ანონიმური დაშვებისთვის, დატოვეთ DN–ის და პაროლის ველები ცარიელი.", -"User Login Filter" => "მომხმარებლის ფილტრი", -"User List Filter" => "მომხმარებლებიის სიის ფილტრი", -"Group Filter" => "ჯგუფის ფილტრი", +"One Base DN per line" => "ერთი საწყისი DN ერთ ხაზზე", +"You can specify Base DN for users and groups in the Advanced tab" => "თქვენ შეგიძლიათ მიუთითოთ საწყისი DN მომხმარებლებისთვის და ჯგუფებისთვის Advanced ტაბში", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>გაფრთხილება:</b> PHP LDAP მოდული არ არის ინსტალირებული, ბექენდი არ იმუშავებს. თხოვეთ თქვენს ადმინისტრატორს დააინსტალიროს ის.", "Connection Settings" => "კავშირის პარამეტრები", "Configuration Active" => "კონფიგურაცია აქტიურია", "When unchecked, this configuration will be skipped." => "როცა გადანიშნულია, ეს კონფიგურაცია გამოტოვებული იქნება.", -"Port" => "პორტი", "Backup (Replica) Host" => "ბექაფ (რეპლიკა) ჰოსტი", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "მიუთითეთ რაიმე ბექაფ ჰოსტი. ის უნდა იყოს ძირითადი LDAP/AD სერვერის რეპლიკა.", "Backup (Replica) Port" => "ბექაფ (რეპლიკა) პორტი", "Disable Main Server" => "გამორთეთ ძირითადი სერვერი", -"Use TLS" => "გამოიყენეთ TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "არ გამოიყენოთ დამატებით LDAPS კავშირი. ის წარუმატებლად დასრულდება.", "Case insensitve LDAP server (Windows)" => "LDAP server (Windows)", "Turn off SSL certificate validation." => "გამორთეთ SSL სერთიფიკატის ვალიდაცია.", "Cache Time-To-Live" => "ქეშის სიცოცხლის ხანგრძლივობა", @@ -60,8 +58,6 @@ $TRANSLATIONS = array( "in bytes" => "ბაიტებში", "Email Field" => "იმეილის ველი", "User Home Folder Naming Rule" => "მომხმარებლის Home დირექტორიის სახელების დარქმევის წესი", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "დატოვეთ ცარიელი მომხმარებლის სახელი (default). სხვა დანარჩენში მიუთითეთ LDAP/AD ატრიბუტი.", -"Test Configuration" => "კავშირის ტესტირება", -"Help" => "დახმარება" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "დატოვეთ ცარიელი მომხმარებლის სახელი (default). სხვა დანარჩენში მიუთითეთ LDAP/AD ატრიბუტი." ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/km.php b/apps/user_ldap/l10n/km.php new file mode 100644 index 00000000000..bba52d53a1a --- /dev/null +++ b/apps/user_ldap/l10n/km.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array("") +); +$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/kn.php b/apps/user_ldap/l10n/kn.php new file mode 100644 index 00000000000..bba52d53a1a --- /dev/null +++ b/apps/user_ldap/l10n/kn.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array("") +); +$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php index a5a2798165c..2d861f27ba8 100644 --- a/apps/user_ldap/l10n/ko.php +++ b/apps/user_ldap/l10n/ko.php @@ -1,45 +1,110 @@ <?php $TRANSLATIONS = array( +"Failed to clear the mappings." => "매핑을 비울 수 없습니다.", +"Failed to delete the server configuration" => "서버 설정을 삭제할 수 없습니다.", +"The configuration is valid and the connection could be established!" => "설정 정보가 올바르고 연결할 수 있습니다!", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "설정 정보가 올바르지만 바인딩이 실패하였습니다. 서버 설정과 인증 정보를 확인하십시오.", +"The configuration is invalid. Please have a look at the logs for further details." => "설정이 올바르지 않습니다. 자세한 사항은 로그를 참고하십시오.", +"No action specified" => "동작이 지정되지 않음", +"No configuration specified" => "설정이 지정되지 않음", +"No data specified" => "데이터가 지정되지 않음", +" Could not set configuration %s" => " 설정 %s을(를) 지정할 수 없음", "Deletion failed" => "삭제 실패", -"Keep settings?" => "설정을 유지합니까?", +"Take over settings from recent server configuration?" => "최근 서버 설정을 다시 불러오시겠습니까?", +"Keep settings?" => "설정을 유지하겠습니까?", +"Cannot add server configuration" => "서버 설정을 추가할 수 없음", +"mappings cleared" => "매핑 삭제됨", +"Success" => "성공", "Error" => "오류", +"Configuration OK" => "설정 올바름", +"Configuration incorrect" => "설정 올바르지 않음", +"Configuration incomplete" => "설정 불완전함", +"Select groups" => "그룹 선택", +"Select object classes" => "객체 클래스 선택", +"Select attributes" => "속성 선택", "Connection test succeeded" => "연결 시험 성공", "Connection test failed" => "연결 시험 실패", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>경고:</b> PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", +"Do you really want to delete the current Server Configuration?" => "현재 서버 설정을 지우시겠습니까?", +"Confirm Deletion" => "삭제 확인", +"_%s group found_::_%s groups found_" => array("그룹 %s개 찾음"), +"_%s user found_::_%s users found_" => array("사용자 %s명 찾음"), +"Invalid Host" => "잘못된 호스트", +"Could not find the desired feature" => "필요한 기능을 찾을 수 없음", +"Save" => "저장", +"Test Configuration" => "설정 시험", +"Help" => "도움말", +"Limit the access to %s to groups meeting this criteria:" => "다음 조건을 만족하는 그룹만 %s 접근 허용:", +"only those object classes:" => "다음 객체 클래스만:", +"only from those groups:" => "다음 그룹에서만:", +"Edit raw filter instead" => "필터 직접 편집", +"Raw LDAP filter" => "LDAP 필터", +"The filter specifies which LDAP groups shall have access to the %s instance." => "이 필터는 %s에 접근할 수 있는 LDAP 그룹을 설정합니다.", +"groups found" => "그룹 찾음", +"What attribute shall be used as login name:" => "로그인 이름으로 사용할 속성:", +"LDAP Username:" => "LDAP 사용자 이름:", +"LDAP Email Address:" => "LDAP 이메일 주소:", +"Other Attributes:" => "기타 속성:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "로그인을 시도할 때 적용할 필터를 입력하십시오. %%uid는 로그인 동작의 사용자 이름으로 대체됩니다. 예: \"uid=%%uid\"", +"Add Server Configuration" => "서버 설정 추가", "Host" => "호스트", -"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.", -"Base DN" => "기본 DN", -"One Base DN per line" => "기본 DN을 한 줄에 하나씩 입력하십시오", -"You can specify Base DN for users and groups in the Advanced tab" => "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하지 않으면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.", +"Port" => "포트", "User DN" => "사용자 DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "바인딩 작업을 수행할 클라이언트 사용자 DN입니다. 예를 들어서 uid=agent,dc=example,dc=com입니다. 익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", "Password" => "암호", "For anonymous access, leave DN and Password empty." => "익명 접근을 허용하려면 DN과 암호를 비워 두십시오.", -"User Login Filter" => "사용자 로그인 필터", -"User List Filter" => "사용자 목록 필터", -"Group Filter" => "그룹 필터", +"One Base DN per line" => "기본 DN을 한 줄에 하나씩 입력하십시오", +"You can specify Base DN for users and groups in the Advanced tab" => "고급 탭에서 사용자 및 그룹에 대한 기본 DN을 지정할 수 있습니다.", +"Limit the access to %s to users meeting this criteria:" => "다음 조건을 만족하는 사용자만 %s 접근 허용:", +"The filter specifies which LDAP users shall have access to the %s instance." => "이 필터는 %s에 접근할 수 있는 LDAP 사용자를 설정합니다.", +"users found" => "사용자 찾음", +"Back" => "뒤로", +"Continue" => "계속", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>경고:</b> PHP LDAP 모듈이 비활성화되어 있거나 설치되어 있지 않습니다. 백엔드를 사용할 수 없습니다. 시스템 관리자에게 설치를 요청하십시오.", "Connection Settings" => "연결 설정", -"Configuration Active" => "구성 활성화", -"Port" => "포트", -"Backup (Replica) Host" => "백업 (복제) 포트", +"Configuration Active" => "구성 활성", +"When unchecked, this configuration will be skipped." => "선택하지 않으면 이 설정을 무시합니다.", +"Backup (Replica) Host" => "백업 (복제) 호스트", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "추가적인 백업 호스트를 지정합니다. 기본 LDAP/AD 서버의 복사본이어야 합니다.", "Backup (Replica) Port" => "백업 (복제) 포트", "Disable Main Server" => "주 서버 비활성화", -"Use TLS" => "TLS 사용", +"Only connect to the replica server." => "복제 서버에만 연결합니다.", "Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)", "Turn off SSL certificate validation." => "SSL 인증서 유효성 검사를 해제합니다.", -"in seconds. A change empties the cache." => "초. 항목 변경 시 캐시가 갱신됩니다.", -"Directory Settings" => "디렉토리 설정", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "테스트 목적으로만 사용하십시오! 이 옵션을 사용해야만 연결할 수 있으면 %s 서버에 LDAP 서버의 SSL 인증서를 설치하십시오.", +"Cache Time-To-Live" => "캐시 유지 시간", +"in seconds. A change empties the cache." => "초 단위입니다. 항목 변경 시 캐시가 갱신됩니다.", +"Directory Settings" => "디렉터리 설정", "User Display Name Field" => "사용자의 표시 이름 필드", +"The LDAP attribute to use to generate the user's display name." => "사용자 표시 이름을 생성할 때 사용할 LDAP 속성입니다.", "Base User Tree" => "기본 사용자 트리", "One User Base DN per line" => "사용자 DN을 한 줄에 하나씩 입력하십시오", "User Search Attributes" => "사용자 검색 속성", +"Optional; one attribute per line" => "추가적, 한 줄에 하나의 속성을 입력하십시오", "Group Display Name Field" => "그룹의 표시 이름 필드", +"The LDAP attribute to use to generate the groups's display name." => "그룹 표시 이름을 생성할 때 사용할 LDAP 속성입니다.", "Base Group Tree" => "기본 그룹 트리", "One Group Base DN per line" => "그룹 기본 DN을 한 줄에 하나씩 입력하십시오", "Group Search Attributes" => "그룹 검색 속성", "Group-Member association" => "그룹-회원 연결", -"in bytes" => "바이트", +"Special Attributes" => "특수 속성", +"Quota Field" => "할당량 필드", +"Quota Default" => "기본 할당량", +"in bytes" => "바이트 단위", +"Email Field" => "이메일 필드", +"User Home Folder Naming Rule" => "사용자 홈 폴더 이름 규칙", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.", -"Help" => "도움말" +"Internal Username" => "내부 사용자 이름", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "기본적으로 내부 사용자 이름은 UUID 속성에서 생성됩니다. 사용자 이름이 중복되지 않고 문자열을 변환할 필요가 없도록 합니다. 내부 사용자 이름에는 다음과 같은 문자열만 사용할 수 있습니다: [a-zA-Z0-9_.@-] 다른 문자열은 ASCII에 해당하는 문자열로 변경되거나 없는 글자로 취급됩니다. 충돌하는 경우 숫자가 붙거나 증가합니다. 내부 사용자 이름은 내부적으로 사용자를 식별하는 데 사용되며, 사용자 홈 폴더의 기본 이름입니다. 또한 *DAV와 같은 외부 URL의 일부로 사용됩니다. 이 설정을 사용하면 기본 설정을 재정의할 수 있습니다. ownCloud 5 이전의 행동을 사용하려면 아래 필드에 사용자의 표시 이름 속성을 입력하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자에게만 적용됩니다.", +"Internal Username Attribute:" => "내부 사용자 이름 속성:", +"Override UUID detection" => "UUID 확인 재정의", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "기본적으로 UUID 속성은 자동적으로 감지됩니다. UUID 속성은 LDAP 사용자와 그룹을 정확히 식별하는 데 사용됩니다. 지정하지 않은 경우 내부 사용자 이름은 UUID를 기반으로 생성됩니다. 이 설정을 다시 정의하고 임의의 속성을 지정할 수 있습니다. 사용자와 그룹 모두에게 속성을 적용할 수 있고 중복된 값이 없는지 확인하십시오. 비워 두면 기본 설정을 사용합니다. 새로 추가되거나 매핑된 LDAP 사용자와 그룹에만 적용됩니다.", +"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 a 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 그룹 매핑 비우기" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/ku_IQ.php b/apps/user_ldap/l10n/ku_IQ.php index d211e9554a8..7d3b22f8494 100644 --- a/apps/user_ldap/l10n/ku_IQ.php +++ b/apps/user_ldap/l10n/ku_IQ.php @@ -2,7 +2,10 @@ $TRANSLATIONS = array( "Success" => "سهرکهوتن", "Error" => "ههڵه", -"Password" => "وشەی تێپەربو", -"Help" => "یارمەتی" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "پاشکهوتکردن", +"Help" => "یارمەتی", +"Password" => "وشەی تێپەربو" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/lb.php b/apps/user_ldap/l10n/lb.php index 0a268bbb391..c6fdc003548 100644 --- a/apps/user_ldap/l10n/lb.php +++ b/apps/user_ldap/l10n/lb.php @@ -2,7 +2,13 @@ $TRANSLATIONS = array( "Deletion failed" => "Konnt net läschen", "Error" => "Fehler", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Späicheren", +"Help" => "Hëllef", +"Host" => "Host", "Password" => "Passwuert", -"Help" => "Hëllef" +"Back" => "Zeréck", +"Continue" => "Weider" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/lt_LT.php b/apps/user_ldap/l10n/lt_LT.php index f0522016825..c20bf679d0f 100644 --- a/apps/user_ldap/l10n/lt_LT.php +++ b/apps/user_ldap/l10n/lt_LT.php @@ -2,35 +2,39 @@ $TRANSLATIONS = array( "Failed to clear the mappings." => "Nepavyko išvalyti sąsajų.", "Failed to delete the server configuration" => "Nepavyko pašalinti serverio konfigūracijos", +"The configuration is valid and the connection could be established!" => "Konfigūracija yra tinkama bei prisijungta sėkmingai!", "Deletion failed" => "Ištrinti nepavyko", "Keep settings?" => "Išlaikyti nustatymus?", +"Cannot add server configuration" => "Negalima pridėti serverio konfigūracijos", "mappings cleared" => "susiejimai išvalyti", "Success" => "Sėkmingai", "Error" => "Klaida", +"Select groups" => "Pasirinkti grupes", "Connection test succeeded" => "Ryšio patikrinimas pavyko", "Connection test failed" => "Ryšio patikrinimas nepavyko", "Do you really want to delete the current Server Configuration?" => "Ar tikrai norite ištrinti dabartinę serverio konfigūraciją?", "Confirm Deletion" => "Patvirtinkite trynimą", -"Server configuration" => "Serverio konfigūravimas", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Išsaugoti", +"Test Configuration" => "Bandyti konfigūraciją", +"Help" => "Pagalba", "Add Server Configuration" => "Pridėti serverio konfigūraciją", "Host" => "Mazgas", -"Base DN" => "Bazinis DN", -"One Base DN per line" => "Vienas bazinis DN eilutėje", +"Port" => "Prievadas", "User DN" => "Naudotojas DN", "Password" => "Slaptažodis", "For anonymous access, leave DN and Password empty." => "Anoniminiam prisijungimui, palikite DN ir Slaptažodis laukus tuščius.", -"User Login Filter" => "Naudotojo prisijungimo filtras", -"User List Filter" => "Naudotojo sąrašo filtras", -"Group Filter" => "Grupės filtras", +"One Base DN per line" => "Vienas bazinis DN eilutėje", +"Back" => "Atgal", +"Continue" => "Tęsti", "Connection Settings" => "Ryšio nustatymai", "Configuration Active" => "Konfigūracija aktyvi", "When unchecked, this configuration will be skipped." => "Kai nepažymėta, ši konfigūracija bus praleista.", -"Port" => "Prievadas", "Backup (Replica) Host" => "Atsarginės kopijos (Replica) mazgas", "Backup (Replica) Port" => "Atsarginės kopijos (Replica) prievadas", "Disable Main Server" => "Išjungti pagrindinį serverį", "Only connect to the replica server." => "Tik prisijungti prie reprodukcinio (replica) serverio.", -"Use TLS" => "Naudoti TLS", "Turn off SSL certificate validation." => "Išjungti SSL sertifikato tikrinimą.", "Directory Settings" => "Katalogo nustatymai", "Base User Tree" => "Bazinis naudotojo medis", @@ -47,11 +51,8 @@ $TRANSLATIONS = array( "Internal Username" => "Vidinis naudotojo vardas", "Internal Username Attribute:" => "Vidinis naudotojo vardo atributas:", "Override UUID detection" => "Perrašyti UUID aptikimą", -"UUID Attribute:" => "UUID atributas:", "Username-LDAP User Mapping" => "Naudotojo vardo - LDAP naudotojo sąsaja", "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ą", -"Test Configuration" => "Bandyti konfigūraciją", -"Help" => "Pagalba" +"Clear Groupname-LDAP Group Mapping" => "Išvalyti grupės pavadinimo - LDAP naudotojo sąsają" ); $PLURAL_FORMS = "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/lv.php b/apps/user_ldap/l10n/lv.php index 11a68fffeb4..769f17e6338 100644 --- a/apps/user_ldap/l10n/lv.php +++ b/apps/user_ldap/l10n/lv.php @@ -3,41 +3,39 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Neizdevās izdzēst servera konfigurāciju", "The configuration is valid and the connection could be established!" => "Konfigurācija ir derīga un varēja izveidot savienojumu!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurācija ir derīga, bet sasaiste neizdevās. Lūdzu, pārbaudiet servera iestatījumus un akreditācijas datus.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurācija ir nederīga. Lūdzu, apskatiet ownCloud žurnālu, lai uzzinātu vairāk.", "Deletion failed" => "Neizdevās izdzēst", "Take over settings from recent server configuration?" => "Paņemt iestatījumus no nesenas servera konfigurācijas?", "Keep settings?" => "Paturēt iestatījumus?", "Cannot add server configuration" => "Nevar pievienot servera konfigurāciju", "Error" => "Kļūda", +"Select groups" => "Izvēlieties grupas", "Connection test succeeded" => "Savienojuma tests ir veiksmīgs", "Connection test failed" => "Savienojuma tests cieta neveiksmi", "Do you really want to delete the current Server Configuration?" => "Vai tiešām vēlaties dzēst pašreizējo servera konfigurāciju?", "Confirm Deletion" => "Apstiprināt dzēšanu", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", -"Server configuration" => "Servera konfigurācija", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Saglabāt", +"Test Configuration" => "Testa konfigurācija", +"Help" => "Palīdzība", "Add Server Configuration" => "Pievienot servera konfigurāciju", "Host" => "Resursdators", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Var neiekļaut protokolu, izņemot, ja vajag SSL. Tad sākums ir ldaps://", -"Base DN" => "Bāzes DN", -"One Base DN per line" => "Viena bāzes DN rindā", -"You can specify Base DN for users and groups in the Advanced tab" => "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”", +"Port" => "Ports", "User DN" => "Lietotāja DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Klienta lietotāja DN, ar ko veiks sasaisti, piemēram, uid=agent,dc=example,dc=com. Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", "Password" => "Parole", "For anonymous access, leave DN and Password empty." => "Lai piekļūtu anonīmi, atstājiet DN un paroli tukšu.", -"User Login Filter" => "Lietotāja ierakstīšanās filtrs", -"User List Filter" => "Lietotāju saraksta filtrs", -"Group Filter" => "Grupu filtrs", +"One Base DN per line" => "Viena bāzes DN rindā", +"You can specify Base DN for users and groups in the Advanced tab" => "Lietotājiem un grupām bāzes DN var norādīt cilnē “Paplašināti”", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Brīdinājums:</b> PHP LDAP modulis nav uzinstalēts, aizmugure nedarbosies. Lūdzu, prasiet savam sistēmas administratoram kādu no tām deaktivēt.", "Connection Settings" => "Savienojuma iestatījumi", "Configuration Active" => "Konfigurācija ir aktīva", "When unchecked, this configuration will be skipped." => "Ja nav atzīmēts, šī konfigurācija tiks izlaista.", -"Port" => "Ports", "Backup (Replica) Host" => "Rezerves (kopija) serveris", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.", "Backup (Replica) Port" => "Rezerves (kopijas) ports", "Disable Main Server" => "Deaktivēt galveno serveri", -"Use TLS" => "Lietot TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Neizmanto papildu LDAPS savienojumus! Tas nestrādās.", "Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)", "Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.", "Cache Time-To-Live" => "Kešatmiņas dzīvlaiks", @@ -59,8 +57,6 @@ $TRANSLATIONS = array( "in bytes" => "baitos", "Email Field" => "E-pasta lauks", "User Home Folder Naming Rule" => "Lietotāja mājas mapes nosaukšanas kārtula", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu.", -"Test Configuration" => "Testa konfigurācija", -"Help" => "Palīdzība" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Atstāt tukšu lietotāja vārdam (noklusējuma). Citādi, norādi LDAP/AD atribūtu." ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/mk.php b/apps/user_ldap/l10n/mk.php index 3d261c3d80c..fcbc01f137b 100644 --- a/apps/user_ldap/l10n/mk.php +++ b/apps/user_ldap/l10n/mk.php @@ -1,10 +1,21 @@ <?php $TRANSLATIONS = array( "Deletion failed" => "Бришењето е неуспешно", +"Keep settings?" => "Да ги сочувам нагодувањата?", +"Cannot add server configuration" => "Не можам да ја додадам конфигурацијата на серверот", "Error" => "Грешка", +"Connection test succeeded" => "Тестот за поврзување е успешен", +"Connection test failed" => "Тестот за поврзување не е успешен", +"Confirm Deletion" => "Потврдете го бришењето", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Сними", +"Help" => "Помош", "Host" => "Домаќин", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://", +"Port" => "Порта", "Password" => "Лозинка", -"Help" => "Помош" +"Back" => "Назад", +"Continue" => "Продолжи" ); $PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"; diff --git a/apps/user_ldap/l10n/ml_IN.php b/apps/user_ldap/l10n/ml_IN.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/ml_IN.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ms_MY.php b/apps/user_ldap/l10n/ms_MY.php index 5d3f8019ceb..7010e8a8f50 100644 --- a/apps/user_ldap/l10n/ms_MY.php +++ b/apps/user_ldap/l10n/ms_MY.php @@ -2,7 +2,11 @@ $TRANSLATIONS = array( "Deletion failed" => "Pemadaman gagal", "Error" => "Ralat", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "Simpan", +"Help" => "Bantuan", "Password" => "Kata laluan", -"Help" => "Bantuan" +"Back" => "Kembali" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/my_MM.php b/apps/user_ldap/l10n/my_MM.php index 3d9c248f66a..ea1881f114f 100644 --- a/apps/user_ldap/l10n/my_MM.php +++ b/apps/user_ldap/l10n/my_MM.php @@ -1,6 +1,8 @@ <?php $TRANSLATIONS = array( -"Password" => "စကားဝှက်", -"Help" => "အကူအညီ" +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Help" => "အကူအညီ", +"Password" => "စကားဝှက်" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php index 8c482ed2a55..625ec79d76b 100644 --- a/apps/user_ldap/l10n/nb_NO.php +++ b/apps/user_ldap/l10n/nb_NO.php @@ -3,37 +3,37 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Klarte ikke å slette tjener-konfigurasjonen.", "The configuration is valid and the connection could be established!" => "Konfigurasjonen er i orden og tilkoblingen skal være etablert!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasjonen er i orden, men Bind mislyktes. Vennligst sjekk tjener-konfigurasjonen og påloggingsinformasjonen.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurasjonen er ikke i orden. Vennligst se ownClouds logfil for flere detaljer.", "Deletion failed" => "Sletting mislyktes", "Take over settings from recent server configuration?" => "Hent innstillinger fra tidligere tjener-konfigurasjon?", "Keep settings?" => "Behold innstillinger?", "Cannot add server configuration" => "Kan ikke legge til tjener-konfigurasjon", "Success" => "Suksess", "Error" => "Feil", +"Select groups" => "Velg grupper", "Connection test succeeded" => "Tilkoblingstest lyktes", "Connection test failed" => "Tilkoblingstest mislyktes", "Do you really want to delete the current Server Configuration?" => "Er du sikker på at du vil slette aktiv tjener-konfigurasjon?", "Confirm Deletion" => "Bekreft sletting", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warning:</b> PHP LDAP modulen er ikke installert, hjelperen vil ikke virke. Vennligst be din system-administrator om å installere den.", -"Server configuration" => "Tjener-konfigurasjon", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Lagre", +"Help" => "Hjelp", "Add Server Configuration" => "Legg til tjener-konfigurasjon", "Host" => "Tjener", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan utelate protokollen, men du er påkrevd å bruke SSL. Deretter starte med ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "En hoved DN pr. linje", -"You can specify Base DN for users and groups in the Advanced tab" => "Du kan spesifisere Base DN for brukere og grupper under Avansert fanen", +"Port" => "Port", "User DN" => "Bruker DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN nummeret til klienten som skal bindes til, f.eks. uid=agent,dc=example,dc=com. For anonym tilgang, la DN- og passord-feltet stå tomt.", "Password" => "Passord", "For anonymous access, leave DN and Password empty." => "For anonym tilgang, la DN- og passord-feltet stå tomt.", -"User Login Filter" => "Brukerpålogging filter", -"User List Filter" => "Brukerliste filter", -"Group Filter" => "Gruppefilter", +"One Base DN per line" => "En hoved DN pr. linje", +"You can specify Base DN for users and groups in the Advanced tab" => "Du kan spesifisere Base DN for brukere og grupper under Avansert fanen", +"Back" => "Tilbake", +"Continue" => "Fortsett", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warning:</b> PHP LDAP modulen er ikke installert, hjelperen vil ikke virke. Vennligst be din system-administrator om å installere den.", "Configuration Active" => "Konfigurasjon aktiv", "When unchecked, this configuration will be skipped." => "Når ikke huket av så vil denne konfigurasjonen bli hoppet over.", -"Port" => "Port", "Backup (Replica) Host" => "Sikkerhetskopierings (Replica) vert", -"Use TLS" => "Bruk TLS", "Case insensitve LDAP server (Windows)" => "Case-insensitiv LDAP tjener (Windows)", "Turn off SSL certificate validation." => "Slå av SSL-sertifikat validering", "in seconds. A change empties the cache." => "i sekunder. En endring tømmer bufferen.", @@ -45,7 +45,6 @@ $TRANSLATIONS = array( "One Group Base DN per line" => "En gruppe hoved-DN pr. linje", "Group-Member association" => "gruppe-medlem assosiasjon", "in bytes" => "i bytes", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt.", -"Help" => "Hjelp" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/nds.php b/apps/user_ldap/l10n/nds.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/nds.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ne.php b/apps/user_ldap/l10n/ne.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/ne.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php index b56dcf15791..bfe96f4268c 100644 --- a/apps/user_ldap/l10n/nl.php +++ b/apps/user_ldap/l10n/nl.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Verwijderen serverconfiguratie mislukt", "The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "De configuratie is geldig, maar Bind mislukte. Controleer de serverinstellingen en inloggegevens.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "De configuratie is ongeldig. Controleer de ownCloud log voor meer details.", +"The configuration is invalid. Please have a look at the logs for further details." => "De configuratie is ongeldig. Bekijk de logbestanden voor meer details.", +"No action specified" => "Geen actie opgegeven", +"No configuration specified" => "Geen configuratie opgegeven", +"No data specified" => "Geen gegevens verstrekt", +" Could not set configuration %s" => "Kon configuratie %s niet instellen", "Deletion failed" => "Verwijderen mislukt", "Take over settings from recent server configuration?" => "Overnemen instellingen van de recente serverconfiguratie?", "Keep settings?" => "Instellingen bewaren?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "vertaaltabel leeggemaakt", "Success" => "Succes", "Error" => "Fout", +"Configuration OK" => "Configuratie OK", +"Configuration incorrect" => "Configuratie onjuist", +"Configuration incomplete" => "Configuratie incompleet", +"Select groups" => "Selecteer groepen", +"Select object classes" => "Selecteer objectklasse", +"Select attributes" => "Selecteer attributen", "Connection test succeeded" => "Verbindingstest geslaagd", "Connection test failed" => "Verbindingstest mislukt", "Do you really want to delete the current Server Configuration?" => "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?", "Confirm Deletion" => "Bevestig verwijderen", -"<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 incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Waarschuwing:</b> De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren.", -"Server configuration" => "Serverconfiguratie", +"_%s group found_::_%s groups found_" => array("%s groep gevonden","%s groepen gevonden"), +"_%s user found_::_%s users found_" => array("%s gebruiker gevonden","%s gebruikers gevonden"), +"Invalid Host" => "Ongeldige server", +"Could not find the desired feature" => "Kon de gewenste functie niet vinden", +"Save" => "Bewaren", +"Test Configuration" => "Test configuratie", +"Help" => "Help", +"Limit the access to %s to groups meeting this criteria:" => "Beperk toegang tot %s tot groepen die voldoen aan deze criteria:", +"only those object classes:" => "alleen deze objectklassen", +"only from those groups:" => "alleen van deze groepen:", +"Edit raw filter instead" => "Bewerk raw filter", +"Raw LDAP filter" => "Raw LDAP filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Dit filter geeft aan welke LDAP groepen toegang hebben tot %s.", +"groups found" => "groepen gevonden", +"What attribute shall be used as login name:" => "Welk attribuut moet worden gebruikt als inlognaam:", +"LDAP Username:" => "LDAP Username:", +"LDAP Email Address:" => "LDAP e-mailadres:", +"Other Attributes:" => "Overige attributen:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Definiëert het toe te passen filter als er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam bij het inloggen. Bijvoorbeeld: \"uid=%%uid\"", "Add Server Configuration" => "Toevoegen serverconfiguratie", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "Een Base DN per regel", -"You can specify Base DN for users and groups in the Advanced tab" => "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd.", +"Port" => "Poort", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "De DN van de client gebruiker waarmee de verbinding zal worden gemaakt, bijv. uid=agent,dc=example,dc=com. Voor anonieme toegang laat je het DN en het wachtwoord leeg.", "Password" => "Wachtwoord", "For anonymous access, leave DN and Password empty." => "Voor anonieme toegang, laat de DN en het wachtwoord leeg.", -"User Login Filter" => "Gebruikers Login Filter", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Definiëert het toe te passen filter als er geprobeerd wordt in te loggen. %%uid vervangt de gebruikersnaam bij het inloggen. Bijvoorbeeld: \"uid=%%uid\"", -"User List Filter" => "Gebruikers Lijst Filter", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definieert het toe te passen filter bij het ophalen van gebruikers (geen tijdelijke aanduidingen). Bijvoorbeeld: \"objectClass=person\"", -"Group Filter" => "Groep Filter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definieert het toe te passen filter bij het ophalen van groepen (geen tijdelijke aanduidingen). Bijvoorbeeld: \"objectClass=posixGroup\"", +"One Base DN per line" => "Een Base DN per regel", +"You can specify Base DN for users and groups in the Advanced tab" => "Je kunt het Base DN voor gebruikers en groepen specificeren in het tab Geavanceerd.", +"Limit the access to %s to users meeting this criteria:" => "Beperk toegang tot %s tot gebruikers die voldoen aan deze criteria:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Dit filter geeft aan welke LDAP gebruikers toegang hebben tot %s.", +"users found" => "gebruikers gevonden", +"Back" => "Terug", +"Continue" => "Verder", +"<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 incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Waarschuwing:</b> De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren.", "Connection Settings" => "Verbindingsinstellingen", "Configuration Active" => "Configuratie actief", "When unchecked, this configuration will be skipped." => "Als dit niet is ingeschakeld wordt deze configuratie overgeslagen.", -"Port" => "Poort", "Backup (Replica) Host" => "Backup (Replica) Host", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Opgeven optionele backup host. Het moet een replica van de hoofd LDAP/AD server.", "Backup (Replica) Port" => "Backup (Replica) Poort", "Disable Main Server" => "Deactiveren hoofdserver", "Only connect to the replica server." => "Maak alleen een verbinding met de replica server.", -"Use TLS" => "Gebruik TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Gebruik het niet voor LDAPS verbindingen, dat gaat niet lukken.", "Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)", "Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Niet aanbevolen, gebruik alleen om te testen! Als de connectie alleen werkt met deze optie, importeer dan het SSL-certificaat van de LDAP-server naar uw %s server.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Interne gebruikersnaam attribuut:", "Override UUID detection" => "Negeren UUID detectie", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Standaard herkent ownCloud het UUID-attribuut automatisch. Het UUID attribuut wordt gebruikt om LDAP-gebruikers en -groepen uniek te identificeren. Ook zal de interne gebruikersnaam worden aangemaakt op basis van het UUID, tenzij deze hierboven anders is aangegeven. U kunt de instelling overschrijven en zelf een waarde voor het attribuut opgeven. U moet ervoor zorgen dat het ingestelde attribuut kan worden opgehaald voor zowel gebruikers als groepen en dat het uniek is. Laat het leeg voor standaard gedrag. Veranderingen worden alleen doorgevoerd op nieuw gekoppelde (toegevoegde) LDAP-gebruikers en-groepen.", -"UUID Attribute:" => "UUID Attribuut:", +"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 a 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 maakt gebruik van gebruikersnamen 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 ownCloud gebruikersnaam aan 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 naam 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", -"Test Configuration" => "Test configuratie", -"Help" => "Help" +"Clear Groupname-LDAP Group Mapping" => "Leegmaken Groepsnaam-LDAP groep vertaling" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/nn_NO.php b/apps/user_ldap/l10n/nn_NO.php index 470114d9359..c8b7ec091b6 100644 --- a/apps/user_ldap/l10n/nn_NO.php +++ b/apps/user_ldap/l10n/nn_NO.php @@ -2,8 +2,14 @@ $TRANSLATIONS = array( "Deletion failed" => "Feil ved sletting", "Error" => "Feil", +"Select groups" => "Vel grupper", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Lagra", +"Help" => "Hjelp", "Host" => "Tenar", "Password" => "Passord", -"Help" => "Hjelp" +"Back" => "Tilbake", +"Continue" => "Gå vidare" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/nqo.php b/apps/user_ldap/l10n/nqo.php new file mode 100644 index 00000000000..bba52d53a1a --- /dev/null +++ b/apps/user_ldap/l10n/nqo.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array("") +); +$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/oc.php b/apps/user_ldap/l10n/oc.php index 81df26117f1..3b3e8365a65 100644 --- a/apps/user_ldap/l10n/oc.php +++ b/apps/user_ldap/l10n/oc.php @@ -2,7 +2,10 @@ $TRANSLATIONS = array( "Deletion failed" => "Fracàs d'escafatge", "Error" => "Error", -"Password" => "Senhal", -"Help" => "Ajuda" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Enregistra", +"Help" => "Ajuda", +"Password" => "Senhal" ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/pa.php b/apps/user_ldap/l10n/pa.php index ac486a8ca2f..b52a4a88005 100644 --- a/apps/user_ldap/l10n/pa.php +++ b/apps/user_ldap/l10n/pa.php @@ -1,6 +1,8 @@ <?php $TRANSLATIONS = array( "Error" => "ਗਲਤੀ", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), "Password" => "ਪਾਸਵਰ" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php index 7801f73dc12..056718a027d 100644 --- a/apps/user_ldap/l10n/pl.php +++ b/apps/user_ldap/l10n/pl.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Nie można usunąć konfiguracji serwera", "The configuration is valid and the connection could be established!" => "Konfiguracja jest prawidłowa i można ustanowić połączenie!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfiguracja jest prawidłowa, ale Bind nie. Sprawdź ustawienia serwera i poświadczenia.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfiguracja jest nieprawidłowa. Proszę przejrzeć logi dziennika ownCloud ", "Deletion failed" => "Usunięcie nie powiodło się", "Take over settings from recent server configuration?" => "Przejmij ustawienia z ostatnich konfiguracji serwera?", "Keep settings?" => "Zachować ustawienia?", @@ -12,35 +11,37 @@ $TRANSLATIONS = array( "mappings cleared" => "Mapoanie wyczyszczone", "Success" => "Sukces", "Error" => "Błąd", +"Select groups" => "Wybierz grupy", "Connection test succeeded" => "Test połączenia udany", "Connection test failed" => "Test połączenia nie udany", "Do you really want to delete the current Server Configuration?" => "Czy chcesz usunąć bieżącą konfigurację serwera?", "Confirm Deletion" => "Potwierdź usunięcie", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ostrzeżenie:</b> Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go.", -"Server configuration" => "Konfiguracja servera", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Zapisz", +"Test Configuration" => "Konfiguracja testowa", +"Help" => "Pomoc", "Add Server Configuration" => "Dodaj konfigurację servera", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://", -"Base DN" => "Baza DN", -"One Base DN per line" => "Jedna baza DN na linię", -"You can specify Base DN for users and groups in the Advanced tab" => "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane", +"Port" => "Port", "User DN" => "Użytkownik DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN użytkownika klienta, z którym powiązanie wykonuje się, np. uid=agent,dc=example,dc=com. Dla dostępu anonimowego pozostawić DN i hasło puste", "Password" => "Hasło", "For anonymous access, leave DN and Password empty." => "Dla dostępu anonimowego pozostawić DN i hasło puste.", -"User Login Filter" => "Filtr logowania użytkownika", -"User List Filter" => "Lista filtrów użytkownika", -"Group Filter" => "Grupa filtrów", +"One Base DN per line" => "Jedna baza DN na linię", +"You can specify Base DN for users and groups in the Advanced tab" => "Bazę DN można określić dla użytkowników i grup w karcie Zaawansowane", +"Back" => "Wróć", +"Continue" => "Kontynuuj ", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ostrzeżenie:</b> Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go.", "Connection Settings" => "Konfiguracja połączeń", "Configuration Active" => "Konfiguracja archiwum", "When unchecked, this configuration will be skipped." => "Gdy niezaznaczone, ta konfiguracja zostanie pominięta.", -"Port" => "Port", "Backup (Replica) Host" => "Kopia zapasowa (repliki) host", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dać opcjonalnie hosta kopii zapasowej . To musi być repliką głównego serwera LDAP/AD.", "Backup (Replica) Port" => "Kopia zapasowa (repliki) Port", "Disable Main Server" => "Wyłącz serwer główny", -"Use TLS" => "Użyj TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Nie używaj go dodatkowo dla połączeń protokołu LDAPS, zakończy się niepowodzeniem.", +"Only connect to the replica server." => "Połącz tylko do repliki serwera.", "Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)", "Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu SSL.", "Cache Time-To-Live" => "Przechowuj czas życia", @@ -66,11 +67,10 @@ $TRANSLATIONS = array( "Internal Username" => "Wewnętrzna nazwa użytkownika", "Internal Username Attribute:" => "Wewnętrzny atrybut nazwy uzżytkownika:", "Override UUID detection" => "Zastąp wykrywanie UUID", -"UUID Attribute:" => "Atrybuty UUID:", +"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", "Clear Username-LDAP User Mapping" => "Czyść Mapowanie użytkownika LDAP", -"Clear Groupname-LDAP Group Mapping" => "Czyść Mapowanie nazwy grupy LDAP", -"Test Configuration" => "Konfiguracja testowa", -"Help" => "Pomoc" +"Clear Groupname-LDAP Group Mapping" => "Czyść Mapowanie nazwy grupy LDAP" ); $PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php index 9469146d359..559dc949bd5 100644 --- a/apps/user_ldap/l10n/pt_BR.php +++ b/apps/user_ldap/l10n/pt_BR.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Falha ao deletar a configuração do servidor", "The configuration is valid and the connection could be established!" => "A configuração é válida e a conexão foi estabelecida!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuração é válida, mas o Bind falhou. Confira as configurações do servidor e as credenciais.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuração é inválida. Leia o log do ownCloud para mais detalhes.", +"The configuration is invalid. Please have a look at the logs for further details." => "Configuração inválida. Por favor, dê uma olhada nos logs para mais detalhes.", +"No action specified" => "Nenhuma ação especificada", +"No configuration specified" => "Nenhuma configuração especificada", +"No data specified" => "Não há dados especificados", +" Could not set configuration %s" => "Não foi possível definir a configuração %s", "Deletion failed" => "Remoção falhou", "Take over settings from recent server configuration?" => "Tomar parámetros de recente configuração de servidor?", "Keep settings?" => "Manter ajustes?", @@ -12,40 +16,60 @@ $TRANSLATIONS = array( "mappings cleared" => "mapeamentos limpos", "Success" => "Sucesso", "Error" => "Erro", +"Configuration OK" => "Configuração OK", +"Configuration incorrect" => "Configuração incorreta", +"Configuration incomplete" => "Configuração incompleta", +"Select groups" => "Selecionar grupos", +"Select object classes" => "Selecione classes de objetos", +"Select attributes" => "Selecione os atributos", "Connection test succeeded" => "Teste de conexão bem sucedida", "Connection test failed" => "Teste de conexão falhou", "Do you really want to delete the current Server Configuration?" => "Você quer realmente deletar as atuais Configurações de Servidor?", "Confirm Deletion" => "Confirmar Exclusão", -"<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. Você pode experimentar comportamento inesperado. Por favor, peça ao seu administrador do sistema para desabilitar um deles.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP não está instalado, o backend não funcionará. Por favor, peça ao seu administrador do sistema para instalá-lo.", -"Server configuration" => "Configuração de servidor", +"_%s group found_::_%s groups found_" => array("grupo% s encontrado","grupos% s encontrado"), +"_%s user found_::_%s users found_" => array("usuário %s encontrado","usuários %s encontrados"), +"Invalid Host" => "Host inválido", +"Could not find the desired feature" => "Não foi possível encontrar a função desejada", +"Save" => "Guardar", +"Test Configuration" => "Teste de Configuração", +"Help" => "Ajuda", +"Limit the access to %s to groups meeting this criteria:" => "Limitar o acesso a %s para grupos que coincidam com estes critérios:", +"only those object classes:" => "apenas essas classes de objetos:", +"only from those groups:" => "apenas a partir dos grupos:", +"Edit raw filter instead" => "Editar filtro raw ao invéz", +"Raw LDAP filter" => "Filtro LDAP Raw", +"The filter specifies which LDAP groups shall have access to the %s instance." => "O filtro especifica quais grupos LDAP devem ter acesso à instância do %s.", +"groups found" => "grupos encontrados", +"What attribute shall be used as login name:" => "O atributo deve ser usado como nome de login:", +"LDAP Username:" => "Usuário LDAP:", +"LDAP Email Address:" => "LDAP Endereço de E-mail:", +"Other Attributes:" => "Outros atributos:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define o filtro a ser aplicado, o login é feito. %%uid substitui o nome do usuário na ação de login. Exemplo: \"uid=%%uid\"", "Add Server Configuration" => "Adicionar Configuração de Servidor", "Host" => "Servidor", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Você pode omitir o protocolo, exceto quando requerer SSL. Então inicie com ldaps://", -"Base DN" => "DN Base", -"One Base DN per line" => "Uma base DN por linha", -"You can specify Base DN for users and groups in the Advanced tab" => "Você pode especificar DN Base para usuários e grupos na guia Avançada", +"Port" => "Porta", "User DN" => "DN Usuário", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente usuário com qual a ligação deverá ser feita, ex. uid=agent,dc=example,dc=com. Para acesso anônimo, deixe DN e Senha vazios.", "Password" => "Senha", "For anonymous access, leave DN and Password empty." => "Para acesso anônimo, deixe DN e Senha vazios.", -"User Login Filter" => "Filtro de Login de Usuário", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define o filtro a ser aplicado, o login é feito. %%uid substitui o nome do usuário na ação de login. Exemplo: \"uid=%%uid\"", -"User List Filter" => "Filtro de Lista de Usuário", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define o filtro a ser aplicado, ao recuperar usuários (sem espaços reservados). Exemplo: \"objectClass=person\"", -"Group Filter" => "Filtro de Grupo", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define o filtro a ser aplicado, ao recuperar grupos (sem espaços reservados). Exemplo: \"objectClass=posixGroup\"", +"One Base DN per line" => "Uma base DN por linha", +"You can specify Base DN for users and groups in the Advanced tab" => "Você pode especificar DN Base para usuários e grupos na guia Avançada", +"Limit the access to %s to users meeting this criteria:" => "Limitar o acesso a %s para usuários que coincidam com estes critérios:", +"The filter specifies which LDAP users shall have access to the %s instance." => "O filtro especifica quais usuários LDAP devem ter acesso à instância do %s.", +"users found" => "usuários encontrados", +"Back" => "Voltar", +"Continue" => "Continuar", +"<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. Você pode experimentar comportamento inesperado. Por favor, peça ao seu administrador do sistema para desabilitar um deles.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP não está instalado, o backend não funcionará. Por favor, peça ao seu administrador do sistema para instalá-lo.", "Connection Settings" => "Configurações de Conexão", "Configuration Active" => "Configuração ativa", "When unchecked, this configuration will be skipped." => "Quando não marcada, esta configuração será ignorada.", -"Port" => "Porta", "Backup (Replica) Host" => "Servidor de Backup (Réplica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Defina um servidor de backup opcional. Ele deverá ser uma réplica do servidor LDAP/AD principal.", "Backup (Replica) Port" => "Porta do Backup (Réplica)", "Disable Main Server" => "Desativar Servidor Principal", "Only connect to the replica server." => "Conectar-se somente ao servidor de réplica.", -"Use TLS" => "Usar TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Não use adicionalmente para conexões LDAPS, pois falhará.", "Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)", "Turn off SSL certificate validation." => "Desligar validação de certificado SSL.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Não recomendado, use-o somente para teste! Se a conexão só funciona com esta opção, importar o certificado SSL do servidor LDAP em seu servidor %s.", @@ -76,12 +100,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Atributo Interno de Nome de Usuário:", "Override UUID detection" => "Substituir detecção UUID", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por padrão, o atributo UUID é detectado automaticamente. O atributo UUID é usado para identificar, sem dúvidas, os usuários e grupos LDAP. Além disso, o nome de usuário interno será criado com base no UUID, se não especificado acima. Você pode substituir a configuração e passar um atributo de sua escolha. Você deve certificar-se de que o atributo de sua escolha pode ser lido tanto para usuários como para grupos, e que seja único. Deixe-o vazio para o comportamento padrão. As alterações terão efeito apenas para usuários e grupos LDAP recém mapeados (adicionados).", -"UUID Attribute:" => "Atributo UUID:", +"UUID Attribute for Users:" => "UUID Atributos para Usuários:", +"UUID Attribute for Groups:" => "UUID Atributos para Grupos:", "Username-LDAP User Mapping" => "Usuário-LDAP Mapeamento de Usuário", "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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ãi usados para armazenar e atribuir (meta) dados. A fim de identificar com precisão e reconhecer usuários, cada usuário LDAP terá um nome de usuário interno. Isso requer um mapeamento nome de usuário para usuário LDAP. O nome de usuário criado é mapeado para o UUID do usuário LDAP. Adicionalmente, o DN fica em cache, assim como para reduzir a interação LDAP, mas não é utilizado para a identificação. Se o DN muda, as mudanças serão encontradas. O nome de usuário interno é utilizado em todo lugar. Limpar os mapeamentos não influencia a configuração. Limpar os mapeamentos deixará rastros em todo lugar. Limpar os mapeamentos não influencia a configuração, mas afeta as configurações LDAP! Somente limpe os mapeamentos em embiente de testes ou em estágio experimental.", "Clear Username-LDAP User Mapping" => "Limpar Mapeamento de Usuário Nome de Usuário-LDAP", -"Clear Groupname-LDAP Group Mapping" => "Limpar NomedoGrupo-LDAP Mapeamento do Grupo", -"Test Configuration" => "Teste de Configuração", -"Help" => "Ajuda" +"Clear Groupname-LDAP Group Mapping" => "Limpar NomedoGrupo-LDAP Mapeamento do Grupo" ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php index b88ad18f0f6..89c37358b67 100644 --- a/apps/user_ldap/l10n/pt_PT.php +++ b/apps/user_ldap/l10n/pt_PT.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Erro ao eliminar as configurações do servidor", "The configuration is valid and the connection could be established!" => "A configuração está correcta e foi possível estabelecer a ligação!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "A configuração está correcta, mas não foi possível estabelecer o \"laço\", por favor, verifique as configurações do servidor e as credenciais.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "A configuração é inválida. Por favor, veja o log do ownCloud para mais detalhes.", "Deletion failed" => "Erro ao apagar", "Take over settings from recent server configuration?" => "Assumir as configurações da configuração do servidor mais recente?", "Keep settings?" => "Manter as definições?", @@ -12,35 +11,36 @@ $TRANSLATIONS = array( "mappings cleared" => "Mapas limpos", "Success" => "Sucesso", "Error" => "Erro", +"Select groups" => "Seleccionar grupos", "Connection test succeeded" => "Teste de conecção passado com sucesso.", "Connection test failed" => "Erro no teste de conecção.", "Do you really want to delete the current Server Configuration?" => "Deseja realmente apagar as configurações de servidor actuais?", "Confirm Deletion" => "Confirmar a operação de apagar", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar.", -"Server configuration" => "Configurações do servidor", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Guardar", +"Test Configuration" => "Testar a configuração", +"Help" => "Ajuda", "Add Server Configuration" => "Adicionar configurações do servidor", "Host" => "Anfitrião", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://", -"Base DN" => "DN base", -"One Base DN per line" => "Uma base DN por linho", -"You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar o ND Base para utilizadores e grupos no separador Avançado", +"Port" => "Porto", "User DN" => "DN do utilizador", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN to cliente ", "Password" => "Password", "For anonymous access, leave DN and Password empty." => "Para acesso anónimo, deixe DN e a Palavra-passe vazios.", -"User Login Filter" => "Filtro de login de utilizador", -"User List Filter" => "Utilizar filtro", -"Group Filter" => "Filtrar por grupo", +"One Base DN per line" => "Uma base DN por linho", +"You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar o ND Base para utilizadores e grupos no separador Avançado", +"Back" => "Voltar", +"Continue" => "Continuar", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP não está instalado, logo não irá funcionar. Por favor peça ao administrador para o instalar.", "Connection Settings" => "Definições de ligação", "Configuration Active" => "Configuração activa", "When unchecked, this configuration will be skipped." => "Se não estiver marcada, esta definição não será tida em conta.", -"Port" => "Porto", "Backup (Replica) Host" => "Servidor de Backup (Réplica)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Forneça um servidor (anfitrião) de backup. Deve ser uma réplica do servidor principal de LDAP/AD ", "Backup (Replica) Port" => "Porta do servidor de backup (Replica)", "Disable Main Server" => "Desactivar servidor principal", -"Use TLS" => "Usar TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Não utilize para adicionar ligações LDAP, irá falhar!", "Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.", "Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.", "Cache Time-To-Live" => "Cache do tempo de vida dos objetos no servidor", @@ -66,11 +66,8 @@ $TRANSLATIONS = array( "Internal Username" => "Nome de utilizador interno", "Internal Username Attribute:" => "Atributo do nome de utilizador interno", "Override UUID detection" => "Passar a detecção do UUID", -"UUID Attribute:" => "Atributo UUID:", "Username-LDAP User Mapping" => "Mapeamento do utilizador LDAP", "Clear Username-LDAP User Mapping" => "Limpar mapeamento do utilizador-LDAP", -"Clear Groupname-LDAP Group Mapping" => "Limpar o mapeamento do nome de grupo LDAP", -"Test Configuration" => "Testar a configuração", -"Help" => "Ajuda" +"Clear Groupname-LDAP Group Mapping" => "Limpar o mapeamento do nome de grupo LDAP" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php index a0bacccb707..0214be3f787 100644 --- a/apps/user_ldap/l10n/ro.php +++ b/apps/user_ldap/l10n/ro.php @@ -3,21 +3,22 @@ $TRANSLATIONS = array( "Deletion failed" => "Ștergerea a eșuat", "Success" => "Succes", "Error" => "Eroare", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Salvează", +"Help" => "Ajutor", "Host" => "Gazdă", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puteți omite protocolul, decât dacă folosiți SSL. Atunci se începe cu ldaps://", -"Base DN" => "DN de bază", -"One Base DN per line" => "Un Base DN pe linie", -"You can specify Base DN for users and groups in the Advanced tab" => "Puteți să specificați DN de bază pentru utilizatori și grupuri în fila Avansat", +"Port" => "Portul", "User DN" => "DN al utilizatorului", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN-ul clientului utilizator cu care se va efectua conectarea, d.e. uid=agent,dc=example,dc=com. Pentru acces anonim, lăsăți DN și Parolă libere.", "Password" => "Parolă", "For anonymous access, leave DN and Password empty." => "Pentru acces anonim, lăsați DN și Parolă libere.", -"User Login Filter" => "Filtrare după Nume Utilizator", -"User List Filter" => "Filtrarea după lista utilizatorilor", -"Group Filter" => "Fitrare Grup", -"Port" => "Portul", -"Use TLS" => "Utilizează TLS", +"One Base DN per line" => "Un Base DN pe linie", +"You can specify Base DN for users and groups in the Advanced tab" => "Puteți să specificați DN de bază pentru utilizatori și grupuri în fila Avansat", +"Back" => "Înapoi", +"Continue" => "Continuă", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.", "Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)", "Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ", "in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.", @@ -29,7 +30,6 @@ $TRANSLATIONS = array( "One Group Base DN per line" => "Un Group Base DN pe linie", "Group-Member association" => "Asocierea Grup-Membru", "in bytes" => "în octeți", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD.", -"Help" => "Ajutor" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD." ); $PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"; diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php index f1cf51dc51b..7b9cf8ceb56 100644 --- a/apps/user_ldap/l10n/ru.php +++ b/apps/user_ldap/l10n/ru.php @@ -1,10 +1,14 @@ <?php $TRANSLATIONS = array( -"Failed to clear the mappings." => "Не удалось очистить соотвествия.", +"Failed to clear the mappings." => "Не удалось очистить соответствия.", "Failed to delete the server configuration" => "Не удалось удалить конфигурацию сервера", "The configuration is valid and the connection could be established!" => "Конфигурация правильная и подключение может быть установлено!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфигурация верна, но операция подключения завершилась неудачно. Пожалуйста, проверьте настройки сервера и учетные данные.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфигурация не верна. Пожалуйста, посмотрите в журнале ownCloud детали.", +"The configuration is invalid. Please have a look at the logs for further details." => "Конфигурация недействительна. Пожалуйста, просмотрите логи для уточнения деталей.", +"No action specified" => "Действие не указано", +"No configuration specified" => "Конфигурация не создана", +"No data specified" => "Нет данных", +" Could not set configuration %s" => "Невозможно создать конфигурацию %s", "Deletion failed" => "Удаление не удалось", "Take over settings from recent server configuration?" => "Принять настройки из последней конфигурации сервера?", "Keep settings?" => "Сохранить настройки?", @@ -12,43 +16,63 @@ $TRANSLATIONS = array( "mappings cleared" => "Соответствия очищены", "Success" => "Успешно", "Error" => "Ошибка", +"Configuration OK" => "Конфигурация в порядке", +"Configuration incorrect" => "Конфигурация неправильна", +"Configuration incomplete" => "Конфигурация не завершена", +"Select groups" => "Выберите группы", +"Select object classes" => "Выберите объектные классы", +"Select attributes" => "Выберите атрибуты", "Connection test succeeded" => "Проверка соединения удалась", "Connection test failed" => "Проверка соединения не удалась", "Do you really want to delete the current Server Configuration?" => "Вы действительно хотите удалить существующую конфигурацию сервера?", "Confirm Deletion" => "Подтверждение удаления", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Внимание:</b> Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. ", -"Server configuration" => "Конфигурация сервера", +"_%s group found_::_%s groups found_" => array("%s группа найдена","%s группы найдены","%s групп найдено"), +"_%s user found_::_%s users found_" => array("%s пользователь найден","%s пользователя найдено","%s пользователей найдено"), +"Invalid Host" => "Неверный сервер", +"Could not find the desired feature" => "Не могу найти требуемой функциональности", +"Save" => "Сохранить", +"Test Configuration" => "Проверить конфигурацию", +"Help" => "Помощь", +"Limit the access to %s to groups meeting this criteria:" => "Ограничить доступ к %s группам, удовлетворяющим этому критерию:", +"only those object classes:" => "только эти объектные классы", +"only from those groups:" => "только из этих групп", +"Edit raw filter instead" => "Редактировать исходный фильтр", +"Raw LDAP filter" => "Исходный LDAP фильтр", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Этот фильтр определяет, какие LDAP группы должны иметь доступ к %s.", +"groups found" => "групп найдено", +"What attribute shall be used as login name:" => "Какой атрибут должен быть использован для логина:", +"LDAP Username:" => "Имя пользователя LDAP", +"LDAP Email Address:" => "LDAP адрес электронной почты:", +"Other Attributes:" => "Другие атрибуты:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"", "Add Server Configuration" => "Добавить конфигурацию сервера", "Host" => "Сервер", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можно опустить протокол, за исключением того, когда вам требуется SSL. Тогда начните с ldaps :/ /", -"Base DN" => "Базовый DN", -"One Base DN per line" => "По одному базовому DN в строке.", -"You can specify Base DN for users and groups in the Advanced tab" => "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенное\"", +"Port" => "Порт", "User DN" => "DN пользователя", -"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN-клиента пользователя, с которым связывают должно быть заполнено, например, uid=агент, dc=пример, dc=com. Для анонимного доступа, оставьте DN и пароль пустыми.", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN пользователя, под которым выполняется подключение, например, uid=agent,dc=example,dc=com. Для анонимного доступа оставьте DN и пароль пустыми.", "Password" => "Пароль", "For anonymous access, leave DN and Password empty." => "Для анонимного доступа оставьте DN и пароль пустыми.", -"User Login Filter" => "Фильтр входа пользователей", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Определяет фильтр для применения при попытке входа. %%uid заменяет имя пользователя при входе в систему. Например: \"uid=%%uid\"", -"User List Filter" => "Фильтр списка пользователей", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Определяет фильтр, использующийся при получении пользователей (без подмены переменных). Например: \"objectClass=person\"", -"Group Filter" => "Фильтр группы", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Определяет фильтр, использующийся при получении групп (без подмены переменных). Например: \"objectClass=posixGroup\"", +"One Base DN per line" => "По одной базе поиска (Base DN) в строке.", +"You can specify Base DN for users and groups in the Advanced tab" => "Вы можете задать Base DN для пользователей и групп на вкладке \"Расширенное\"", +"Limit the access to %s to users meeting this criteria:" => "Ограничить доступ к %s пользователям, удовлетворяющим этому критерию:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Этот фильтр указывает, какие пользователи LDAP должны иметь доступ к %s.", +"users found" => "пользователей найдено", +"Back" => "Назад", +"Continue" => "Продолжить", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Внимание:</b> Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. ", "Connection Settings" => "Настройки подключения", "Configuration Active" => "Конфигурация активна", "When unchecked, this configuration will be skipped." => "Когда галочка снята, эта конфигурация будет пропущена.", -"Port" => "Порт", "Backup (Replica) Host" => "Адрес резервного сервера", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Укажите дополнительный резервный сервер. Он должен быть репликой главного LDAP/AD сервера.", "Backup (Replica) Port" => "Порт резервного сервера", -"Disable Main Server" => "Отключение главного сервера", -"Only connect to the replica server." => "Только подключение к серверу реплик.", -"Use TLS" => "Использовать TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Не используйте совместно с безопасными подключениями (LDAPS), это не сработает.", +"Disable Main Server" => "Отключить главный сервер", +"Only connect to the replica server." => "Подключаться только к серверу-реплике.", "Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)", "Turn off SSL certificate validation." => "Отключить проверку сертификата SSL.", -"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Не рекомендуется, используйте только в режиме тестирования! Если соединение работает только с этой опцией, импортируйте на ваш %s сервер сертификат SSL сервера LDAP.", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Не рекомендуется, используйте только в режиме тестирования! Если соединение работает только с этой опцией, импортируйте на ваш %s сервер SSL-сертификат сервера LDAP.", "Cache Time-To-Live" => "Кэш времени жизни", "in seconds. A change empties the cache." => "в секундах. Изменение очистит кэш.", "Directory Settings" => "Настройки каталога", @@ -56,8 +80,8 @@ $TRANSLATIONS = array( "The LDAP attribute to use to generate the user's display name." => "Атрибут LDAP, который используется для генерации отображаемого имени пользователя.", "Base User Tree" => "База пользовательского дерева", "One User Base DN per line" => "По одной базовому DN пользователей в строке.", -"User Search Attributes" => "Поисковые атрибуты пользователя", -"Optional; one attribute per line" => "Опционально; один атрибут на линию", +"User Search Attributes" => "Атрибуты поиска пользоватетелей", +"Optional; one attribute per line" => "Опционально; один атрибут в строке", "Group Display Name Field" => "Поле отображаемого имени группы", "The LDAP attribute to use to generate the groups's display name." => "Атрибут LDAP, который используется для генерации отображаемого имени группы.", "Base Group Tree" => "База группового дерева", @@ -65,23 +89,22 @@ $TRANSLATIONS = array( "Group Search Attributes" => "Атрибуты поиска для группы", "Group-Member association" => "Ассоциация Группа-Участник", "Special Attributes" => "Специальные атрибуты", -"Quota Field" => "Поле квота", +"Quota Field" => "Поле квоты", "Quota Default" => "Квота по умолчанию", "in bytes" => "в байтах", -"Email Field" => "Поле адресса эллектронной почты", -"User Home Folder Naming Rule" => "Правило именования Домашней Папки Пользователя", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте имя пользователя пустым (по умолчанию). Иначе укажите атрибут LDAP/AD.", +"Email Field" => "Поле адреса электронной почты", +"User Home Folder Naming Rule" => "Правило именования домашней папки пользователя", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Оставьте пустым для использования имени пользователя (по умолчанию). Иначе укажите атрибут LDAP/AD.", "Internal Username" => "Внутреннее имя пользователя", -"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "По-умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Таким образом имя пользователя становится уникальным и не требует конвертации символов. Внутреннее имя пользователя может состоять только из следующих символов: [ a-zA-Z0-9_.@- ]. Остальные символы замещаются соответствиями из таблицы ASCII или же просто пропускаются. При совпадении к имени будет добавлено число. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Также оно является именем по-умолчанию для папки пользователя в ownCloud. Оно также портом для удаленных ссылок, к примеру, для всех сервисов *DAV. С помощию данной настройки можно изменить поведение по-умолчанию. Чтобы достичь поведения, как было настроено до изменения, ownCloud 5 выводит атрибут имени пользователя в этом поле. Оставьте его пустым для режима по-умолчанию. Изменения будут иметь эффект только для новых подключенных (добавленных) пользователей LDAP.", -"Internal Username Attribute:" => "Аттрибут для внутреннего имени:", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "По умолчанию внутреннее имя пользователя будет создано из атрибута UUID. Таким образом имя пользователя становится уникальным и не требует конвертации символов. Внутреннее имя пользователя может состоять только из следующих символов: [ a-zA-Z0-9_.@- ]. Остальные символы замещаются соответствиями из таблицы ASCII или же просто пропускаются. При совпадении к имени будет добавлено или увеличено число. Внутреннее имя пользователя используется для внутренней идентификации пользователя. Также оно является именем по умолчанию для папки пользователя в ownCloud. Оно также является частью URL, к примеру, для всех сервисов *DAV. С помощью данной настройки можно изменить поведение по умолчанию. Чтобы достичь поведения, как было до ownCloud 5, введите атрибут отображаемого имени пользователя в этом поле. Оставьте его пустым для режима по умолчанию. Изменения будут иметь эффект только для новых подключенных (добавленных) пользователей LDAP.", +"Internal Username Attribute:" => "Атрибут для внутреннего имени:", "Override UUID detection" => "Переопределить нахождение UUID", -"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "По-умолчанию, ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно индентифицировать пользователей и группы LDAP. Также, на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по-умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", -"UUID Attribute:" => "Аттрибут для UUID:", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "По умолчанию ownCloud определяет атрибут UUID автоматически. Этот атрибут используется для того, чтобы достоверно индентифицировать пользователей и группы LDAP. Также на основании атрибута UUID создается внутреннее имя пользователя, если выше не указано иначе. Вы можете переопределить эту настройку и указать свой атрибут по выбору. Вы должны удостовериться, что выбранный вами атрибут может быть выбран для пользователей и групп, а также то, что он уникальный. Оставьте поле пустым для поведения по умолчанию. Изменения вступят в силу только для новых подключенных (добавленных) пользователей и групп LDAP.", +"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 a 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 подключения! Ни в коем случае не рекомендуется сбрасывать привязки если система уже находится в эксплуатации, только на этапе тестирования.", +"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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", -"Test Configuration" => "Тестовая конфигурация", -"Help" => "Помощь" +"Clear Groupname-LDAP Group Mapping" => "Очистить соответствия Группа-Группа LDAP" ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/si_LK.php b/apps/user_ldap/l10n/si_LK.php index 5d2db636cf0..5c02f028655 100644 --- a/apps/user_ldap/l10n/si_LK.php +++ b/apps/user_ldap/l10n/si_LK.php @@ -3,14 +3,13 @@ $TRANSLATIONS = array( "Deletion failed" => "මකාදැමීම අසාර්ථකයි", "Success" => "සාර්ථකයි", "Error" => "දෝෂයක්", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "සුරකින්න", +"Help" => "උදව්", "Host" => "සත්කාරකය", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL අවශ්යය වන විට පමණක් හැර, අන් අවස්ථාවන්හිදී ප්රොටොකෝලය අත් හැරිය හැක. භාවිතා කරන විට ldaps:// ලෙස ආරම්භ කරන්න", -"Password" => "මුර පදය", -"User Login Filter" => "පරිශීලක පිවිසුම් පෙරහන", -"User List Filter" => "පරිශීලක ලැයිස්තු පෙරහන", -"Group Filter" => "කණ්ඩායම් පෙරහන", "Port" => "තොට", -"Use TLS" => "TLS භාවිතා කරන්න", -"Help" => "උදව්" +"Password" => "මුර පදය" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/sk.php b/apps/user_ldap/l10n/sk.php new file mode 100644 index 00000000000..2578bb55649 --- /dev/null +++ b/apps/user_ldap/l10n/sk.php @@ -0,0 +1,7 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Uložiť" +); +$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php index df71a71e933..850fce24c48 100644 --- a/apps/user_ldap/l10n/sk_SK.php +++ b/apps/user_ldap/l10n/sk_SK.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Zlyhalo zmazanie nastavenia servera.", "The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavenie je v poriadku, ale pripojenie zlyhalo. Skontrolujte nastavenia servera a prihlasovacie údaje.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavenia sú neplatné. Podrobnosti hľadajte v logu ownCloud.", +"The configuration is invalid. Please have a look at the logs for further details." => "Konfigurácia je chybná. Prosím, pozrite sa do logov pre ďalšie podrobnosti.", +"No action specified" => "Nie je vybraná akcia", +"No configuration specified" => "Nie je určená konfigurácia", +"No data specified" => "Nie sú vybraté dáta", +" Could not set configuration %s" => "Nemôžem nastaviť konfiguráciu %s", "Deletion failed" => "Odstránenie zlyhalo", "Take over settings from recent server configuration?" => "Prebrať nastavenia z nedávneho nastavenia servera?", "Keep settings?" => "Ponechať nastavenia?", @@ -12,47 +16,67 @@ $TRANSLATIONS = array( "mappings cleared" => "mapovanie vymazané", "Success" => "Úspešné", "Error" => "Chyba", +"Configuration OK" => "Konfigurácia je vporiadku", +"Configuration incorrect" => "Nesprávna konfigurácia", +"Configuration incomplete" => "Nekompletná konfigurácia", +"Select groups" => "Vybrať skupinu", +"Select object classes" => "Vyberte triedy objektov", +"Select attributes" => "Vyberte atribúty", "Connection test succeeded" => "Test pripojenia bol úspešný", "Connection test failed" => "Test pripojenia zlyhal", "Do you really want to delete the current Server Configuration?" => "Naozaj chcete zmazať súčasné nastavenie servera?", "Confirm Deletion" => "Potvrdiť vymazanie", -"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Upozornenie:</b> nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval.", -"Server configuration" => "Nastavenia servera", +"_%s group found_::_%s groups found_" => array("%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín"), +"_%s user found_::_%s users found_" => array("%s nájdený používateľ","%s nájdení používatelia","%s nájdených používateľov"), +"Invalid Host" => "Neplatný hostiteľ", +"Could not find the desired feature" => "Nemožno nájsť požadovanú funkciu", +"Save" => "Uložiť", +"Test Configuration" => "Test nastavenia", +"Help" => "Pomoc", +"Limit the access to %s to groups meeting this criteria:" => "Obmedziť prístup %s do skupiny, ktoré spĺňajú tieto kritériá:", +"only those object classes:" => "len tieto triedy objektov:", +"only from those groups:" => "len z týchto skupín:", +"Edit raw filter instead" => "Miesto pre úpravu raw filtra", +"Raw LDAP filter" => "Raw LDAP filter", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Tento filter LDAP určuje, ktoré skupiny budú mať prístup k %s inštancii.", +"groups found" => "nájdené skupiny", +"What attribute shall be used as login name:" => "Ako prihlasovacie meno použiť atribút:", +"LDAP Username:" => "LDAP používateľské meno:", +"LDAP Email Address:" => "LDAP emailová adresa:", +"Other Attributes:" => "Iné atribúty:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahradzuje používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", "Add Server Configuration" => "Pridať nastavenia servera.", "Host" => "Hostiteľ", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Môžete vynechať protokol, s výnimkou požadovania SSL. Vtedy začnite s ldaps://", -"Base DN" => "Základné DN", -"One Base DN per line" => "Jedno základné DN na riadok", -"You can specify Base DN for users and groups in the Advanced tab" => "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny", +"Port" => "Port", "User DN" => "Používateľské DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN klientského používateľa, ku ktorému tvoríte väzbu, napr. uid=agent,dc=example,dc=com. Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.", "Password" => "Heslo", "For anonymous access, leave DN and Password empty." => "Pre anonymný prístup ponechajte údaje DN a Heslo prázdne.", -"User Login Filter" => "Filter prihlásenia používateľov", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahradzuje používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", -"User List Filter" => "Filter zoznamov používateľov", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definuje použitý filter, pri získavaní používateľov (bez \"placeholderov\"). Napríklad: \"objectClass=osoba\"", -"Group Filter" => "Filter skupiny", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definuje použitý filter, pri získavaní skupín (bez \"placeholderov\"). Napríklad: \"objectClass=posixSkupina\"", +"One Base DN per line" => "Jedno základné DN na riadok", +"You can specify Base DN for users and groups in the Advanced tab" => "V rozšírenom nastavení môžete zadať základné DN pre používateľov a skupiny", +"Limit the access to %s to users meeting this criteria:" => "Obmedziť prístup k %s na používateľov, ktorí spĺňajú tieto kritériá:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Tento filter LDAP určuje, ktorí používatelia majú prístup k %s inštancii.", +"users found" => "nájdení používatelia", +"Back" => "Späť", +"Continue" => "Pokračovať", +"<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> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Upozornenie:</b> nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval.", "Connection Settings" => "Nastavenie pripojenia", "Configuration Active" => "Nastavenia sú aktívne ", "When unchecked, this configuration will be skipped." => "Ak nie je zaškrtnuté, nastavenie bude preskočené.", -"Port" => "Port", -"Backup (Replica) Host" => "Záložný server (kópia) hosť", +"Backup (Replica) Host" => "Záložný server (kópia) hostiteľa", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera.", "Backup (Replica) Port" => "Záložný server (kópia) port", "Disable Main Server" => "Zakázať hlavný server", "Only connect to the replica server." => "Pripojiť sa len k záložnému serveru.", -"Use TLS" => "Použi TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívajte pre pripojenie LDAPS, zlyhá.", "Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)", "Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Neodporúčané, použite iba pri testovaní! Pokiaľ spojenie funguje iba z daným nastavením, importujte SSL certifikát LDAP servera do vášho %s servera.", -"Cache Time-To-Live" => "Životnosť objektov v cache", +"Cache Time-To-Live" => "Životnosť objektov v medzipamäti", "in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.", "Directory Settings" => "Nastavenie priečinka", -"User Display Name Field" => "Pole pre zobrazenia mena používateľa", +"User Display Name Field" => "Pole pre zobrazenie mena používateľa", "The LDAP attribute to use to generate the user's display name." => "Atribút LDAP použitý na vygenerovanie zobrazovaného mena používateľa. ", "Base User Tree" => "Základný používateľský strom", "One User Base DN per line" => "Jedna používateľská základná DN na riadok", @@ -68,20 +92,19 @@ $TRANSLATIONS = array( "Quota Field" => "Pole kvóty", "Quota Default" => "Predvolená kvóta", "in bytes" => "v bajtoch", -"Email Field" => "Pole email", -"User Home Folder Naming Rule" => "Pravidlo pre nastavenie mena používateľského priečinka dát", +"Email Field" => "Pole emailu", +"User Home Folder Naming Rule" => "Pravidlo pre nastavenie názvu používateľského priečinka dát", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.", "Internal Username" => "Interné používateľské meno", "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "V predvolenom nastavení bude interné používateľské meno vytvorené z UUID atribútu. Zabezpečí sa to, že používateľské meno bude jedinečné a znaky nemusia byť prevedené. Interné meno má obmedzenie, iba tieto znaky sú povolené: [a-zA-Z0-9_ @ -.]. Ostatné znaky sú nahradené ich ASCII alebo jednoducho vynechané. Pri kolíziách používateľských mien bude číslo pridané / odobrané. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je tiež predvoleným názvom používateľského domovského priečinka v ownCloud. Je tiež súčasťou URL pre vzdialený prístup, napríklad pre všetky služby * DAV. S týmto nastavením sa dá prepísať predvolené správanie. Pre dosiahnutie podobného správania sa ako pred verziou ownCloud 5 zadajte atribút zobrazenia používateľského mena v tomto poli. Ponechajte prázdne pre predvolené správanie. Zmeny budú mať vplyv iba na novo namapovaných (pridaných) LDAP používateľov.", "Internal Username Attribute:" => "Atribút interného používateľského mena:", "Override UUID detection" => "Prepísať UUID detekciu", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "V predvolenom nastavení je UUID atribút detekovaný automaticky. UUID atribút je použitý na jedinečnú identifikáciu používateľov a skupín z LDAP. Naviac je na základe UUID vytvorené tiež interné použivateľské meno, ak nie je nastavené inak. Môžete predvolené nastavenie prepísať a použiť atribút ktorý si sami zvolíte. Musíte sa ale ubezpečiť, že atribút ktorý vyberiete bude uvedený pri použivateľoch, aj pri skupinách a je jedinečný. Ponechajte prázdne pre predvolené správanie. Zmena bude mať vplyv len na novo namapovaných (pridaných) používateľov a skupiny z LDAP.", -"UUID Attribute:" => "UUID atribút:", +"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 a 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živateľské mená sa používajú pre uchovávanie a priraďovanie (meta)dát. Pre správnu identifikáciu a rozpoznanie používateľov bude mať každý používateľ z LDAP interné používateľské meno. To je nevyhnutné pre namapovanie používateľských mien na používateľov v LDAP. Vytvorené používateľské meno je namapované na UUID používateľa v LDAP. Naviac je cachovaná DN pre obmedzenie interakcie s LDAP, ale nie je používaná pre identifikáciu. Ak sa DN zmení, bude to správne rozpoznané. Interné používateľské meno sa používa všade. Vyčistenie namapování vymaže zvyšky všade. Vyčistenie naviac nie je špecifické, bude mať vplyv na všetky LDAP konfigurácie! Nikdy nečistite namapovanie 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", -"Test Configuration" => "Test nastavenia", -"Help" => "Pomoc" +"Clear Groupname-LDAP Group Mapping" => "Zrušiť mapovanie názvov LDAP skupín" ); $PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"; diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php index 703b643db58..b51c5bc7bb8 100644 --- a/apps/user_ldap/l10n/sl.php +++ b/apps/user_ldap/l10n/sl.php @@ -1,60 +1,92 @@ <?php $TRANSLATIONS = array( -"Failed to clear the mappings." => "Preslikav ni bilo mogoče izbrisati", +"Failed to clear the mappings." => "Čiščenje preslikav je spodletelo.", "Failed to delete the server configuration" => "Brisanje nastavitev strežnika je spodletelo.", "The configuration is valid and the connection could be established!" => "Nastavitev je veljavna, zato je povezavo mogoče vzpostaviti!", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavitev je veljavna, vendar pa je vez Bind spodletela. Preveriti je treba nastavitve strežnika in ustreznost poveril.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Nastavitev je veljavna. Več podrobnosti je zapisanih v dnevniku ownCloud.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Nastavitev je veljavna, vendar pa je vez spodletela. Preveriti je treba nastavitve strežnika in ustreznost poveril.", +"The configuration is invalid. Please have a look at the logs for further details." => "Nastavitev ni veljavna. Več podrobnosti o napaki je zabeleženih v dnevniku.", +"No action specified" => "Ni določenega dejanja", +"No configuration specified" => "Ni določenih nastavitev", +"No data specified" => "Ni navedenih podatkov", +" Could not set configuration %s" => "Ni mogoče uveljaviti nastavitev %s", "Deletion failed" => "Brisanje je spodletelo.", -"Take over settings from recent server configuration?" => "Ali naj se prevzame nastavitve nedavne nastavitve strežnika?", -"Keep settings?" => "Ali nas se nastavitve ohranijo?", +"Take over settings from recent server configuration?" => "Ali naj bodo prevzete nedavne nastavitve strežnika?", +"Keep settings?" => "Ali naj se nastavitve ohranijo?", "Cannot add server configuration" => "Ni mogoče dodati nastavitev strežnika", -"mappings cleared" => "Preslikave so izbrisane", +"mappings cleared" => "preslikave so izbrisane", "Success" => "Uspešno končano.", "Error" => "Napaka", +"Configuration OK" => "Nastavitev je ustrezna", +"Configuration incorrect" => "Nastavitev ni ustrezna", +"Configuration incomplete" => "Nastavitev je nepopolna", +"Select groups" => "Izberi skupine", +"Select object classes" => "Izbor razredov predmeta", +"Select attributes" => "Izbor atributov", "Connection test succeeded" => "Preizkus povezave je uspešno končan.", "Connection test failed" => "Preizkus povezave je spodletel.", "Do you really want to delete the current Server Configuration?" => "Ali res želite izbrisati trenutne nastavitve strežnika?", "Confirm Deletion" => "Potrdi brisanje", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Opozorilo:</b> modul PHP LDAP mora biti nameščen, sicer vmesnik ne bo deloval. Paket je treba namestiti.", -"Server configuration" => "Nastavitev strežnika", +"_%s group found_::_%s groups found_" => array("%s najdena skupina","%s najdeni skupini","%s najdene skupine","%s najdenih skupin"), +"_%s user found_::_%s users found_" => array("%s najden uporabnik","%s najdena uporabnika","%s najdeni uporabniki","%s najdenih uporabnikov"), +"Invalid Host" => "Neveljaven gostitelj", +"Could not find the desired feature" => "Želene zmožnosti ni mogoče najti", +"Save" => "Shrani", +"Test Configuration" => "Preizkusne nastavitve", +"Help" => "Pomoč", +"Limit the access to %s to groups meeting this criteria:" => "Omeji dostop %s do skupin glede na kriterij:", +"only those object classes:" => "le razredi predmeta:", +"only from those groups:" => "le iz skupin:", +"Edit raw filter instead" => "Uredi surov filter", +"Raw LDAP filter" => "Surovi filter LDAP", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filter določa, katere skupine LDAP bodo imele dostop do %s.", +"groups found" => "najdenih skupin", +"What attribute shall be used as login name:" => "Kateri atribut naj bo uporabljen kot prijavno ime:", +"LDAP Username:" => "Uporabniško ime LDAP:", +"LDAP Email Address:" => "Elektronski naslov LDAP:", +"Other Attributes:" => "Drugi atributi:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Določi filter, ki bo uveljavljen ob poskusu prijave. %%uid zamenja uporabniško ime pri prijavi, na primer: \"uid=%%uid\"", "Add Server Configuration" => "Dodaj nastavitve strežnika", "Host" => "Gostitelj", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol je lahko izpuščen, če ni posebej zahtevan SSL. V tem primeru se mora naslov začeti z ldaps://", -"Base DN" => "Osnovni DN", -"One Base DN per line" => "En osnovni DN na vrstico", -"You can specify Base DN for users and groups in the Advanced tab" => "Osnovni DN za uporabnike in skupine lahko določite v zavihku naprednih možnosti.", -"User DN" => "Uporabnik DN", -"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za brezimni dostop sta polji DN in geslo prazni.", +"Port" => "Vrata", +"User DN" => "Uporabnikovo enolično ime", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Enolično ime uporabnikovega odjemalca, s katerim naj se opravi vezava, npr. uid=agent,dc=example,dc=com. Za brezimni dostop sta polji prikaznega imena in gesla prazni.", "Password" => "Geslo", -"For anonymous access, leave DN and Password empty." => "Za brezimni dostop sta polji DN in geslo prazni.", -"User Login Filter" => "Filter prijav uporabnikov", -"User List Filter" => "Filter seznama uporabnikov", -"Group Filter" => "Filter skupin", +"For anonymous access, leave DN and Password empty." => "Za brezimni dostop naj bosta polji imena in gesla prazni.", +"One Base DN per line" => "Eno osnovno enolično ime na vrstico", +"You can specify Base DN for users and groups in the Advanced tab" => "Osnovno enolično ime za uporabnike in skupine lahko določite v zavihku naprednih možnosti.", +"Limit the access to %s to users meeting this criteria:" => "Omeji dostop do %s uporabnikom, za katere velja kriterij:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Filter določa, kateri uporabniki LDAP bodo imeli dostop do %s.", +"users found" => "najdenih uporabnikov", +"Back" => "Nazaj", +"Continue" => "Nadaljuj", +"<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>Opozorilo:</b> določili user_ldap in user_webdavauth sta neskladni, kar lahko vpliva na delovanje sistema. O napaki pošljite poročilo skrbniku sistema in opozorite, da je treba eno izmed možnosti onemogočiti.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Opozorilo:</b> modul PHP LDAP mora biti nameščen, sicer vmesnik ne bo deloval. Paket je treba namestiti.", "Connection Settings" => "Nastavitve povezave", "Configuration Active" => "Dejavna nastavitev", "When unchecked, this configuration will be skipped." => "Neizbrana možnost preskoči nastavitev.", -"Port" => "Vrata", "Backup (Replica) Host" => "Varnostna kopija (replika) podatkov gostitelja", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Podati je treba izbirno varnostno kopijo gostitelja. Ta mora biti natančna replika strežnika LDAP/AD.", -"Backup (Replica) Port" => "Varnostna kopija (replika) podatka vrat", +"Backup (Replica) Port" => "Vrata varnostne kopije (replike)", "Disable Main Server" => "Onemogoči glavni strežnik", -"Use TLS" => "Uporabi TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Strežnika ni priporočljivo uporabljati za povezave LDAPS. Povezava bo spodletela.", +"Only connect to the replica server." => "Poveži le s podvojenim strežnikom.", "Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)", "Turn off SSL certificate validation." => "Onemogoči določanje veljavnosti potrdila SSL.", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Možnosti ni priporočljivo uporabiti; namenjena je zgolj preizkušanju! Če deluje povezava le s to možnostjo, je treba uvoziti potrdilo SSL strežnika LDAP na strežnik %s.", "Cache Time-To-Live" => "Predpomni podatke TTL", "in seconds. A change empties the cache." => "v sekundah. Sprememba izprazni predpomnilnik.", "Directory Settings" => "Nastavitve mape", "User Display Name Field" => "Polje za uporabnikovo prikazano ime", +"The LDAP attribute to use to generate the user's display name." => "Atribut LDAP za uporabo pri ustvarjanju prikaznega imena uporabnika.", "Base User Tree" => "Osnovno uporabniško drevo", -"One User Base DN per line" => "Eno osnovno uporabniško ime DN na vrstico", -"User Search Attributes" => "Uporabi atribute iskanja", +"One User Base DN per line" => "Eno osnovno uporabniško ime na vrstico", +"User Search Attributes" => "Uporabnikovi atributi iskanja", "Optional; one attribute per line" => "Izbirno; en atribut na vrstico", "Group Display Name Field" => "Polje za prikazano ime skupine", +"The LDAP attribute to use to generate the groups's display name." => "Atribut LDAP za uporabo pri ustvarjanju prikaznega imena skupine.", "Base Group Tree" => "Osnovno drevo skupine", -"One Group Base DN per line" => "Eno osnovno ime skupine DN na vrstico", -"Group Search Attributes" => "Atributi iskanja skupine", +"One Group Base DN per line" => "Eno osnovno ime skupine na vrstico", +"Group Search Attributes" => "Skupinski atributi iskanja", "Group-Member association" => "Povezava član-skupina", "Special Attributes" => "Posebni atributi", "Quota Field" => "Polje količinske omejitve", @@ -63,14 +95,16 @@ $TRANSLATIONS = array( "Email Field" => "Polje elektronske pošte", "User Home Folder Naming Rule" => "Pravila poimenovanja uporabniške osebne mape", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Pustite prazno za uporabniško ime (privzeto), sicer navedite atribut LDAP/AD.", -"Internal Username" => "Interno uporabniško ime", -"Internal Username Attribute:" => "Atribut Interno uporabniško ime", +"Internal Username" => "Programsko uporabniško ime", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Privzeto je notranje uporabniško ime ustvarjeno na osnovi atributa UUID. To omogoča določitev uporabniškega imena kot enoličnega, zato znakov ni treba pretvarjati. Notranje ime je omejeno na standardne znake: [ a-zA-Z0-9_.@- ]. Morebitni drugi znaki so zamenjani z ustreznim ASCII znakom, ali pa so enostavno izpuščeni. V primeru sporov je prišteta ali odšteta številčna vrednost. Notranje uporabniško ime je uporabljeno za določanje uporabnika in je privzeto ime uporabnikove domače mape. Hkrati je tudi del oddaljenega naslova URL, na primer za storitve *DAV. S to nastavitvijo je prepisan privzet način delovanja. Pri različicah ownCloud, nižjih od 5.0, je podoben učinek mogoče doseči z vpisom prikaznega imena oziroma z neizpolnjenim (praznim) poljem te vrednosti. Spremembe bodo uveljavljene le za nove preslikane (dodane) uporabnike LDAP.", +"Internal Username Attribute:" => "Programski atribut uporabniškega imena:", "Override UUID detection" => "Prezri zaznavo UUID", -"UUID Attribute:" => "Atribut UUID", -"Username-LDAP User Mapping" => "Preslikava uporabniško ime - LDAP-uporabnik", -"Clear Username-LDAP User Mapping" => "Izbriši preslikavo Uporabniškega imena in LDAP-uporabnika", -"Clear Groupname-LDAP Group Mapping" => "Izbriši preslikavo Skupine in LDAP-skupine", -"Test Configuration" => "Preizkusne nastavitve", -"Help" => "Pomoč" +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Privzeto je atribut UUID samodejno zaznan. Uporabljen je za določevanje uporabnikov LDAP in skupin. Notranje uporabniško ime je določeno prav na atributu UUID, če ni določeno drugače. To nastavitev je mogoče prepisati in poslati poljuben atribut. Zagotoviti je treba le, da je ta pridobljen kot enolični podatek za uporabnika ali skupino. Prazno polje določa privzeti način. Spremembe bodo vplivale na novo preslikane (dodane) uporabnike LDAP in skupine.", +"UUID Attribute for Users:" => "Atribut UUID za uporabnike:", +"UUID Attribute for Groups:" => "Atribut UUID za skupine:", +"Username-LDAP User Mapping" => "Uporabniška preslikava uporabniškega imena na LDAP", +"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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." => "Uporabniška imena so uporabljena za shranjevanje in dodeljevanje (meta) podatkov. Za natančno določanje in prepoznavanje uporabnikov je uporabljen sistem notranjega uporabniškega imena vsakega uporabnika LDAP. Ta možnost zahteva preslikavo uporabniškega imena v uporabnika LDAP in preslikano na njegov UUID. Sistem predpomni enolična imena za zmanjšanje odvisnosti LDAP, vendar pa ta podatek ni uporabljen za določevanje uporabnika. Če se enolično ime spremeni, se spremeni notranje uporabniško ime. Čiščenje preslikav pušča ostanke podatkov in vpliva na vse nastavitve LDAP! V delovnem okolju zato spreminjanje preslikav ni priporočljivo, možnost pa je na voljo za preizkušanje.", +"Clear Username-LDAP User Mapping" => "Izbriši preslikavo uporabniškega imena na LDAP", +"Clear Groupname-LDAP Group Mapping" => "Izbriši preslikavo skupine na LDAP" ); $PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"; diff --git a/apps/user_ldap/l10n/sq.php b/apps/user_ldap/l10n/sq.php index 2de62cc009a..0f18ac02351 100644 --- a/apps/user_ldap/l10n/sq.php +++ b/apps/user_ldap/l10n/sq.php @@ -1,7 +1,70 @@ <?php $TRANSLATIONS = array( -"Error" => "Veprim i gabuar", -"Password" => "Kodi", -"Help" => "Ndihmë" +"Failed to clear the mappings." => "dështoi së pastruari planifikimet", +"Failed to delete the server configuration" => "dështoi fshirjen e konfigurimit të serverit", +"The configuration is valid and the connection could be established!" => "Konfigurimi është i vlefshem dhe lidhja mund të kryhet", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurimi është i saktë por lidhja dështoi. Kontrolloni konfigurimete serverit dhe kredencialet.", +"Deletion failed" => "Fshirja dështoi", +"Take over settings from recent server configuration?" => "Doni të rivini konfigurmet më të fundit të serverit?", +"Keep settings?" => "Doni të mbani konfigurimet?", +"Cannot add server configuration" => "E pamundur të shtohen konfigurimet në server", +"mappings cleared" => "planifikimi u fshi", +"Success" => "Sukses", +"Error" => "Gabim", +"Connection test succeeded" => "Prova e lidhjes përfundoi me sukses", +"Connection test failed" => "Prova e lidhjes dështoi", +"Do you really want to delete the current Server Configuration?" => "Jeni vërtetë të sigurt të fshini konfigurimet aktuale të serverit?", +"Confirm Deletion" => "Konfirmoni Fshirjen", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "Ruaj", +"Test Configuration" => "Provoni konfigurimet", +"Help" => "Ndihmë", +"Add Server Configuration" => "Shtoni konfigurimet e serverit", +"Host" => "Pritësi", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Ju mund të mos vendosni protokollin ,vetëm nëse ju nevojitet SSL. atherë filloni me ldaps://", +"Port" => "Porta", +"User DN" => "Përdoruesi DN", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN -ja e klientit për përdoruesin që kërkon të lidhet duhet të jetë si psh,uid=agent,dc=example,dc=com. Për lidhjet anonime lini boshe hapsirat e DN dhe fjalëkalim ", +"Password" => "fjalëkalim", +"For anonymous access, leave DN and Password empty." => "Për tu lidhur në mënyre anonime, lini bosh hapsirat e DN dhe fjalëkalim", +"One Base DN per line" => "Një baze DN për rrjesht", +"You can specify Base DN for users and groups in the Advanced tab" => "Ju mund të specifikoni Bazen DN për përdorues dhe grupe në butonin 'Të Përparuara'", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Njoftim:</b> moduli PHP LDAP nuk është instaluar, motori nuk do të funksionojë.Kontaktoni me administratorin e sistemit.", +"Connection Settings" => "Të dhënat e lidhjes", +"Configuration Active" => "Konfigurimi Aktiv", +"When unchecked, this configuration will be skipped." => "Nëse nuk është i zgjedhur, ky konfigurim do të anashkalohet.", +"Backup (Replica) Host" => "Pritësi rezervë (Replika)", +"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Jepni një pritës rezervë. Duhet të jetë replikimi i serverit AD/LDAP kryesor.", +"Backup (Replica) Port" => "Porta rezervë (Replika)", +"Disable Main Server" => "Ç'aktivizoni serverin kryesor", +"Case insensitve LDAP server (Windows)" => " Server LDAP i pavëmëndshëm ndaj gërmëzimit të madh apo jo (Windows)", +"Turn off SSL certificate validation." => "Ç'aktivizoni kontrollin e certifikatës SSL.", +"Cache Time-To-Live" => "Cache Time-To-Live", +"in seconds. A change empties the cache." => "në sekonda Ndryshimi boshatis 'cache'-n.", +"Directory Settings" => "Konfigurimet e Dosjeve", +"User Display Name Field" => "Hapsira e Emrit të Përdoruesit", +"Base User Tree" => "Struktura bazë e përdoruesit", +"One User Base DN per line" => "Një përdorues baze DN për rrjesht", +"User Search Attributes" => "Atributet e kërkimit të përdoruesëve", +"Optional; one attribute per line" => "Opsionale; një atribut për rrjesht", +"Group Display Name Field" => "Hapsira e Emrit të Grupit", +"Base Group Tree" => "Struktura bazë e grupit", +"One Group Base DN per line" => "Një grup baze DN për rrjesht", +"Group Search Attributes" => "Atributet e kërkimit të grupit", +"Group-Member association" => "Pjestar Grup-Përdorues ", +"Special Attributes" => "Atribute të veçanta", +"Quota Field" => "Hapsira e Kuotës", +"Quota Default" => "Kuota e paracaktuar", +"in bytes" => "në byte", +"Email Field" => "Hapsira e Postës Elektronike", +"User Home Folder Naming Rule" => "Rregulli i emërimit të dosjes së përdoruesit", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lëreni bosh për emrin e përdoruesit (I Paracaktuar). Ose, përcaktoni një atribut LDAP/AD.", +"Internal Username" => "Emër i brëndshëm i përdoruesit", +"Internal Username Attribute:" => "Atributet e emrit të përdoruesit të brëndshëm", +"Override UUID detection" => "Mbivendosni gjetjen e UUID", +"Username-LDAP User Mapping" => "Emri përdoruesit-LAPD përcaktues përdoruesi", +"Clear Username-LDAP User Mapping" => "Fshini Emër përdoruesi-LAPD Përcaktues përdoruesi", +"Clear Groupname-LDAP Group Mapping" => "Fshini Emër Grupi-LADP Përcaktues grupi" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php index d0c9290dc19..d2ce2cf08b6 100644 --- a/apps/user_ldap/l10n/sr.php +++ b/apps/user_ldap/l10n/sr.php @@ -2,18 +2,18 @@ $TRANSLATIONS = array( "Deletion failed" => "Брисање није успело", "Error" => "Грешка", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Сачувај", +"Help" => "Помоћ", "Host" => "Домаћин", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можете да изоставите протокол, осим ако захтевате SSL. У том случају почните са ldaps://.", -"Base DN" => "База DN", +"Port" => "Порт", "User DN" => "Корисник DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN корисника клијента са којим треба да се успостави веза, нпр. uid=agent,dc=example,dc=com. За анониман приступ, оставите поља DN и лозинка празним.", "Password" => "Лозинка", "For anonymous access, leave DN and Password empty." => "За анониман приступ, оставите поља DN и лозинка празним.", -"User Login Filter" => "Филтер за пријаву корисника", -"User List Filter" => "Филтер за списак корисника", -"Group Filter" => "Филтер групе", -"Port" => "Порт", -"Use TLS" => "Користи TLS", +"Back" => "Назад", "Case insensitve LDAP server (Windows)" => "LDAP сервер осетљив на велика и мала слова (Windows)", "Turn off SSL certificate validation." => "Искључите потврду SSL сертификата.", "in seconds. A change empties the cache." => "у секундама. Промена испражњава кеш меморију.", @@ -22,7 +22,6 @@ $TRANSLATIONS = array( "Group Display Name Field" => "Име приказа групе", "Base Group Tree" => "Основна стабло група", "Group-Member association" => "Придруживање чланова у групу", -"in bytes" => "у бајтовима", -"Help" => "Помоћ" +"in bytes" => "у бајтовима" ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/sr@latin.php b/apps/user_ldap/l10n/sr@latin.php index 24fff94fc65..e3023996ad3 100644 --- a/apps/user_ldap/l10n/sr@latin.php +++ b/apps/user_ldap/l10n/sr@latin.php @@ -1,7 +1,10 @@ <?php $TRANSLATIONS = array( "Error" => "Greška", -"Password" => "Lozinka", -"Help" => "Pomoć" +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Snimi", +"Help" => "Pomoć", +"Password" => "Lozinka" ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php index 3288438c09b..62beec274e9 100644 --- a/apps/user_ldap/l10n/sv.php +++ b/apps/user_ldap/l10n/sv.php @@ -4,7 +4,11 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Misslyckades med att radera serverinställningen", "The configuration is valid and the connection could be established!" => "Inställningen är giltig och anslutningen kunde upprättas!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurationen är riktig, men Bind felade. Var vänlig och kontrollera serverinställningar och logininformation.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer.", +"The configuration is invalid. Please have a look at the logs for further details." => "Inställningen är ogiltig. Vänligen se ownCloud-loggen för fler detaljer.", +"No action specified" => "Ingen åtgärd har angetts", +"No configuration specified" => "Ingen konfiguration har angetts", +"No data specified" => "Ingen data har angetts", +" Could not set configuration %s" => "Kunde inte sätta inställning %s", "Deletion failed" => "Raderingen misslyckades", "Take over settings from recent server configuration?" => "Ta över inställningar från tidigare serverkonfiguration?", "Keep settings?" => "Behåll inställningarna?", @@ -12,40 +16,58 @@ $TRANSLATIONS = array( "mappings cleared" => "mappningar rensade", "Success" => "Lyckat", "Error" => "Fel", +"Configuration OK" => "Konfigurationen är OK", +"Configuration incorrect" => "Felaktig konfiguration", +"Configuration incomplete" => "Konfigurationen är ej komplett", +"Select groups" => "Välj grupper", +"Select object classes" => "Välj Objekt-klasser", +"Select attributes" => "Välj attribut", "Connection test succeeded" => "Anslutningstestet lyckades", "Connection test failed" => "Anslutningstestet misslyckades", "Do you really want to delete the current Server Configuration?" => "Vill du verkligen radera den nuvarande serverinställningen?", "Confirm Deletion" => "Bekräfta radering", -"<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 dom.", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varning:</b> PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation.", -"Server configuration" => "Serverinställning", +"_%s group found_::_%s groups found_" => array("%s grupp hittad","%s grupper hittade"), +"_%s user found_::_%s users found_" => array("%s användare hittad","%s användare hittade"), +"Invalid Host" => "Felaktig Host", +"Could not find the desired feature" => "Det gick inte hitta den önskade funktionen", +"Save" => "Spara", +"Test Configuration" => "Testa konfigurationen", +"Help" => "Hjälp", +"Limit the access to %s to groups meeting this criteria:" => "Begränsa åtkomsten till %s till grupper som möter följande kriterie:", +"only those object classes:" => "Endast de objekt-klasserna:", +"only from those groups:" => "endast ifrån de här grupperna:", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filtret specifierar vilka LDAD-grupper som ska ha åtkomst till %s instans", +"groups found" => "grupper hittade", +"What attribute shall be used as login name:" => "Vilket attribut ska användas som login namn:", +"LDAP Username:" => "LDAP användarnamn:", +"LDAP Email Address:" => "LDAP e-postadress:", +"Other Attributes:" => "Övriga attribut:", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"", "Add Server Configuration" => "Lägg till serverinställning", "Host" => "Server", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://", -"Base DN" => "Start DN", -"One Base DN per line" => "Ett Start DN per rad", -"You can specify Base DN for users and groups in the Advanced tab" => "Du kan ange start DN för användare och grupper under fliken Avancerat", +"Port" => "Port", "User DN" => "Användare DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN för användaren som skall användas, t.ex. uid=agent, dc=example, dc=com. För anonym åtkomst, lämna DN och lösenord tomt.", "Password" => "Lösenord", "For anonymous access, leave DN and Password empty." => "För anonym åtkomst, lämna DN och lösenord tomt.", -"User Login Filter" => "Filter logga in användare", -"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Definierar filter som tillämpas vid inloggning. %%uid ersätter användarnamn vid inloggningen. Exempel: \"uid=%%uid\"", -"User List Filter" => "Filter lista användare", -"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Definierar filter som tillämpas vid sökning efter användare (inga platshållare). Exempel: \"objectClass=person\"", -"Group Filter" => "Gruppfilter", -"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Definierar filter som tillämpas vid sökning efter grupper (inga platshållare). Exempel: \"objectClass=posixGroup\"", +"One Base DN per line" => "Ett Start DN per rad", +"You can specify Base DN for users and groups in the Advanced tab" => "Du kan ange start DN för användare och grupper under fliken Avancerat", +"Limit the access to %s to users meeting this criteria:" => "Begränsa åtkomsten till %s till användare som möter följande kriterie:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Filtret specifierar vilka LDAP-användare som skall ha åtkomst till %s instans", +"users found" => "användare funna", +"Back" => "Tillbaka", +"Continue" => "Fortsätt", +"<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 dom.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varning:</b> PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation.", "Connection Settings" => "Uppkopplingsinställningar", "Configuration Active" => "Konfiguration aktiv", "When unchecked, this configuration will be skipped." => "Ifall denna är avbockad så kommer konfigurationen att skippas.", -"Port" => "Port", "Backup (Replica) Host" => "Säkerhetskopierings-värd (Replika)", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Ange en valfri värd för säkerhetskopiering. Den måste vara en replika av den huvudsakliga LDAP/AD-servern", "Backup (Replica) Port" => "Säkerhetskopierins-port (Replika)", "Disable Main Server" => "Inaktivera huvudserver", "Only connect to the replica server." => "Anslut endast till replikaservern.", -"Use TLS" => "Använd TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Använd inte för LDAPS-anslutningar, det kommer inte att fungera.", "Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)", "Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Rekommenderas inte, använd endast för test! Om anslutningen bara fungerar med denna inställning behöver du importera LDAP-serverns SSL-certifikat till din %s server.", @@ -76,12 +98,11 @@ $TRANSLATIONS = array( "Internal Username Attribute:" => "Internt Användarnamn Attribut:", "Override UUID detection" => "Åsidosätt UUID detektion", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Som standard upptäcker ownCloud automatiskt UUID-attributet. Det UUID-attributet används för att utan tvivel identifiera LDAP-användare och grupper. Dessutom kommer interna användarnamn skapas baserat på detta UUID, om inte annat anges ovan. Du kan åsidosätta inställningen och passera ett attribut som du själv väljer. Du måste se till att attributet som du väljer kan hämtas för både användare och grupper och att det är unikt. Lämna det tomt för standard beteende. Förändringar kommer endast att påverka nyligen mappade (tillagda) LDAP-användare och grupper.", -"UUID Attribute:" => "UUID Attribut:", +"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 User Mapping", "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from 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 använder sig av användarnamn för att lagra och tilldela (meta) data. För att exakt kunna identifiera och känna igen användare, kommer varje LDAP-användare ha ett internt användarnamn. Detta kräver en mappning från ownCloud-användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID för LDAP-användaren. Dessutom cachas DN samt minska LDAP-interaktionen, men den används inte för identifiering. Om DN förändras, kommer förändringarna hittas av ownCloud. Det interna ownCloud-namnet används överallt i ownCloud. Om du rensar/raderar mappningarna kommer att lämna referenser överallt i systemet. Men den är inte konfigurationskänslig, den påverkar alla LDAP-konfigurationer! Rensa/radera aldrig mappningarna i en produktionsmiljö. Utan gör detta endast på i testmiljö!", "Clear Username-LDAP User Mapping" => "Rensa Användarnamn-LDAP User Mapping", -"Clear Groupname-LDAP Group Mapping" => "Rensa Gruppnamn-LDAP Group Mapping", -"Test Configuration" => "Testa konfigurationen", -"Help" => "Hjälp" +"Clear Groupname-LDAP Group Mapping" => "Rensa Gruppnamn-LDAP Group Mapping" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/sw_KE.php b/apps/user_ldap/l10n/sw_KE.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/sw_KE.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php index 25053f2e3d1..c7efcf05894 100644 --- a/apps/user_ldap/l10n/ta_LK.php +++ b/apps/user_ldap/l10n/ta_LK.php @@ -2,14 +2,17 @@ $TRANSLATIONS = array( "Deletion failed" => "நீக்கம் தோல்வியடைந்தது", "Error" => "வழு", +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "சேமிக்க ", +"Help" => "உதவி", "Host" => "ஓம்புனர்", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "நீங்கள் SSL சேவையை தவிர உடன்படு வரைமுறையை தவிர்க்க முடியும். பிறகு ldaps:.// உடன் ஆரம்பிக்கவும்", -"Base DN" => "தள DN", -"You can specify Base DN for users and groups in the Advanced tab" => "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் ", +"Port" => "துறை ", "User DN" => "பயனாளர் DN", "Password" => "கடவுச்சொல்", -"Port" => "துறை ", -"Use TLS" => "TLS ஐ பயன்படுத்தவும்", +"You can specify Base DN for users and groups in the Advanced tab" => "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் ", +"Back" => "பின்னுக்கு", "Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)", "Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்", "in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.", @@ -19,7 +22,6 @@ $TRANSLATIONS = array( "Base Group Tree" => "தள குழு மரம்", "Group-Member association" => "குழு உறுப்பினர் சங்கம்", "in bytes" => "bytes களில் ", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்.", -"Help" => "உதவி" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்." ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/te.php b/apps/user_ldap/l10n/te.php index 23728a9d34b..ad3ffb1c5e8 100644 --- a/apps/user_ldap/l10n/te.php +++ b/apps/user_ldap/l10n/te.php @@ -1,7 +1,10 @@ <?php $TRANSLATIONS = array( "Error" => "పొరపాటు", -"Password" => "సంకేతపదం", -"Help" => "సహాయం" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Save" => "భద్రపరచు", +"Help" => "సహాయం", +"Password" => "సంకేతపదం" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php index 91d93e1235c..2202a2f0a83 100644 --- a/apps/user_ldap/l10n/th_TH.php +++ b/apps/user_ldap/l10n/th_TH.php @@ -3,35 +3,34 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว", "The configuration is valid and the connection could be established!" => "การกำหนดค่าถูกต้องและการเชื่อมต่อสามารถเชื่อมต่อได้!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "การกำหนดค่าถูกต้อง, แต่การผูกข้อมูลล้มเหลว, กรุณาตรวจสอบการตั้งค่าเซิร์ฟเวอร์และข้อมูลการเข้าใช้งาน", -"The configuration is invalid. Please look in the ownCloud log for further details." => "การกำหนดค่าไม่ถูกต้อง กรุณาดูรายละเอียดจากบันทึกการเปลี่ยนแปลงของ ownCloud สำหรับรายละเอียดเพิ่มเติม", "Deletion failed" => "การลบทิ้งล้มเหลว", "Keep settings?" => "รักษาการตั้งค่าไว้?", "Cannot add server configuration" => "ไม่สามารถเพิ่มค่ากำหนดเซิร์ฟเวอร์ได้", "Success" => "เสร็จสิ้น", "Error" => "ข้อผิดพลาด", +"Select groups" => "เลือกกลุ่ม", "Connection test succeeded" => "ทดสอบการเชื่อมต่อสำเร็จ", "Connection test failed" => "ทดสอบการเชื่อมต่อล้มเหลว", "Do you really want to delete the current Server Configuration?" => "คุณแน่ใจแล้วหรือว่าต้องการลบการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันทิ้งไป?", "Confirm Deletion" => "ยืนยันการลบทิ้ง", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>คำเตือน:</b> โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว", -"Server configuration" => "การกำหนดค่าเซิร์ฟเวอร์", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "บันทึก", +"Help" => "ช่วยเหลือ", "Add Server Configuration" => "เพิ่มการกำหนดค่าเซิร์ฟเวอร์", "Host" => "โฮสต์", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "คุณสามารถปล่อยช่องโปรโตคอลเว้นไว้ได้, ยกเว้นกรณีที่คุณต้องการใช้ SSL จากนั้นเริ่มต้นด้วย ldaps://", -"Base DN" => "DN ฐาน", -"One Base DN per line" => "หนึ่ง Base DN ต่อบรรทัด", -"You can specify Base DN for users and groups in the Advanced tab" => "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้", +"Port" => "พอร์ต", "User DN" => "DN ของผู้ใช้งาน", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN ของผู้ใช้งานที่เป็นลูกค้าอะไรก็ตามที่ผูกอยู่ด้วย เช่น uid=agent, dc=example, dc=com, สำหรับการเข้าถึงโดยบุคคลนิรนาม, ให้เว้นว่าง DN และ รหัสผ่านเอาไว้", "Password" => "รหัสผ่าน", "For anonymous access, leave DN and Password empty." => "สำหรับการเข้าถึงโดยบุคคลนิรนาม ให้เว้นว่าง DN และรหัสผ่านไว้", -"User Login Filter" => "ตัวกรองข้อมูลการเข้าสู่ระบบของผู้ใช้งาน", -"User List Filter" => "ตัวกรองข้อมูลรายชื่อผู้ใช้งาน", -"Group Filter" => "ตัวกรองข้อมูลกลุ่ม", +"One Base DN per line" => "หนึ่ง Base DN ต่อบรรทัด", +"You can specify Base DN for users and groups in the Advanced tab" => "คุณสามารถระบุ DN หลักสำหรับผู้ใช้งานและกลุ่มต่างๆในแท็บขั้นสูงได้", +"Back" => "ย้อนกลับ", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>คำเตือน:</b> โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว", "Connection Settings" => "ตั้งค่าการเชื่อมต่อ", -"Port" => "พอร์ต", "Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก", -"Use TLS" => "ใช้ TLS", "Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)", "Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL", "in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า", @@ -48,7 +47,6 @@ $TRANSLATIONS = array( "Group-Member association" => "ความสัมพันธ์ของสมาชิกในกลุ่ม", "Special Attributes" => "คุณลักษณะพิเศษ", "in bytes" => "ในหน่วยไบต์", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD", -"Help" => "ช่วยเหลือ" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php index fc9cceddf03..8299c5fecac 100644 --- a/apps/user_ldap/l10n/tr.php +++ b/apps/user_ldap/l10n/tr.php @@ -1,58 +1,110 @@ <?php $TRANSLATIONS = array( +"Failed to clear the mappings." => "Eşleştirmeler temizlenirken hata oluştu.", "Failed to delete the server configuration" => "Sunucu yapılandırmasını silme başarısız oldu", "The configuration is valid and the connection could be established!" => "Yapılandırma geçerli ve bağlantı kuruldu!", -"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Yapılandırma geçerli fakat bağlanma(bind) başarısız. Lütfen Sunucu ayarları ve kimlik bilgilerini kontrol ediniz.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Yapılandırma geçersiz. Daha fazla detay için lütfen ownCloud günlüklerine bakınız.", +"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Yapılandırma geçerli fakat bağlama (bind) başarısız. Lütfen Sunucu ayarları ve kimlik bilgilerini kontrol edin.", +"The configuration is invalid. Please have a look at the logs for further details." => "Yapılandırma geçersiz. Lütfen ayrıntılar için günlüklere bakın.", +"No action specified" => "Eylem belirtilmedi", +"No configuration specified" => "Yapılandırma belirtilmemiş", +"No data specified" => "Veri belirtilmemiş", +" Could not set configuration %s" => "Yapılandırma %s olarak ayarlanamadı", "Deletion failed" => "Silme başarısız oldu", -"Take over settings from recent server configuration?" => "Ayarları son sunucu yapılandırmalarından devral?", +"Take over settings from recent server configuration?" => "Ayarlar son sunucu yapılandırmalarından devralınsın mı?", "Keep settings?" => "Ayarlar kalsın mı?", "Cannot add server configuration" => "Sunucu yapılandırması eklenemedi", +"mappings cleared" => "eşleştirmeler temizlendi", +"Success" => "Başarılı", "Error" => "Hata", +"Configuration OK" => "Yapılandırma tamam", +"Configuration incorrect" => "Yapılandırma geçersiz", +"Configuration incomplete" => "Yapılandırma tamamlanmamış", +"Select groups" => "Grupları seç", +"Select object classes" => "Nesne sınıflarını seç", +"Select attributes" => "Nitelikleri seç", "Connection test succeeded" => "Bağlantı testi başarılı oldu", "Connection test failed" => "Bağlantı testi başarısız oldu", "Do you really want to delete the current Server Configuration?" => "Şu anki sunucu yapılandırmasını silmek istediğinizden emin misiniz?", "Confirm Deletion" => "Silmeyi onayla", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ihbar <b> Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin.", -"Server configuration" => "Sunucu uyunlama ", +"_%s group found_::_%s groups found_" => array("%s grup bulundu","%s grup bulundu"), +"_%s user found_::_%s users found_" => array("%s kullanıcı bulundu","%s kullanıcı bulundu"), +"Invalid Host" => "Geçersiz Makine", +"Could not find the desired feature" => "İstenen özellik bulunamadı", +"Save" => "Kaydet", +"Test Configuration" => "Test Yapılandırması", +"Help" => "Yardım", +"Limit the access to %s to groups meeting this criteria:" => "%s erişimini, şu kriterle eşleşen gruplara sınırla:", +"only those object classes:" => "sadece bu nesne sınıflarına:", +"only from those groups:" => "sadece bu gruplardan:", +"Edit raw filter instead" => "Bunun yerine ham filtreyi düzenle", +"Raw LDAP filter" => "Ham LDAP filtresi", +"The filter specifies which LDAP groups shall have access to the %s instance." => "Filtre, %s örneğine erişmesi gereken LDAP gruplarını belirtir.", +"groups found" => "grup bulundu", +"What attribute shall be used as login name:" => "Oturum ismi olarak hangi nitelik kullanılmalı:", +"LDAP Username:" => "LDAP Kullanıcı Adı:", +"LDAP Email Address:" => "LDAP E-posta Adresi:", +"Other Attributes:" => "Diğer Nitelikler", +"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"", "Add Server Configuration" => "Sunucu Uyunlama birlemek ", "Host" => "Sunucu", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol atlamak edesin, sadece SSL istiyorsaniz. O zaman, idapsile baslamak. ", -"Base DN" => "Ana DN", -"One Base DN per line" => "Bir Tabani DN herbir dizi. ", -"You can specify Base DN for users and groups in the Advanced tab" => "Base DN kullanicileri ve kaynaklari icin tablosu Advanced tayin etmek ederiz. ", +"Port" => "Port", "User DN" => "Kullanıcı DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN musterinin, kimle baglamaya yapacagiz,meselâ uid=agent.dc mesela, dc=com Gecinme adisiz ici, DN ve Parola bos birakmak. ", "Password" => "Parola", "For anonymous access, leave DN and Password empty." => "Anonim erişim için DN ve Parola alanlarını boş bırakın.", -"User Login Filter" => "Kullanıcı Oturum Filtresi", -"User List Filter" => "Kullanıcı Liste Filtresi", -"Group Filter" => "Grup Süzgeci", +"One Base DN per line" => "Bir Tabani DN herbir dizi. ", +"You can specify Base DN for users and groups in the Advanced tab" => "Base DN kullanicileri ve kaynaklari icin tablosu Advanced tayin etmek ederiz. ", +"Limit the access to %s to users meeting this criteria:" => "%s erişimini, şu kriterle eşleşen kullanıcılara sınırla:", +"The filter specifies which LDAP users shall have access to the %s instance." => "Filtre, %s örneğine erişmesi gereken LDAP kullanıcılarını belirtir.", +"users found" => "kullanıcı bulundu", +"Back" => "Geri", +"Continue" => "Devam et", +"<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 iletişime geçin.", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ihbar <b> Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin.", "Connection Settings" => "Bağlantı ayarları", +"Configuration Active" => "Yapılandırma Etkin", "When unchecked, this configuration will be skipped." => "Ne zaman iptal, bu uynnlama isletici ", -"Port" => "Port", "Backup (Replica) Host" => "Sigorta Kopya Cephe ", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Bir kopya cevre vermek, kopya sunucu onemli olmali. ", "Backup (Replica) Port" => "Kopya Port ", "Disable Main Server" => "Ana sunucuyu devredışı birak", -"Use TLS" => "TLS kullan", -"Do not use it additionally for LDAPS connections, it will fail." => "Bu LDAPS baglama icin kullamaminiz, basamacak. ", +"Only connect to the replica server." => "Sadece kopya sunucuya bağlan.", "Case insensitve LDAP server (Windows)" => "Dusme sunucu LDAP zor degil. (Windows)", "Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.", +"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Önerilmez, sadece test için kullanın! Eğer bağlantı sadece bu seçenekle çalışıyorsa %s sunucunuza LDAP sunucusunun SSL sertifikasını ekleyin.", "Cache Time-To-Live" => "Cache Time-To-Live ", "in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.", "Directory Settings" => "Parametrar Listesin Adresinin ", "User Display Name Field" => "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)", +"The LDAP attribute to use to generate the user's display name." => "Kullanıcının görünen adını oluşturmak için kullanılacak LDAP niteliği.", "Base User Tree" => "Temel Kullanıcı Ağacı", "One User Base DN per line" => "Bir Temel Kullanici DN her dizgi ", "User Search Attributes" => "Kategorii Arama Kullanici ", +"Optional; one attribute per line" => "Tercihe bağlı; her bir satırda bir öznitelik", "Group Display Name Field" => "Grub Ekrane Alani Adi", +"The LDAP attribute to use to generate the groups's display name." => "Grubun görünen adını oluşturmak için kullanılacak LDAP niteliği.", "Base Group Tree" => "Temel Grup Ağacı", "One Group Base DN per line" => "Bir Grubu Tabani DN her dizgi. ", "Group Search Attributes" => "Kategorii Arama Grubu", "Group-Member association" => "Grup-Üye işbirliği", +"Special Attributes" => "Özel Öznitelikler", +"Quota Field" => "Kota Alanı", +"Quota Default" => "Öntanımlı Kota", "in bytes" => "byte cinsinden", +"Email Field" => "E-posta Alanı", +"User Home Folder Naming Rule" => "Kullanıcı Ana Dizini İsimlendirme Kuralı", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ", -"Help" => "Yardım" +"Internal Username" => "Dahili Kullanıcı Adı", +"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Öntanımlı olarak UUID niteliğinden dahili bir kullanıcı adı oluşturulacak. Bu, kullanıcı adının benzersiz ve karakterlerinin dönüştürme gereksinimini ortadan kaldırır. Dahili kullanıcı adı, sadece bu karakterlerin izin verildiği kısıtlamaya sahip: [ a-zA-Z0-9_.@- ]. Diğer karakterler ise ASCII karşılıkları ile yer değiştirilir veya basitçe yoksayılır. Çakışmalar olduğunda ise bir numara eklenir veya arttırılır. Dahili kullanıcı adı, bir kullanıcıyı dahili olarak tanımlamak için kullanılır. Ayrıca kullanıcı ev klasörü için öntanımlı bir isimdir. Bu ayrıca uzak adreslerin (örneğin tüm *DAV hizmetleri) bir parçasıdır. Bu yar ise, öntanımlı davranışın üzerine yazılabilir. ownCloud 5'ten önce benzer davranışı yapabilmek için aşağıdaki alana bir kullanıcı görünen adı niteliği girin. Öntanımlı davranış için boş bırakın. Değişiklikler, sadece yeni eşleştirilen (eklenen) LDAP kullanıcılarında etkili olacaktır.", +"Internal Username Attribute:" => "Dahili Kullanıcı Adı Özniteliği:", +"Override UUID detection" => "UUID tespitinin üzerine yaz", +"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Öntanımlı olarak, UUID niteliği otomatik olarak tespit edilmez. UUID niteliği LDAP kullanıcılarını ve gruplarını şüphesiz biçimde tanımlamak için kullanılır. Ayrıca yukarıda belirtilmemişse, bu UUID'ye bağlı olarak dahili bir kullanıcı adı oluşturulacaktır. Bu ayarın üzerine yazabilir ve istediğiniz bir nitelik belirtebilirsiniz. Ancak istediğiniz niteliğin benzersiz olduğundan ve hem kullanıcı hem de gruplar tarafından getirilebileceğinden emin olmalısınız. Öntanımlı davranış için boş bırakın. Değişiklikler sadece yeni eşleştirilen (eklenen) LDAP kullanıcı ve gruplarında etkili olacaktır.", +"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 a 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 tanımlamak ve algılamak için, her LDAP kullanıcısı bir dahili kullanıcı adına sahip olacak. Bu kullanıcı adı ile LDAP kullanıcısı arasında bir eşleşme gerektirir. Oluşturulan kullanıcı adı LDAP kullanıcısının UUID'si ile eşleştirilir. Ek olarak LDAP etkileşimini azaltmak için DN de önbelleğe alınır ancak bu kimlik tanıma için kullanılmaz. Eğer DN değişirse, değişiklikler tespit edilir. Dahili kullanıcı her yerde kullanılır. Eşleştirmeleri temizlemek, her yerde kalıntılar bırakacaktır. Eşleştirmeleri temizlemek yapılandırmaya hassas bir şekilde bağlı değildir, tüm LDAP yapılandırmalarını etkiler! Üretim ortamında eşleştirmeleri asla temizlemeyin, sadece sınama veya deneysel aşamada kullanın.", +"Clear Username-LDAP User Mapping" => "Kullanıcı Adı-LDAP Kullanıcısı Eşleştirmesini Temizle", +"Clear Groupname-LDAP Group Mapping" => "Grup Adı-LDAP Grubu Eşleştirme" ); $PLURAL_FORMS = "nplurals=2; plural=(n > 1);"; diff --git a/apps/user_ldap/l10n/tzm.php b/apps/user_ldap/l10n/tzm.php new file mode 100644 index 00000000000..5a0481c397a --- /dev/null +++ b/apps/user_ldap/l10n/tzm.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n == 0 || n == 1 || (n > 10 && n < 100) ? 0 : 1;"; diff --git a/apps/user_ldap/l10n/ug.php b/apps/user_ldap/l10n/ug.php index 39382fed1f0..7f751814396 100644 --- a/apps/user_ldap/l10n/ug.php +++ b/apps/user_ldap/l10n/ug.php @@ -2,15 +2,14 @@ $TRANSLATIONS = array( "Deletion failed" => "ئۆچۈرۈش مەغلۇپ بولدى", "Error" => "خاتالىق", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "ساقلا", +"Help" => "ياردەم", "Host" => "باش ئاپپارات", +"Port" => "ئېغىز", "Password" => "ئىم", -"User Login Filter" => "ئىشلەتكۈچى تىزىمغا كىرىش سۈزگۈچى", -"User List Filter" => "ئىشلەتكۈچى تىزىم سۈزگۈچى", -"Group Filter" => "گۇرۇپپا سۈزگۈچ", "Connection Settings" => "باغلىنىش تەڭشىكى", -"Configuration Active" => "سەپلىمە ئاكتىپ", -"Port" => "ئېغىز", -"Use TLS" => "TLS ئىشلەت", -"Help" => "ياردەم" +"Configuration Active" => "سەپلىمە ئاكتىپ" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php index 5fb52761215..e87348ec44d 100644 --- a/apps/user_ldap/l10n/uk.php +++ b/apps/user_ldap/l10n/uk.php @@ -3,42 +3,42 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "Не вдалося видалити конфігурацію сервера", "The configuration is valid and the connection could be established!" => "Конфігурація вірна і зв'язок може бути встановлений !", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфігурація вірна, але встановити зв'язок не вдалося. Будь ласка, перевірте налаштування сервера і облікові дані.", -"The configuration is invalid. Please look in the ownCloud log for further details." => "Конфігурація невірна. Подробиці подивіться, будь ласка, в журналі ownCloud.", "Deletion failed" => "Видалення не було виконано", "Take over settings from recent server configuration?" => "Застосувати налаштування з останньої конфігурації сервера ?", "Keep settings?" => "Зберегти налаштування ?", "Cannot add server configuration" => "Неможливо додати конфігурацію сервера", "Success" => "Успіх", "Error" => "Помилка", +"Select groups" => "Оберіть групи", "Connection test succeeded" => "Перевірка з'єднання пройшла успішно", "Connection test failed" => "Перевірка з'єднання завершилась неуспішно", "Do you really want to delete the current Server Configuration?" => "Ви дійсно бажаєте видалити поточну конфігурацію сервера ?", "Confirm Deletion" => "Підтвердіть Видалення", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Увага:</ b> Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його.", -"Server configuration" => "Налаштування Сервера", +"_%s group found_::_%s groups found_" => array("","",""), +"_%s user found_::_%s users found_" => array("","",""), +"Save" => "Зберегти", +"Test Configuration" => "Тестове налаштування", +"Help" => "Допомога", "Add Server Configuration" => "Додати налаштування Сервера", "Host" => "Хост", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://", -"Base DN" => "Базовий DN", -"One Base DN per line" => "Один Base DN на одній строчці", -"You can specify Base DN for users and groups in the Advanced tab" => "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково", +"Port" => "Порт", "User DN" => "DN Користувача", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN клієнтського користувача для прив'язки, наприклад: uid=agent,dc=example,dc=com. Для анонімного доступу, залиште DN і Пароль порожніми.", "Password" => "Пароль", "For anonymous access, leave DN and Password empty." => "Для анонімного доступу, залиште DN і Пароль порожніми.", -"User Login Filter" => "Фільтр Користувачів, що під'єднуються", -"User List Filter" => "Фільтр Списку Користувачів", -"Group Filter" => "Фільтр Груп", +"One Base DN per line" => "Один Base DN на одній строчці", +"You can specify Base DN for users and groups in the Advanced tab" => "Ви можете задати Базовий DN для користувачів і груп на вкладинці Додатково", +"Back" => "Назад", +"Continue" => "Продовжити", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Увага:</ b> Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його.", "Connection Settings" => "Налаштування З'єднання", "Configuration Active" => "Налаштування Активне", "When unchecked, this configuration will be skipped." => "Якщо \"галочка\" знята, ця конфігурація буде пропущена.", -"Port" => "Порт", "Backup (Replica) Host" => "Сервер для резервних копій", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Вкажіть додатковий резервний сервер. Він повинен бути копією головного LDAP/AD сервера.", "Backup (Replica) Port" => "Порт сервера для резервних копій", "Disable Main Server" => "Вимкнути Головний Сервер", -"Use TLS" => "Використовуйте TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Не використовуйте це додатково для під'єднання до LDAP, бо виконано не буде.", "Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)", "Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.", "Cache Time-To-Live" => "Час актуальності Кеша", @@ -60,8 +60,6 @@ $TRANSLATIONS = array( "in bytes" => "в байтах", "Email Field" => "Поле Ел. пошти", "User Home Folder Naming Rule" => "Правило іменування домашньої теки користувача", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD.", -"Test Configuration" => "Тестове налаштування", -"Help" => "Допомога" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Залиште порожнім для імені користувача (за замовчанням). Інакше, вкажіть атрибут LDAP/AD." ); $PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"; diff --git a/apps/user_ldap/l10n/ur.php b/apps/user_ldap/l10n/ur.php new file mode 100644 index 00000000000..3a1e002311c --- /dev/null +++ b/apps/user_ldap/l10n/ur.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("","") +); +$PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/ur_PK.php b/apps/user_ldap/l10n/ur_PK.php index a84be798f92..9fbd174bd1f 100644 --- a/apps/user_ldap/l10n/ur_PK.php +++ b/apps/user_ldap/l10n/ur_PK.php @@ -1,7 +1,9 @@ <?php $TRANSLATIONS = array( "Error" => "ایرر", -"Password" => "پاسورڈ", -"Help" => "مدد" +"_%s group found_::_%s groups found_" => array("",""), +"_%s user found_::_%s users found_" => array("",""), +"Help" => "مدد", +"Password" => "پاسورڈ" ); $PLURAL_FORMS = "nplurals=2; plural=(n != 1);"; diff --git a/apps/user_ldap/l10n/uz.php b/apps/user_ldap/l10n/uz.php new file mode 100644 index 00000000000..bba52d53a1a --- /dev/null +++ b/apps/user_ldap/l10n/uz.php @@ -0,0 +1,6 @@ +<?php +$TRANSLATIONS = array( +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array("") +); +$PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php index 7ef961df7ad..f1f069cc4d4 100644 --- a/apps/user_ldap/l10n/vi.php +++ b/apps/user_ldap/l10n/vi.php @@ -3,23 +3,23 @@ $TRANSLATIONS = array( "Deletion failed" => "Xóa thất bại", "Success" => "Thành công", "Error" => "Lỗi", +"Select groups" => "Chọn nhóm", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "Lưu", +"Help" => "Giúp đỡ", "Host" => "Máy chủ", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Bạn có thể bỏ qua các giao thức, ngoại trừ SSL. Sau đó bắt đầu với ldaps://", -"Base DN" => "DN cơ bản", -"You can specify Base DN for users and groups in the Advanced tab" => "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced", +"Port" => "Cổng", "User DN" => "Người dùng DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Các DN của người sử dụng đã được thực hiện, ví dụ như uid =agent , dc = example, dc = com. Để truy cập nặc danh ,DN và mật khẩu trống.", "Password" => "Mật khẩu", "For anonymous access, leave DN and Password empty." => "Cho phép truy cập nặc danh , DN và mật khẩu trống.", -"User Login Filter" => "Lọc người dùng đăng nhập", -"User List Filter" => "Lọc danh sách thành viên", -"Group Filter" => "Bộ lọc nhóm", +"You can specify Base DN for users and groups in the Advanced tab" => "Bạn có thể chỉ định DN cơ bản cho người dùng và các nhóm trong tab Advanced", +"Back" => "Trở lại", "Connection Settings" => "Connection Settings", -"Port" => "Cổng", "Backup (Replica) Port" => "Cổng sao lưu (Replica)", "Disable Main Server" => "Tắt máy chủ chính", -"Use TLS" => "Sử dụng TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "Do not use it additionally for LDAPS connections, it will fail.", "Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)", "Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL", "in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.", @@ -34,7 +34,6 @@ $TRANSLATIONS = array( "Group-Member association" => "Nhóm thành viên Cộng đồng", "Special Attributes" => "Special Attributes", "in bytes" => "Theo Byte", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD", -"Help" => "Giúp đỡ" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php index c30cb421505..f1a3625bf38 100644 --- a/apps/user_ldap/l10n/zh_CN.php +++ b/apps/user_ldap/l10n/zh_CN.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "未能删除服务器配置", "The configuration is valid and the connection could be established!" => "配置有效,能够建立连接!", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "配置有效但绑定失败。请检查服务器设置和认证信息。", -"The configuration is invalid. Please look in the ownCloud log for further details." => "配置无效。更多细节请查看 ownCloud 日志。", "Deletion failed" => "删除失败", "Take over settings from recent server configuration?" => "从近期的服务器配置中导入设置?", "Keep settings?" => "保留设置吗?", @@ -12,35 +11,35 @@ $TRANSLATIONS = array( "mappings cleared" => "清除映射", "Success" => "成功", "Error" => "错误", +"Select groups" => "选择分组", "Connection test succeeded" => "连接测试成功", "Connection test failed" => "连接测试失败", "Do you really want to delete the current Server Configuration?" => "您真的想要删除当前服务器配置吗?", "Confirm Deletion" => "确认删除", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b> PHP LDAP 模块未安装,后端将无法工作。请请求您的系统管理员安装该模块。", -"Server configuration" => "服务器配置", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "保存", +"Test Configuration" => "测试配置", +"Help" => "帮助", "Add Server Configuration" => "添加服务器配置", "Host" => "主机", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "可以忽略协议,但如要使用SSL,则需以ldaps://开头", -"Base DN" => "Base DN", -"One Base DN per line" => "每行一个基本判别名", -"You can specify Base DN for users and groups in the Advanced tab" => "您可以在高级选项卡里为用户和组指定Base DN", +"Port" => "端口", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "客户端使用的DN必须与绑定的相同,比如uid=agent,dc=example,dc=com\n如需匿名访问,将DN和密码保留为空", "Password" => "密码", "For anonymous access, leave DN and Password empty." => "启用匿名访问,将DN和密码保留为空", -"User Login Filter" => "用户登录过滤", -"User List Filter" => "用户列表过滤", -"Group Filter" => "组过滤", +"One Base DN per line" => "每行一个基本判别名", +"You can specify Base DN for users and groups in the Advanced tab" => "您可以在高级选项卡里为用户和组指定Base DN", +"Back" => "返回", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b> PHP LDAP 模块未安装,后端将无法工作。请请求您的系统管理员安装该模块。", "Connection Settings" => "连接设置", "Configuration Active" => "现行配置", "When unchecked, this configuration will be skipped." => "当反选后,此配置将被忽略。", -"Port" => "端口", "Backup (Replica) Host" => "备份 (镜像) 主机", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "给出一个可选的备份主机。它必须为主 LDAP/AD 服务器的一个镜像。", "Backup (Replica) Port" => "备份 (镜像) 端口", "Disable Main Server" => "禁用主服务器", -"Use TLS" => "使用TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "对于 LDAPS 连接不要额外启用它,连接必然失败。", "Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)", "Turn off SSL certificate validation." => "关闭SSL证书验证", "Cache Time-To-Live" => "缓存存活时间", @@ -66,11 +65,8 @@ $TRANSLATIONS = array( "Internal Username" => "内部用户名", "Internal Username Attribute:" => "内部用户名属性:", "Override UUID detection" => "超越UUID检测", -"UUID Attribute:" => "UUID属性:", "Username-LDAP User Mapping" => "用户名-LDAP用户映射", "Clear Username-LDAP User Mapping" => "清除用户-LDAP用户映射", -"Clear Groupname-LDAP Group Mapping" => "清除组用户-LDAP级映射", -"Test Configuration" => "测试配置", -"Help" => "帮助" +"Clear Groupname-LDAP Group Mapping" => "清除组用户-LDAP级映射" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/zh_HK.php b/apps/user_ldap/l10n/zh_HK.php index b656f0fc464..cb504b17463 100644 --- a/apps/user_ldap/l10n/zh_HK.php +++ b/apps/user_ldap/l10n/zh_HK.php @@ -2,8 +2,11 @@ $TRANSLATIONS = array( "Success" => "成功", "Error" => "錯誤", -"Password" => "密碼", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "儲存", +"Help" => "幫助", "Port" => "連接埠", -"Help" => "幫助" +"Password" => "密碼" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/l10n/zh_TW.php b/apps/user_ldap/l10n/zh_TW.php index 2cc1ac99336..a7ae04cd167 100644 --- a/apps/user_ldap/l10n/zh_TW.php +++ b/apps/user_ldap/l10n/zh_TW.php @@ -4,7 +4,6 @@ $TRANSLATIONS = array( "Failed to delete the server configuration" => "刪除伺服器設定時失敗", "The configuration is valid and the connection could be established!" => "設定有效且連線可建立", "The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "設定有效但連線無法建立,請檢查伺服器設定與認證資料。", -"The configuration is invalid. Please look in the ownCloud log for further details." => "設定無效,更多細節請參閱 ownCloud 的記錄檔。", "Deletion failed" => "移除失敗", "Take over settings from recent server configuration?" => "要使用最近一次的伺服器設定嗎?", "Keep settings?" => "維持設定嗎?", @@ -12,35 +11,36 @@ $TRANSLATIONS = array( "mappings cleared" => "映射已清除", "Success" => "成功", "Error" => "錯誤", +"Select groups" => "選擇群組", "Connection test succeeded" => "連線測試成功", "Connection test failed" => "連線測試失敗", "Do you really want to delete the current Server Configuration?" => "您真的要刪除現在的伺服器設定嗎?", "Confirm Deletion" => "確認刪除", -"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b>沒有安裝 PHP LDAP 模組,後端系統將無法運作,請要求您的系統管理員安裝模組。", -"Server configuration" => "伺服器設定", +"_%s group found_::_%s groups found_" => array(""), +"_%s user found_::_%s users found_" => array(""), +"Save" => "儲存", +"Test Configuration" => "測試此設定", +"Help" => "說明", "Add Server Configuration" => "新增伺服器設定", "Host" => "主機", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "若您不需要 SSL 加密連線則不需輸入通訊協定,反之請輸入 ldaps://", -"Base DN" => "Base DN", -"One Base DN per line" => "一行一個 Base DN", -"You can specify Base DN for users and groups in the Advanced tab" => "您可以在進階標籤頁裡面指定使用者及群組的 Base DN", +"Port" => "連接埠", "User DN" => "User DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "客戶端使用者的DN與特定字詞的連結需要完善,例如:uid=agent,dc=example,dc=com。若是匿名連接,則將DN與密碼欄位留白。", "Password" => "密碼", "For anonymous access, leave DN and Password empty." => "匿名連接時請將 DN 與密碼欄位留白", -"User Login Filter" => "User Login Filter", -"User List Filter" => "User List Filter", -"Group Filter" => "Group Filter", +"One Base DN per line" => "一行一個 Base DN", +"You can specify Base DN for users and groups in the Advanced tab" => "您可以在進階標籤頁裡面指定使用者及群組的 Base DN", +"Back" => "返回", +"Continue" => "繼續", +"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b>沒有安裝 PHP LDAP 模組,後端系統將無法運作,請要求您的系統管理員安裝模組。", "Connection Settings" => "連線設定", "Configuration Active" => "設定使用中", "When unchecked, this configuration will be skipped." => "沒有被勾選時,此設定會被略過。", -"Port" => "連接埠", "Backup (Replica) Host" => "備用主機", "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "可以選擇性設定備用主機,必須是 LDAP/AD 中央伺服器的複本。", "Backup (Replica) Port" => "備用(複本)連接埠", "Disable Main Server" => "停用主伺服器", -"Use TLS" => "使用 TLS", -"Do not use it additionally for LDAPS connections, it will fail." => "不要同時與 LDAPS 使用,會有問題。", "Case insensitve LDAP server (Windows)" => "不區分大小寫的 LDAP 伺服器 (Windows)", "Turn off SSL certificate validation." => "關閉 SSL 憑證檢查", "Cache Time-To-Live" => "快取的存活時間", @@ -63,8 +63,6 @@ $TRANSLATIONS = array( "Email Field" => "電郵欄位", "User Home Folder Naming Rule" => "使用者家目錄的命名規則", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "使用者名稱請留白(預設)。若不留白請指定一個LDAP/AD屬性。", -"Internal Username" => "內部使用者名稱", -"Test Configuration" => "測試此設定", -"Help" => "說明" +"Internal Username" => "內部使用者名稱" ); $PLURAL_FORMS = "nplurals=1; plural=0;"; diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index fdf9c24612d..72f9c740921 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -28,6 +28,8 @@ class Access extends LDAPUtility { //never ever check this var directly, always use getPagedSearchResultState protected $pagedSearchedSuccessful; + protected $cookies = array(); + public function __construct(Connection $connection, ILDAPWrapper $ldap) { parent::__construct($ldap); $this->connection = $connection; @@ -60,6 +62,8 @@ class Access extends LDAPUtility { \OCP\Util::writeLog('user_ldap', 'LDAP resource not available.', \OCP\Util::DEBUG); return false; } + //all or nothing! otherwise we get in trouble with. + $this->initPagedSearch($filter, array($dn), $attr, 99999, 0); $dn = $this->DNasBaseParameter($dn); $rr = @$this->ldap->read($cr, $dn, $filter, array($attr)); if(!$this->ldap->isResource($rr)) { @@ -195,7 +199,9 @@ class Access extends LDAPUtility { */ public function username2dn($name) { $dn = $this->ocname2dn($name, true); - if($dn) { + //Check whether the DN belongs to the Base, to avoid issues on multi- + //server setups + if($dn && $this->isDNPartOfBase($dn, $this->connection->ldapBaseUsers)) { return $dn; } @@ -288,7 +294,7 @@ class Access extends LDAPUtility { } //second try: get the UUID and check if it is known. Then, update the DN and return the name. - $uuid = $this->getUUID($dn); + $uuid = $this->getUUID($dn, $isUser); if($uuid) { $query = \OCP\DB::prepare(' SELECT `owncloud_name` @@ -352,7 +358,7 @@ class Access extends LDAPUtility { } //if everything else did not help.. - \OCP\Util::writeLog('user_ldap', 'Could not create unique ownCloud name for '.$dn.'.', \OCP\Util::INFO); + \OCP\Util::writeLog('user_ldap', 'Could not create unique name for '.$dn.'.', \OCP\Util::INFO); return false; } @@ -580,7 +586,9 @@ class Access extends LDAPUtility { '); //feed the DB - $insRows = $insert->execute(array($dn, $ocname, $this->getUUID($dn), $dn, $ocname)); + $insRows = $insert->execute(array($dn, $ocname, + $this->getUUID($dn, $isUser), $dn, + $ocname)); if(\OCP\DB::isError($insRows)) { return false; @@ -626,6 +634,10 @@ class Access extends LDAPUtility { return $this->search($filter, $this->connection->ldapBaseUsers, $attr, $limit, $offset); } + public function countUsers($filter, $attr = array('dn'), $limit = null, $offset = null) { + return $this->count($filter, $this->connection->ldapBaseGroups, $attr, $limit, $offset); + } + /** * @brief executes an LDAP search, optimized for Groups * @param $filter the LDAP filter for the search @@ -639,61 +651,68 @@ class Access extends LDAPUtility { } /** - * @brief executes an LDAP search + * @brief prepares and executes an LDAP search operation * @param $filter the LDAP filter for the search * @param $base an array containing the LDAP subtree(s) that shall be searched * @param $attr optional, array, one or more attributes that shall be * retrieved. Results will according to the order in the array. - * @returns array with the search result - * - * Executes an LDAP search + * @param $limit optional, maximum results to be counted + * @param $offset optional, a starting point + * @returns array with the search result as first value and pagedSearchOK as + * second | false if not successful */ - private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) { + private function executeSearch($filter, $base, &$attr = null, $limit = null, $offset = null) { if(!is_null($attr) && !is_array($attr)) { $attr = array(mb_strtolower($attr, 'UTF-8')); } // See if we have a resource, in case not cancel with message - $link_resource = $this->connection->getConnectionResource(); - if(!$this->ldap->isResource($link_resource)) { + $cr = $this->connection->getConnectionResource(); + if(!$this->ldap->isResource($cr)) { // Seems like we didn't find any resource. // Return an empty array just like before. \OCP\Util::writeLog('user_ldap', 'Could not search, because resource is missing.', \OCP\Util::DEBUG); - return array(); + return false; } //check wether paged search should be attempted $pagedSearchOK = $this->initPagedSearch($filter, $base, $attr, $limit, $offset); - $linkResources = array_pad(array(), count($base), $link_resource); + $linkResources = array_pad(array(), count($base), $cr); $sr = $this->ldap->search($linkResources, $base, $filter, $attr); - $error = $this->ldap->errno($link_resource); + $error = $this->ldap->errno($cr); if(!is_array($sr) || $error !== 0) { \OCP\Util::writeLog('user_ldap', - 'Error when searching: '.$this->ldap->error($link_resource). - ' code '.$this->ldap->errno($link_resource), + 'Error when searching: '.$this->ldap->error($cr). + ' code '.$this->ldap->errno($cr), \OCP\Util::ERROR); \OCP\Util::writeLog('user_ldap', 'Attempt for Paging? '.print_r($pagedSearchOK, true), \OCP\Util::ERROR); - return array(); + return false; } - // Do the server-side sorting - foreach(array_reverse($attr) as $sortAttr){ - foreach($sr as $searchResource) { - $this->ldap->sort($link_resource, $searchResource, $sortAttr); - } - } + return array($sr, $pagedSearchOK); + } - $findings = array(); - foreach($sr as $key => $res) { - $findings = array_merge($findings, $this->ldap->getEntries($link_resource, $res )); - } + /** + * @brief processes an LDAP paged search operation + * @param $sr the array containing the LDAP search resources + * @param $filter the LDAP filter for the search + * @param $base an array containing the LDAP subtree(s) that shall be searched + * @param $iFoundItems number of results in the search operation + * @param $limit maximum results to be counted + * @param $offset a starting point + * @param $pagedSearchOK whether a paged search has been executed + * @param $skipHandling required for paged search when cookies to + * prior results need to be gained + * @returns array with the search result as first value and pagedSearchOK as + * second | false if not successful + */ + private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $limit, $offset, $pagedSearchOK, $skipHandling) { if($pagedSearchOK) { - \OCP\Util::writeLog('user_ldap', 'Paged search successful', \OCP\Util::INFO); + $cr = $this->connection->getConnectionResource(); foreach($sr as $key => $res) { $cookie = null; - if($this->ldap->controlPagedResultResponse($link_resource, $res, $cookie)) { - \OCP\Util::writeLog('user_ldap', 'Set paged search cookie', \OCP\Util::INFO); + if($this->ldap->controlPagedResultResponse($cr, $res, $cookie)) { $this->setPagedResultCookie($base[$key], $filter, $limit, $offset, $cookie); } } @@ -705,7 +724,7 @@ class Access extends LDAPUtility { // if count is bigger, then the server does not support // paged search. Instead, he did a normal search. We set a // flag here, so the callee knows how to deal with it. - if($findings['count'] <= $limit) { + if($iFoundItems <= $limit) { $this->pagedSearchedSuccessful = true; } } else { @@ -713,6 +732,86 @@ class Access extends LDAPUtility { \OCP\Util::writeLog('user_ldap', 'Paged search failed :(', \OCP\Util::INFO); } } + } + + /** + * @brief executes an LDAP search, but counts the results only + * @param $filter the LDAP filter for the search + * @param $base an array containing the LDAP subtree(s) that shall be searched + * @param $attr optional, array, one or more attributes that shall be + * retrieved. Results will according to the order in the array. + * @param $limit optional, maximum results to be counted + * @param $offset optional, a starting point + * @param $skipHandling indicates whether the pages search operation is + * completed + * @returns int | false if the search could not be initialized + * + */ + private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) { + \OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG); + $search = $this->executeSearch($filter, $base, $attr, $limit, $offset); + if($search === false) { + return false; + } + list($sr, $pagedSearchOK) = $search; + $cr = $this->connection->getConnectionResource(); + $counter = 0; + foreach($sr as $key => $res) { + $count = $this->ldap->countEntries($cr, $res); + if($count !== false) { + $counter += $count; + } + } + + $this->processPagedSearchStatus($sr, $filter, $base, $counter, $limit, + $offset, $pagedSearchOK, $skipHandling); + + return $counter; + } + + /** + * @brief executes an LDAP search + * @param $filter the LDAP filter for the search + * @param $base an array containing the LDAP subtree(s) that shall be searched + * @param $attr optional, array, one or more attributes that shall be + * retrieved. Results will according to the order in the array. + * @returns array with the search result + * + * Executes an LDAP search + */ + private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) { + $search = $this->executeSearch($filter, $base, $attr, $limit, $offset); + if($search === false) { + return array(); + } + list($sr, $pagedSearchOK) = $search; + $cr = $this->connection->getConnectionResource(); + + if($skipHandling) { + //i.e. result do not need to be fetched, we just need the cookie + //thus pass 1 or any other value as $iFoundItems because it is not + //used + $this->processPagedSearchStatus($sr, $filter, $base, 1, $limit, + $offset, $pagedSearchOK, + $skipHandling); + return; + } + + // Do the server-side sorting + foreach(array_reverse($attr) as $sortAttr){ + foreach($sr as $searchResource) { + $this->ldap->sort($cr, $searchResource, $sortAttr); + } + } + + $findings = array(); + foreach($sr as $key => $res) { + $findings = array_merge($findings, $this->ldap->getEntries($cr , $res )); + } + + $this->processPagedSearchStatus($sr, $filter, $base, $findings['count'], + $limit, $offset, $pagedSearchOK, + $skipHandling); // if we're here, probably no connection resource is returned. // to make ownCloud behave nicely, we simply give back an empty array. @@ -829,7 +928,7 @@ class Access extends LDAPUtility { private function combineFilter($filters, $operator) { $combinedFilter = '('.$operator; foreach($filters as $filter) { - if($filter[0] !== '(') { + if(!empty($filter) && $filter[0] !== '(') { $filter = '('.$filter.')'; } $combinedFilter.=$filter; @@ -896,7 +995,9 @@ class Access extends LDAPUtility { if(!$testConnection->setConfiguration($credentials)) { return false; } - return $testConnection->bind(); + $result=$testConnection->bind(); + $this->connection->bind(); + return $result; } /** @@ -905,55 +1006,67 @@ class Access extends LDAPUtility { * @param $force the detection should be run, even if it is not set to auto * @returns true on success, false otherwise */ - private function detectUuidAttribute($dn, $force = false) { - if(($this->connection->ldapUuidAttribute !== 'auto') && !$force) { + private function detectUuidAttribute($dn, $isUser = true, $force = false) { + if($isUser) { + $uuidAttr = 'ldapUuidUserAttribute'; + $uuidOverride = $this->connection->ldapExpertUUIDUserAttr; + } else { + $uuidAttr = 'ldapUuidGroupAttribute'; + $uuidOverride = $this->connection->ldapExpertUUIDGroupAttr; + } + + if(($this->connection->$uuidAttr !== 'auto') && !$force) { return true; } - $fixedAttribute = $this->connection->ldapExpertUUIDAttr; - if(!empty($fixedAttribute)) { - $this->connection->ldapUuidAttribute = $fixedAttribute; + if(!empty($uuidOverride) && !$force) { + $this->connection->$uuidAttr = $uuidOverride; return true; } - //for now, supported (known) attributes are entryUUID, nsuniqueid, objectGUID + //for now, supported attributes are entryUUID, nsuniqueid, objectGUID $testAttributes = array('entryuuid', 'nsuniqueid', 'objectguid', 'guid'); foreach($testAttributes as $attribute) { - \OCP\Util::writeLog('user_ldap', 'Testing '.$attribute.' as UUID attr', \OCP\Util::DEBUG); - $value = $this->readAttribute($dn, $attribute); if(is_array($value) && isset($value[0]) && !empty($value[0])) { - \OCP\Util::writeLog('user_ldap', 'Setting '.$attribute.' as UUID attr', \OCP\Util::DEBUG); - $this->connection->ldapUuidAttribute = $attribute; + \OCP\Util::writeLog('user_ldap', + 'Setting '.$attribute.' as '.$uuidAttr, + \OCP\Util::DEBUG); + $this->connection->$uuidAttr = $attribute; return true; } - \OCP\Util::writeLog('user_ldap', - 'The looked for uuid attr is not '.$attribute.', result was '.print_r($value, true), - \OCP\Util::DEBUG); } + \OCP\Util::writeLog('user_ldap', + 'Could not autodetect the UUID attribute', + \OCP\Util::ERROR); return false; } - public function getUUID($dn) { - if($this->detectUuidAttribute($dn)) { - \OCP\Util::writeLog('user_ldap', - 'UUID Checking \ UUID for '.$dn.' using '. $this->connection->ldapUuidAttribute, - \OCP\Util::DEBUG); - $uuid = $this->readAttribute($dn, $this->connection->ldapUuidAttribute); - if(!is_array($uuid) && $this->connection->ldapOverrideUuidAttribute) { - $this->detectUuidAttribute($dn, true); - $uuid = $this->readAttribute($dn, $this->connection->ldapUuidAttribute); + public function getUUID($dn, $isUser = true) { + if($isUser) { + $uuidAttr = 'ldapUuidUserAttribute'; + $uuidOverride = $this->connection->ldapExpertUUIDUserAttr; + } else { + $uuidAttr = 'ldapUuidGroupAttribute'; + $uuidOverride = $this->connection->ldapExpertUUIDGroupAttr; + } + + $uuid = false; + if($this->detectUuidAttribute($dn, $isUser)) { + $uuid = $this->readAttribute($dn, $this->connection->$uuidAttr); + if( !is_array($uuid) + && !empty($uuidOverride) + && $this->detectUuidAttribute($dn, $isUser, true)) { + $uuid = $this->readAttribute($dn, + $this->connection->$uuidAttr); } if(is_array($uuid) && isset($uuid[0]) && !empty($uuid[0])) { $uuid = $uuid[0]; - } else { - $uuid = false; } - } else { - $uuid = false; } + return $uuid; } @@ -1007,7 +1120,7 @@ class Access extends LDAPUtility { $bases = $this->sanitizeDN($bases); foreach($bases as $base) { $belongsToBase = true; - if(mb_strripos($dn, $base, 0, 'UTF-8') !== (mb_strlen($dn, 'UTF-8')-mb_strlen($base))) { + if(mb_strripos($dn, $base, 0, 'UTF-8') !== (mb_strlen($dn, 'UTF-8')-mb_strlen($base, 'UTF-8'))) { $belongsToBase = false; } if($belongsToBase) { @@ -1032,9 +1145,12 @@ class Access extends LDAPUtility { $offset -= $limit; //we work with cache here $cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . $limit . '-' . $offset; - $cookie = $this->connection->getFromCache($cachekey); - if(is_null($cookie)) { - $cookie = ''; + $cookie = ''; + if(isset($this->cookies[$cachekey])) { + $cookie = $this->cookies[$cachekey]; + if(is_null($cookie)) { + $cookie = ''; + } } return $cookie; } @@ -1051,7 +1167,7 @@ class Access extends LDAPUtility { private function setPagedResultCookie($base, $filter, $limit, $offset, $cookie) { if(!empty($cookie)) { $cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' .$limit . '-' . $offset; - $cookie = $this->connection->writeToCache($cachekey, $cookie); + $this->cookies[$cachekey] = $cookie; } } diff --git a/apps/user_ldap/lib/configuration.php b/apps/user_ldap/lib/configuration.php new file mode 100644 index 00000000000..93f044e3152 --- /dev/null +++ b/apps/user_ldap/lib/configuration.php @@ -0,0 +1,397 @@ +<?php + +/** + * ownCloud – LDAP Connection + * + * @author Arthur Schiwon + * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\user_ldap\lib; + +class Configuration { + + protected $configPrefix = null; + protected $configRead = false; + + //settings + protected $config = array( + 'ldapHost' => null, + 'ldapPort' => null, + 'ldapBackupHost' => null, + 'ldapBackupPort' => null, + 'ldapBase' => null, + 'ldapBaseUsers' => null, + 'ldapBaseGroups' => null, + 'ldapAgentName' => null, + 'ldapAgentPassword' => null, + 'ldapTLS' => null, + 'ldapNoCase' => null, + 'turnOffCertCheck' => null, + 'ldapIgnoreNamingRules' => null, + 'ldapUserDisplayName' => null, + 'ldapUserFilterObjectclass' => null, + 'ldapUserFilterGroups' => null, + 'ldapUserFilter' => null, + 'ldapUserFilterMode' => null, + 'ldapGroupFilter' => null, + 'ldapGroupFilterMode' => null, + 'ldapGroupFilterObjectclass' => null, + 'ldapGroupFilterGroups' => null, + 'ldapGroupDisplayName' => null, + 'ldapGroupMemberAssocAttr' => null, + 'ldapLoginFilter' => null, + 'ldapLoginFilterMode' => null, + 'ldapLoginFilterEmail' => null, + 'ldapLoginFilterUsername' => null, + 'ldapLoginFilterAttributes' => null, + 'ldapQuotaAttribute' => null, + 'ldapQuotaDefault' => null, + 'ldapEmailAttribute' => null, + 'ldapCacheTTL' => null, + 'ldapUuidUserAttribute' => 'auto', + 'ldapUuidGroupAttribute' => 'auto', + 'ldapOverrideMainServer' => false, + 'ldapConfigurationActive' => false, + 'ldapAttributesForUserSearch' => null, + 'ldapAttributesForGroupSearch' => null, + 'homeFolderNamingRule' => null, + 'hasPagedResultSupport' => false, + 'hasMemberOfFilterSupport' => false, + 'ldapExpertUsernameAttr' => null, + 'ldapExpertUUIDUserAttr' => null, + 'ldapExpertUUIDGroupAttr' => null, + 'lastJpegPhotoLookup' => null, + ); + + public function __construct($configPrefix, $autoread = true) { + $this->configPrefix = $configPrefix; + if($autoread) { + $this->readConfiguration(); + } + } + + public function __get($name) { + if(isset($this->config[$name])) { + return $this->config[$name]; + } + } + + public function __set($name, $value) { + $this->setConfiguration(array($name => $value)); + } + + public function getConfiguration() { + return $this->config; + } + + /** + * @brief set LDAP configuration with values delivered by an array, not read + * from configuration. It does not save the configuration! To do so, you + * must call saveConfiguration afterwards. + * @param $config array that holds the config parameters in an associated + * array + * @param &$applied optional; array where the set fields will be given to + * @return null + */ + public function setConfiguration($config, &$applied = null) { + if(!is_array($config)) { + return false; + } + + $cta = $this->getConfigTranslationArray(); + foreach($config as $inputkey => $val) { + if(strpos($inputkey, '_') !== false && isset($cta[$inputkey])) { + $key = $cta[$inputkey]; + } elseif(isset($this->config[$inputkey])) { + $key = $inputkey; + } else { + continue; + } + + $setMethod = 'setValue'; + switch($key) { + case 'homeFolderNamingRule': + if(!empty($val) && strpos($val, 'attr:') === false) { + $val = 'attr:'.$val; + } + break; + case 'ldapBase': + case 'ldapBaseUsers': + case 'ldapBaseGroups': + case 'ldapAttributesForUserSearch': + case 'ldapAttributesForGroupSearch': + case 'ldapUserFilterObjectclass': + case 'ldapUserFilterGroups': + case 'ldapGroupFilterObjectclass': + case 'ldapGroupFilterGroups': + case 'ldapLoginFilterAttributes': + $setMethod = 'setMultiLine'; + break; + } + $this->$setMethod($key, $val); + if(is_array($applied)) { + $applied[] = $inputkey; + } + } + + } + + public function readConfiguration() { + if(!$this->configRead && !is_null($this->configPrefix)) { + $cta = array_flip($this->getConfigTranslationArray()); + foreach($this->config as $key => $val) { + if(!isset($cta[$key])) { + //some are determined + continue; + } + $dbkey = $cta[$key]; + switch($key) { + case 'ldapBase': + case 'ldapBaseUsers': + case 'ldapBaseGroups': + case 'ldapAttributesForUserSearch': + case 'ldapAttributesForGroupSearch': + case 'ldapUserFilterObjectclass': + case 'ldapUserFilterGroups': + case 'ldapGroupFilterObjectclass': + case 'ldapGroupFilterGroups': + case 'ldapLoginFilterAttributes': + $readMethod = 'getMultiLine'; + break; + case 'ldapIgnoreNamingRules': + $readMethod = 'getSystemValue'; + $dbkey = $key; + break; + case 'ldapAgentPassword': + $readMethod = 'getPwd'; + break; + case 'ldapUserDisplayName': + case 'ldapGroupDisplayName': + $readMethod = 'getLcValue'; + break; + default: + $readMethod = 'getValue'; + break; + } + $this->config[$key] = $this->$readMethod($dbkey); + } + $this->configRead = true; + } + } + + /** + * @brief saves the current Configuration in the database + */ + public function saveConfiguration() { + $cta = array_flip($this->getConfigTranslationArray()); + foreach($this->config as $key => $value) { + switch ($key) { + case 'ldapAgentPassword': + $value = base64_encode($value); + break; + case 'ldapBase': + case 'ldapBaseUsers': + case 'ldapBaseGroups': + case 'ldapAttributesForUserSearch': + case 'ldapAttributesForGroupSearch': + case 'ldapUserFilterObjectclass': + case 'ldapUserFilterGroups': + case 'ldapGroupFilterObjectclass': + case 'ldapGroupFilterGroups': + case 'ldapLoginFilterAttributes': + if(is_array($value)) { + $value = implode("\n", $value); + } + break; + //following options are not stored but detected, skip them + case 'ldapIgnoreNamingRules': + case 'hasPagedResultSupport': + case 'ldapUuidUserAttribute': + case 'ldapUuidGroupAttribute': + continue 2; + } + if(is_null($value)) { + $value = ''; + } + $this->saveValue($cta[$key], $value); + } + } + + protected function getMultiLine($varname) { + $value = $this->getValue($varname); + if(empty($value)) { + $value = ''; + } else { + $value = preg_split('/\r\n|\r|\n/', $value); + } + + return $value; + } + + protected function setMultiLine($varname, $value) { + if(empty($value)) { + $value = ''; + } else if (!is_array($value)) { + $value = preg_split('/\r\n|\r|\n/', $value); + if($value === false) { + $value = ''; + } + } + + $this->setValue($varname, $value); + } + + protected function getPwd($varname) { + return base64_decode($this->getValue($varname)); + } + + protected function getLcValue($varname) { + return mb_strtolower($this->getValue($varname), 'UTF-8'); + } + + protected function getSystemValue($varname) { + //FIXME: if another system value is added, softcode the default value + return \OCP\Config::getSystemValue($varname, false); + } + + protected function getValue($varname) { + static $defaults; + if(is_null($defaults)) { + $defaults = $this->getDefaults(); + } + return \OCP\Config::getAppValue('user_ldap', + $this->configPrefix.$varname, + $defaults[$varname]); + } + + protected function setValue($varname, $value) { + $this->config[$varname] = $value; + } + + protected function saveValue($varname, $value) { + return \OCP\Config::setAppValue('user_ldap', + $this->configPrefix.$varname, + $value); + } + + /** + * @returns an associative array with the default values. Keys are correspond + * to config-value entries in the database table + */ + public function getDefaults() { + return array( + 'ldap_host' => '', + 'ldap_port' => '', + 'ldap_backup_host' => '', + 'ldap_backup_port' => '', + 'ldap_override_main_server' => '', + 'ldap_dn' => '', + 'ldap_agent_password' => '', + 'ldap_base' => '', + 'ldap_base_users' => '', + 'ldap_base_groups' => '', + 'ldap_userlist_filter' => '', + 'ldap_user_filter_mode' => 0, + 'ldap_userfilter_objectclass' => '', + 'ldap_userfilter_groups' => '', + 'ldap_login_filter' => '', + 'ldap_login_filter_mode' => 0, + 'ldap_loginfilter_email' => 0, + 'ldap_loginfilter_username' => 1, + 'ldap_loginfilter_attributes' => '', + 'ldap_group_filter' => '', + 'ldap_group_filter_mode' => 0, + 'ldap_groupfilter_objectclass' => '', + 'ldap_groupfilter_groups' => '', + 'ldap_display_name' => 'displayName', + 'ldap_group_display_name' => 'cn', + 'ldap_tls' => 1, + 'ldap_nocase' => 0, + 'ldap_quota_def' => '', + 'ldap_quota_attr' => '', + 'ldap_email_attr' => '', + 'ldap_group_member_assoc_attribute' => 'uniqueMember', + 'ldap_cache_ttl' => 600, + 'ldap_uuid_user_attribute' => 'auto', + 'ldap_uuid_group_attribute' => 'auto', + 'home_folder_naming_rule' => '', + 'ldap_turn_off_cert_check' => 0, + 'ldap_configuration_active' => 0, + 'ldap_attributes_for_user_search' => '', + 'ldap_attributes_for_group_search' => '', + 'ldap_expert_username_attr' => '', + 'ldap_expert_uuid_user_attr' => '', + 'ldap_expert_uuid_group_attr' => '', + 'has_memberof_filter_support' => 0, + 'last_jpegPhoto_lookup' => 0, + ); + } + + /** + * @return returns an array that maps internal variable names to database fields + */ + public function getConfigTranslationArray() { + //TODO: merge them into one representation + static $array = array( + 'ldap_host' => 'ldapHost', + 'ldap_port' => 'ldapPort', + 'ldap_backup_host' => 'ldapBackupHost', + 'ldap_backup_port' => 'ldapBackupPort', + 'ldap_override_main_server' => 'ldapOverrideMainServer', + 'ldap_dn' => 'ldapAgentName', + 'ldap_agent_password' => 'ldapAgentPassword', + 'ldap_base' => 'ldapBase', + 'ldap_base_users' => 'ldapBaseUsers', + 'ldap_base_groups' => 'ldapBaseGroups', + 'ldap_userfilter_objectclass' => 'ldapUserFilterObjectclass', + 'ldap_userfilter_groups' => 'ldapUserFilterGroups', + 'ldap_userlist_filter' => 'ldapUserFilter', + 'ldap_user_filter_mode' => 'ldapUserFilterMode', + 'ldap_login_filter' => 'ldapLoginFilter', + 'ldap_login_filter_mode' => 'ldapLoginFilterMode', + 'ldap_loginfilter_email' => 'ldapLoginFilterEmail', + 'ldap_loginfilter_username' => 'ldapLoginFilterUsername', + 'ldap_loginfilter_attributes' => 'ldapLoginFilterAttributes', + 'ldap_group_filter' => 'ldapGroupFilter', + 'ldap_group_filter_mode' => 'ldapGroupFilterMode', + 'ldap_groupfilter_objectclass' => 'ldapGroupFilterObjectclass', + 'ldap_groupfilter_groups' => 'ldapGroupFilterGroups', + 'ldap_display_name' => 'ldapUserDisplayName', + 'ldap_group_display_name' => 'ldapGroupDisplayName', + 'ldap_tls' => 'ldapTLS', + 'ldap_nocase' => 'ldapNoCase', + 'ldap_quota_def' => 'ldapQuotaDefault', + 'ldap_quota_attr' => 'ldapQuotaAttribute', + 'ldap_email_attr' => 'ldapEmailAttribute', + 'ldap_group_member_assoc_attribute' => 'ldapGroupMemberAssocAttr', + 'ldap_cache_ttl' => 'ldapCacheTTL', + 'home_folder_naming_rule' => 'homeFolderNamingRule', + 'ldap_turn_off_cert_check' => 'turnOffCertCheck', + 'ldap_configuration_active' => 'ldapConfigurationActive', + 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', + 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch', + 'ldap_expert_username_attr' => 'ldapExpertUsernameAttr', + 'ldap_expert_uuid_user_attr' => 'ldapExpertUUIDUserAttr', + 'ldap_expert_uuid_group_attr' => 'ldapExpertUUIDGroupAttr', + 'has_memberof_filter_support' => 'hasMemberOfFilterSupport', + 'last_jpegPhoto_lookup' => 'lastJpegPhotoLookup', + ); + return $array; + } + +}
\ No newline at end of file diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index a53022c27b3..c4e4efd0483 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -1,7 +1,7 @@ <?php /** - * ownCloud – LDAP Access + * ownCloud – LDAP Connection * * @author Arthur Schiwon * @copyright 2012, 2013 Arthur Schiwon blizzz@owncloud.com @@ -31,46 +31,15 @@ class Connection extends LDAPUtility { //whether connection should be kept on __destruct private $dontDestruct = false; + private $hasPagedResultSupport = true; //cache handler protected $cache; - //settings - protected $config = array( - 'ldapHost' => null, - 'ldapPort' => null, - 'ldapBackupHost' => null, - 'ldapBackupPort' => null, - 'ldapBase' => null, - 'ldapBaseUsers' => null, - 'ldapBaseGroups' => null, - 'ldapAgentName' => null, - 'ldapAgentPassword' => null, - 'ldapTLS' => null, - 'ldapNoCase' => null, - 'turnOffCertCheck' => null, - 'ldapIgnoreNamingRules' => null, - 'ldapUserDisplayName' => null, - 'ldapUserFilter' => null, - 'ldapGroupFilter' => null, - 'ldapGroupDisplayName' => null, - 'ldapGroupMemberAssocAttr' => null, - 'ldapLoginFilter' => null, - 'ldapQuotaAttribute' => null, - 'ldapQuotaDefault' => null, - 'ldapEmailAttribute' => null, - 'ldapCacheTTL' => null, - 'ldapUuidAttribute' => 'auto', - 'ldapOverrideUuidAttribute' => null, - 'ldapOverrideMainServer' => false, - 'ldapConfigurationActive' => false, - 'ldapAttributesForUserSearch' => null, - 'ldapAttributesForGroupSearch' => null, - 'homeFolderNamingRule' => null, - 'hasPagedResultSupport' => false, - 'ldapExpertUsernameAttr' => null, - 'ldapExpertUUIDAttr' => null, - ); + //settings handler + protected $configuration; + + protected $doNotValidate = false; /** * @brief Constructor @@ -81,14 +50,18 @@ class Connection extends LDAPUtility { parent::__construct($ldap); $this->configPrefix = $configPrefix; $this->configID = $configID; + $this->configuration = new Configuration($configPrefix, + !is_null($configID)); $memcache = new \OC\Memcache\Factory(); if($memcache->isAvailable()) { $this->cache = $memcache->create(); } else { $this->cache = \OC_Cache::getGlobalCache(); } - $this->config['hasPagedResultSupport'] = + $this->hasPagedResultSupport = $this->ldap->hasPagedResultSupport(); + $this->doNotValidate = !in_array($this->configPrefix, + Helper::getServerConfigurationPrefixes()); } public function __destruct() { @@ -112,23 +85,22 @@ class Connection extends LDAPUtility { $this->readConfiguration(); } - if(isset($this->config[$name])) { - return $this->config[$name]; + if($name === 'hasPagedResultSupport') { + return $this->hasPagedResultSupport; } + + return $this->configuration->$name; } public function __set($name, $value) { - $changed = false; - //only few options are writable - if($name === 'ldapUuidAttribute') { - \OCP\Util::writeLog('user_ldap', 'Set config ldapUuidAttribute to '.$value, \OCP\Util::DEBUG); - $this->config[$name] = $value; + $this->doNotValidate = false; + $before = $this->configuration->$name; + $this->configuration->$name = $value; + $after = $this->configuration->$name; + if($before !== $after) { if(!empty($this->configID)) { - \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', $value); + $this->configuration->saveConfiguration(); } - $changed = true; - } - if($changed) { $this->validateConfiguration(); } } @@ -172,7 +144,7 @@ class Connection extends LDAPUtility { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->config['ldapCacheTTL']) { + if(!$this->configuration->ldapCacheTTL) { return null; } if(!$this->isCached($key)) { @@ -188,7 +160,7 @@ class Connection extends LDAPUtility { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->config['ldapCacheTTL']) { + if(!$this->configuration->ldapCacheTTL) { return false; } $key = $this->getCacheKey($key); @@ -199,230 +171,59 @@ class Connection extends LDAPUtility { if(!$this->configured) { $this->readConfiguration(); } - if(!$this->config['ldapCacheTTL'] - || !$this->config['ldapConfigurationActive']) { + if(!$this->configuration->ldapCacheTTL + || !$this->configuration->ldapConfigurationActive) { return null; } $key = $this->getCacheKey($key); $value = base64_encode(serialize($value)); - $this->cache->set($key, $value, $this->config['ldapCacheTTL']); + $this->cache->set($key, $value, $this->configuration->ldapCacheTTL); } public function clearCache() { $this->cache->clear($this->getCacheKey(null)); } - private function getValue($varname) { - static $defaults; - if(is_null($defaults)) { - $defaults = $this->getDefaults(); - } - return \OCP\Config::getAppValue($this->configID, - $this->configPrefix.$varname, - $defaults[$varname]); - } - - private function setValue($varname, $value) { - \OCP\Config::setAppValue($this->configID, - $this->configPrefix.$varname, - $value); - } - /** - * Special handling for reading Base Configuration - * - * @param $base the internal name of the config key - * @param $value the value stored for the base - */ - private function readBase($base, $value) { - if(empty($value)) { - $value = ''; - } else { - $value = preg_split('/\r\n|\r|\n/', $value); - } - - $this->config[$base] = $value; - } - - /** - * Caches the general LDAP configuration. + * @brief Caches the general LDAP configuration. + * @param $force optional. true, if the re-read should be forced. defaults + * to false. + * @return null */ private function readConfiguration($force = false) { if((!$this->configured || $force) && !is_null($this->configID)) { - $v = 'getValue'; - $this->config['ldapHost'] = $this->$v('ldap_host'); - $this->config['ldapBackupHost'] = $this->$v('ldap_backup_host'); - $this->config['ldapPort'] = $this->$v('ldap_port'); - $this->config['ldapBackupPort'] = $this->$v('ldap_backup_port'); - $this->config['ldapOverrideMainServer'] - = $this->$v('ldap_override_main_server'); - $this->config['ldapAgentName'] = $this->$v('ldap_dn'); - $this->config['ldapAgentPassword'] - = base64_decode($this->$v('ldap_agent_password')); - $this->readBase('ldapBase', $this->$v('ldap_base')); - $this->readBase('ldapBaseUsers', $this->$v('ldap_base_users')); - $this->readBase('ldapBaseGroups', $this->$v('ldap_base_groups')); - $this->config['ldapTLS'] = $this->$v('ldap_tls'); - $this->config['ldapNoCase'] = $this->$v('ldap_nocase'); - $this->config['turnOffCertCheck'] - = $this->$v('ldap_turn_off_cert_check'); - $this->config['ldapUserDisplayName'] - = mb_strtolower($this->$v('ldap_display_name'), 'UTF-8'); - $this->config['ldapUserFilter'] - = $this->$v('ldap_userlist_filter'); - $this->config['ldapGroupFilter'] = $this->$v('ldap_group_filter'); - $this->config['ldapLoginFilter'] = $this->$v('ldap_login_filter'); - $this->config['ldapGroupDisplayName'] - = mb_strtolower($this->$v('ldap_group_display_name'), 'UTF-8'); - $this->config['ldapQuotaAttribute'] - = $this->$v('ldap_quota_attr'); - $this->config['ldapQuotaDefault'] - = $this->$v('ldap_quota_def'); - $this->config['ldapEmailAttribute'] - = $this->$v('ldap_email_attr'); - $this->config['ldapGroupMemberAssocAttr'] - = $this->$v('ldap_group_member_assoc_attribute'); - $this->config['ldapIgnoreNamingRules'] - = \OCP\Config::getSystemValue('ldapIgnoreNamingRules', false); - $this->config['ldapCacheTTL'] = $this->$v('ldap_cache_ttl'); - $this->config['ldapUuidAttribute'] - = $this->$v('ldap_uuid_attribute'); - $this->config['ldapOverrideUuidAttribute'] - = $this->$v('ldap_override_uuid_attribute'); - $this->config['homeFolderNamingRule'] - = $this->$v('home_folder_naming_rule'); - $this->config['ldapConfigurationActive'] - = $this->$v('ldap_configuration_active'); - $this->config['ldapAttributesForUserSearch'] - = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_user_search')); - $this->config['ldapAttributesForGroupSearch'] - = preg_split('/\r\n|\r|\n/', $this->$v('ldap_attributes_for_group_search')); - $this->config['ldapExpertUsernameAttr'] - = $this->$v('ldap_expert_username_attr'); - $this->config['ldapExpertUUIDAttr'] - = $this->$v('ldap_expert_uuid_attr'); - + $this->configuration->readConfiguration(); $this->configured = $this->validateConfiguration(); } } /** - * @return returns an array that maps internal variable names to database fields - */ - private function getConfigTranslationArray() { - static $array = array( - 'ldap_host'=>'ldapHost', - 'ldap_port'=>'ldapPort', - 'ldap_backup_host'=>'ldapBackupHost', - 'ldap_backup_port'=>'ldapBackupPort', - 'ldap_override_main_server' => 'ldapOverrideMainServer', - 'ldap_dn'=>'ldapAgentName', - 'ldap_agent_password'=>'ldapAgentPassword', - 'ldap_base'=>'ldapBase', - 'ldap_base_users'=>'ldapBaseUsers', - 'ldap_base_groups'=>'ldapBaseGroups', - 'ldap_userlist_filter'=>'ldapUserFilter', - 'ldap_login_filter'=>'ldapLoginFilter', - 'ldap_group_filter'=>'ldapGroupFilter', - 'ldap_display_name'=>'ldapUserDisplayName', - 'ldap_group_display_name'=>'ldapGroupDisplayName', - 'ldap_tls'=>'ldapTLS', - 'ldap_nocase'=>'ldapNoCase', - 'ldap_quota_def'=>'ldapQuotaDefault', - 'ldap_quota_attr'=>'ldapQuotaAttribute', - 'ldap_email_attr'=>'ldapEmailAttribute', - 'ldap_group_member_assoc_attribute'=>'ldapGroupMemberAssocAttr', - 'ldap_cache_ttl'=>'ldapCacheTTL', - 'home_folder_naming_rule' => 'homeFolderNamingRule', - 'ldap_turn_off_cert_check' => 'turnOffCertCheck', - 'ldap_configuration_active' => 'ldapConfigurationActive', - 'ldap_attributes_for_user_search' => 'ldapAttributesForUserSearch', - 'ldap_attributes_for_group_search' => 'ldapAttributesForGroupSearch', - 'ldap_expert_username_attr' => 'ldapExpertUsernameAttr', - 'ldap_expert_uuid_attr' => 'ldapExpertUUIDAttr', - ); - return $array; - } - - /** * @brief set LDAP configuration with values delivered by an array, not read from configuration * @param $config array that holds the config parameters in an associated array * @param &$setParameters optional; array where the set fields will be given to * @return true if config validates, false otherwise. Check with $setParameters for detailed success on single parameters */ public function setConfiguration($config, &$setParameters = null) { - if(!is_array($config)) { - return false; + if(is_null($setParameters)) { + $setParameters = array(); } - - $params = $this->getConfigTranslationArray(); - - foreach($config as $parameter => $value) { - if(($parameter === 'homeFolderNamingRule' - || (isset($params[$parameter]) - && $params[$parameter] === 'homeFolderNamingRule')) - && !empty($value)) { - $value = 'attr:'.$value; - } else if (strpos($parameter, 'ldapBase') !== false - || (isset($params[$parameter]) - && strpos($params[$parameter], 'ldapBase') !== false)) { - $this->readBase($params[$parameter], $value); - if(is_array($setParameters)) { - $setParameters[] = $parameter; - } - continue; - } - if(isset($this->config[$parameter])) { - $this->config[$parameter] = $value; - if(is_array($setParameters)) { - $setParameters[] = $parameter; - } - } else if(isset($params[$parameter])) { - $this->config[$params[$parameter]] = $value; - if(is_array($setParameters)) { - $setParameters[] = $params[$parameter]; - } - } + $this->doNotValidate = false; + $this->configuration->setConfiguration($config, $setParameters); + if(count($setParameters) > 0) { + $this->configured = $this->validateConfiguration(); } - $this->configured = $this->validateConfiguration(); return $this->configured; } /** - * @brief saves the current Configuration in the database + * @brief saves the current Configuration in the database and empties the + * cache + * @return null */ public function saveConfiguration() { - $trans = array_flip($this->getConfigTranslationArray()); - foreach($this->config as $key => $value) { - \OCP\Util::writeLog('user_ldap', 'LDAP: storing key '.$key. - ' value '.print_r($value, true), \OCP\Util::DEBUG); - switch ($key) { - case 'ldapAgentPassword': - $value = base64_encode($value); - break; - case 'ldapBase': - case 'ldapBaseUsers': - case 'ldapBaseGroups': - case 'ldapAttributesForUserSearch': - case 'ldapAttributesForGroupSearch': - if(is_array($value)) { - $value = implode("\n", $value); - } - break; - case 'ldapIgnoreNamingRules': - case 'ldapOverrideUuidAttribute': - case 'ldapUuidAttribute': - case 'hasPagedResultSupport': - continue 2; - } - if(is_null($value)) { - $value = ''; - } - - $this->setValue($trans[$key], $value); - } + $this->configuration->saveConfiguration(); $this->clearCache(); } @@ -432,178 +233,205 @@ class Connection extends LDAPUtility { */ public function getConfiguration() { $this->readConfiguration(); - $trans = $this->getConfigTranslationArray(); - $config = array(); - foreach($trans as $dbKey => $classKey) { - if($classKey === 'homeFolderNamingRule') { - if(strpos($this->config[$classKey], 'attr:') === 0) { - $config[$dbKey] = substr($this->config[$classKey], 5); - } else { - $config[$dbKey] = ''; - } - continue; - } else if((strpos($classKey, 'ldapBase') !== false - || strpos($classKey, 'ldapAttributes') !== false) - && is_array($this->config[$classKey])) { - $config[$dbKey] = implode("\n", $this->config[$classKey]); - continue; + $config = $this->configuration->getConfiguration(); + $cta = $this->configuration->getConfigTranslationArray(); + $result = array(); + foreach($cta as $dbkey => $configkey) { + switch($configkey) { + case 'homeFolderNamingRule': + if(strpos($config[$configkey], 'attr:') === 0) { + $result[$dbkey] = substr($config[$configkey], 5); + } else { + $result[$dbkey] = ''; + } + break; + case 'ldapBase': + case 'ldapBaseUsers': + case 'ldapBaseGroups': + case 'ldapAttributesForUserSearch': + case 'ldapAttributesForGroupSearch': + if(is_array($config[$configkey])) { + $result[$dbkey] = implode("\n", $config[$configkey]); + break; + } //else follows default + default: + $result[$dbkey] = $config[$configkey]; } - $config[$dbKey] = $this->config[$classKey]; } - - return $config; + return $result; } - /** - * @brief Validates the user specified configuration - * @returns true if configuration seems OK, false otherwise - */ - private function validateConfiguration() { - // first step: "soft" checks: settings that are not really - // necessary, but advisable. If left empty, give an info message - if(empty($this->config['ldapBaseUsers'])) { - \OCP\Util::writeLog('user_ldap', 'Base tree for Users is empty, using Base DN', \OCP\Util::INFO); - $this->config['ldapBaseUsers'] = $this->config['ldapBase']; - } - if(empty($this->config['ldapBaseGroups'])) { - \OCP\Util::writeLog('user_ldap', 'Base tree for Groups is empty, using Base DN', \OCP\Util::INFO); - $this->config['ldapBaseGroups'] = $this->config['ldapBase']; - } - if(empty($this->config['ldapGroupFilter']) && empty($this->config['ldapGroupMemberAssocAttr'])) { - \OCP\Util::writeLog('user_ldap', - 'No group filter is specified, LDAP group feature will not be used.', - \OCP\Util::INFO); - } - $uuidAttributes = array( - 'auto', 'entryuuid', 'nsuniqueid', 'objectguid', 'guid'); - if(!in_array($this->config['ldapUuidAttribute'], $uuidAttributes) - && (!is_null($this->configID))) { - \OCP\Config::setAppValue($this->configID, $this->configPrefix.'ldap_uuid_attribute', 'auto'); - \OCP\Util::writeLog('user_ldap', - 'Illegal value for the UUID Attribute, reset to autodetect.', - \OCP\Util::INFO); - } - if(empty($this->config['ldapBackupPort'])) { - //force default - $this->config['ldapBackupPort'] = $this->config['ldapPort']; - } - foreach(array('ldapAttributesForUserSearch', 'ldapAttributesForGroupSearch') as $key) { - if(is_array($this->config[$key]) - && count($this->config[$key]) === 1 - && empty($this->config[$key][0])) { - $this->config[$key] = array(); + private function doSoftValidation() { + //if User or Group Base are not set, take over Base DN setting + foreach(array('ldapBaseUsers', 'ldapBaseGroups') as $keyBase) { + $val = $this->configuration->$keyBase; + if(empty($val)) { + $obj = strpos('Users', $keyBase) !== false ? 'Users' : 'Groups'; + \OCP\Util::writeLog('user_ldap', + 'Base tree for '.$obj. + ' is empty, using Base DN', + \OCP\Util::INFO); + $this->configuration->$keyBase = $this->configuration->ldapBase; } } - if((strpos($this->config['ldapHost'], 'ldaps') === 0) - && $this->config['ldapTLS']) { - $this->config['ldapTLS'] = false; + + $groupFilter = $this->configuration->ldapGroupFilter; + if(empty($groupFilter)) { \OCP\Util::writeLog('user_ldap', - 'LDAPS (already using secure connection) and TLS do not work together. Switched off TLS.', - \OCP\Util::INFO); + 'No group filter is specified, LDAP group '. + 'feature will not be used.', + \OCP\Util::INFO); } + foreach(array('ldapExpertUUIDUserAttr' => 'ldapUuidUserAttribute', + 'ldapExpertUUIDGroupAttr' => 'ldapUuidGroupAttribute') + as $expertSetting => $effectiveSetting) { + $uuidOverride = $this->configuration->$expertSetting; + if(!empty($uuidOverride)) { + $this->configuration->$effectiveSetting = $uuidOverride; + } else { + $uuidAttributes = array('auto', 'entryuuid', 'nsuniqueid', + 'objectguid', 'guid'); + if(!in_array($this->configuration->$effectiveSetting, + $uuidAttributes) + && (!is_null($this->configID))) { + $this->configuration->$effectiveSetting = 'auto'; + $this->configuration->saveConfiguration(); + \OCP\Util::writeLog('user_ldap', + 'Illegal value for the '. + $effectiveSetting.', '.'reset to '. + 'autodetect.', \OCP\Util::INFO); + } + } + } - //second step: critical checks. If left empty or filled wrong, set as unconfigured and give a warning. - $configurationOK = true; - if(empty($this->config['ldapHost'])) { - \OCP\Util::writeLog('user_ldap', 'No LDAP host given, won`t connect.', \OCP\Util::WARN); - $configurationOK = false; + $backupPort = $this->configuration->ldapBackupPort; + if(empty($backupPort)) { + $this->configuration->backupPort = $this->configuration->ldapPort; } - if(empty($this->config['ldapPort'])) { - \OCP\Util::writeLog('user_ldap', 'No LDAP Port given, won`t connect.', \OCP\Util::WARN); - $configurationOK = false; + + //make sure empty search attributes are saved as simple, empty array + $sakeys = array('ldapAttributesForUserSearch', + 'ldapAttributesForGroupSearch'); + foreach($sakeys as $key) { + $val = $this->configuration->$key; + if(is_array($val) && count($val) === 1 && empty($val[0])) { + $this->configuration->$key = array(); + } } - if((empty($this->config['ldapAgentName']) && !empty($this->config['ldapAgentPassword'])) - || (!empty($this->config['ldapAgentName']) && empty($this->config['ldapAgentPassword']))) { + + if((stripos($this->configuration->ldapHost, 'ldaps://') === 0) + && $this->configuration->ldapTLS) { + $this->configuration->ldapTLS = false; \OCP\Util::writeLog('user_ldap', - 'Either no password given for the user agent or a password is given, but no LDAP agent; won`t connect.', - \OCP\Util::WARN); - $configurationOK = false; + 'LDAPS (already using secure connection) and '. + 'TLS do not work together. Switched off TLS.', + \OCP\Util::INFO); } - //TODO: check if ldapAgentName is in DN form - if(empty($this->config['ldapBase']) - && (empty($this->config['ldapBaseUsers']) - && empty($this->config['ldapBaseGroups']))) { - \OCP\Util::writeLog('user_ldap', 'No Base DN given, won`t connect.', \OCP\Util::WARN); - $configurationOK = false; + } + + private function doCriticalValidation() { + $configurationOK = true; + $errorStr = 'Configuration Error (prefix '. + strval($this->configPrefix).'): '; + + //options that shall not be empty + $options = array('ldapHost', 'ldapPort', 'ldapUserDisplayName', + 'ldapGroupDisplayName', 'ldapLoginFilter'); + foreach($options as $key) { + $val = $this->configuration->$key; + if(empty($val)) { + switch($key) { + case 'ldapHost': + $subj = 'LDAP Host'; + break; + case 'ldapPort': + $subj = 'LDAP Port'; + break; + case 'ldapUserDisplayName': + $subj = 'LDAP User Display Name'; + break; + case 'ldapGroupDisplayName': + $subj = 'LDAP Group Display Name'; + break; + case 'ldapLoginFilter': + $subj = 'LDAP Login Filter'; + break; + default: + $subj = $key; + break; + } + $configurationOK = false; + \OCP\Util::writeLog('user_ldap', + $errorStr.'No '.$subj.' given!', + \OCP\Util::WARN); + } } - if(empty($this->config['ldapUserDisplayName'])) { + + //combinations + $agent = $this->configuration->ldapAgentName; + $pwd = $this->configuration->ldapAgentPassword; + if((empty($agent) && !empty($pwd)) || (!empty($agent) && empty($pwd))) { \OCP\Util::writeLog('user_ldap', - 'No user display name attribute specified, won`t connect.', + $errorStr.'either no password is given for the'. + 'user agent or a password is given, but not an'. + 'LDAP agent.', \OCP\Util::WARN); $configurationOK = false; } - if(empty($this->config['ldapGroupDisplayName'])) { + + $base = $this->configuration->ldapBase; + $baseUsers = $this->configuration->ldapBaseUsers; + $baseGroups = $this->configuration->ldapBaseGroups; + + if(empty($base) && empty($baseUsers) && empty($baseGroups)) { \OCP\Util::writeLog('user_ldap', - 'No group display name attribute specified, won`t connect.', - \OCP\Util::WARN); + $errorStr.'Not a single Base DN given.', + \OCP\Util::WARN); $configurationOK = false; } - if(empty($this->config['ldapLoginFilter'])) { - \OCP\Util::writeLog('user_ldap', 'No login filter specified, won`t connect.', \OCP\Util::WARN); - $configurationOK = false; - } - if(mb_strpos($this->config['ldapLoginFilter'], '%uid', 0, 'UTF-8') === false) { + + if(mb_strpos($this->configuration->ldapLoginFilter, '%uid', 0, 'UTF-8') + === false) { \OCP\Util::writeLog('user_ldap', - 'Login filter does not contain %uid place holder, won`t connect.', - \OCP\Util::WARN); - \OCP\Util::writeLog('user_ldap', 'Login filter was ' . $this->config['ldapLoginFilter'], \OCP\Util::DEBUG); + $errorStr.'login filter does not contain %uid '. + 'place holder.', + \OCP\Util::WARN); $configurationOK = false; } - if(!empty($this->config['ldapExpertUUIDAttr'])) { - $this->config['ldapUuidAttribute'] = $this->config['ldapExpertUUIDAttr']; - } - return $configurationOK; } /** - * @returns an associative array with the default values. Keys are correspond - * to config-value entries in the database table + * @brief Validates the user specified configuration + * @returns true if configuration seems OK, false otherwise */ - static public function getDefaults() { - return array( - 'ldap_host' => '', - 'ldap_port' => '389', - 'ldap_backup_host' => '', - 'ldap_backup_port' => '', - 'ldap_override_main_server' => '', - 'ldap_dn' => '', - 'ldap_agent_password' => '', - 'ldap_base' => '', - 'ldap_base_users' => '', - 'ldap_base_groups' => '', - 'ldap_userlist_filter' => 'objectClass=person', - 'ldap_login_filter' => 'uid=%uid', - 'ldap_group_filter' => 'objectClass=posixGroup', - 'ldap_display_name' => 'cn', - 'ldap_group_display_name' => 'cn', - 'ldap_tls' => 1, - 'ldap_nocase' => 0, - 'ldap_quota_def' => '', - 'ldap_quota_attr' => '', - 'ldap_email_attr' => '', - 'ldap_group_member_assoc_attribute' => 'uniqueMember', - 'ldap_cache_ttl' => 600, - 'ldap_uuid_attribute' => 'auto', - 'ldap_override_uuid_attribute' => 0, - 'home_folder_naming_rule' => '', - 'ldap_turn_off_cert_check' => 0, - 'ldap_configuration_active' => 1, - 'ldap_attributes_for_user_search' => '', - 'ldap_attributes_for_group_search' => '', - 'ldap_expert_username_attr' => '', - 'ldap_expert_uuid_attr' => '', - ); + private function validateConfiguration() { + + if($this->doNotValidate) { + //don't do a validation if it is a new configuration with pure + //default values. Will be allowed on changes via __set or + //setConfiguration + return false; + } + + // first step: "soft" checks: settings that are not really + // necessary, but advisable. If left empty, give an info message + $this->doSoftValidation(); + + //second step: critical checks. If left empty or filled wrong, set as + //unconfigured and give a warning. + return $this->doCriticalValidation(); } + /** * Connects and Binds to LDAP */ private function establishConnection() { - if(!$this->config['ldapConfigurationActive']) { + if(!$this->configuration->ldapConfigurationActive) { return null; } static $phpLDAPinstalled = true; @@ -611,29 +439,36 @@ class Connection extends LDAPUtility { return false; } if(!$this->configured) { - \OCP\Util::writeLog('user_ldap', 'Configuration is invalid, cannot connect', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Configuration is invalid, cannot connect', + \OCP\Util::WARN); return false; } if(!$this->ldapConnectionRes) { if(!$this->ldap->areLDAPFunctionsAvailable()) { $phpLDAPinstalled = false; \OCP\Util::writeLog('user_ldap', - 'function ldap_connect is not available. Make sure that the PHP ldap module is installed.', - \OCP\Util::ERROR); + 'function ldap_connect is not available. Make '. + 'sure that the PHP ldap module is installed.', + \OCP\Util::ERROR); return false; } - if($this->config['turnOffCertCheck']) { + if($this->configuration->turnOffCertCheck) { if(putenv('LDAPTLS_REQCERT=never')) { \OCP\Util::writeLog('user_ldap', 'Turned off SSL certificate validation successfully.', \OCP\Util::WARN); } else { - \OCP\Util::writeLog('user_ldap', 'Could not turn off SSL certificate validation.', \OCP\Util::WARN); + \OCP\Util::writeLog('user_ldap', + 'Could not turn off SSL certificate validation.', + \OCP\Util::WARN); } } - if(!$this->config['ldapOverrideMainServer'] && !$this->getFromCache('overrideMainServer')) { - $this->doConnect($this->config['ldapHost'], $this->config['ldapPort']); + if(!$this->configuration->ldapOverrideMainServer + && !$this->getFromCache('overrideMainServer')) { + $this->doConnect($this->configuration->ldapHost, + $this->configuration->ldapPort); $bindStatus = $this->bind(); $error = $this->ldap->isResource($this->ldapConnectionRes) ? $this->ldap->errno($this->ldapConnectionRes) : -1; @@ -644,9 +479,10 @@ class Connection extends LDAPUtility { //if LDAP server is not reachable, try the Backup (Replica!) Server if((!$bindStatus && ($error !== 0)) - || $this->config['ldapOverrideMainServer'] + || $this->configuration->ldapOverrideMainServer || $this->getFromCache('overrideMainServer')) { - $this->doConnect($this->config['ldapBackupHost'], $this->config['ldapBackupPort']); + $this->doConnect($this->configuration->ldapBackupHost, + $this->configuration->ldapBackupPort); $bindStatus = $this->bind(); if(!$bindStatus && $error === -1) { //when bind to backup server succeeded and failed to main server, @@ -669,7 +505,7 @@ class Connection extends LDAPUtility { $this->ldapConnectionRes = $this->ldap->connect($host, $port); if($this->ldap->setOption($this->ldapConnectionRes, LDAP_OPT_PROTOCOL_VERSION, 3)) { if($this->ldap->setOption($this->ldapConnectionRes, LDAP_OPT_REFERRALS, 0)) { - if($this->config['ldapTLS']) { + if($this->configuration->ldapTLS) { $this->ldap->startTls($this->ldapConnectionRes); } } @@ -681,7 +517,7 @@ class Connection extends LDAPUtility { */ public function bind() { static $getConnectionResourceAttempt = false; - if(!$this->config['ldapConfigurationActive']) { + if(!$this->configuration->ldapConfigurationActive) { return false; } if($getConnectionResourceAttempt) { @@ -695,8 +531,8 @@ class Connection extends LDAPUtility { return false; } $ldapLogin = @$this->ldap->bind($cr, - $this->config['ldapAgentName'], - $this->config['ldapAgentPassword']); + $this->configuration->ldapAgentName, + $this->configuration->ldapAgentPassword); if(!$ldapLogin) { \OCP\Util::writeLog('user_ldap', 'Bind failed: ' . $this->ldap->errno($cr) . ': ' . $this->ldap->error($cr), diff --git a/apps/user_ldap/lib/helper.php b/apps/user_ldap/lib/helper.php index 4c9dd07a12c..09f646921e3 100644 --- a/apps/user_ldap/lib/helper.php +++ b/apps/user_ldap/lib/helper.php @@ -161,4 +161,25 @@ class Helper { return true; } + + /** + * @brief extractsthe domain from a given URL + * @param $url the URL + * @return mixed, domain as string on success, false otherwise + */ + static public function getDomainFromURL($url) { + $uinfo = parse_url($url); + if(!is_array($uinfo)) { + return false; + } + + $domain = false; + if(isset($uinfo['host'])) { + $domain = $uinfo['host']; + } else if(isset($uinfo['path'])) { + $domain = $uinfo['path']; + } + + return $domain; + } } diff --git a/apps/user_ldap/lib/ildapwrapper.php b/apps/user_ldap/lib/ildapwrapper.php index 9e6bd56ef2a..20587cba7db 100644 --- a/apps/user_ldap/lib/ildapwrapper.php +++ b/apps/user_ldap/lib/ildapwrapper.php @@ -68,6 +68,14 @@ interface ILDAPWrapper { public function controlPagedResultResponse($link, $result, &$cookie); /** + * @brief Count the number of entries in a search + * @param $link LDAP link resource + * @param $result LDAP result resource + * @return mixed, number of results on success, false otherwise + */ + public function countEntries($link, $result); + + /** * @brief Return the LDAP error number of the last LDAP command * @param $link LDAP link resource * @return error message as string @@ -98,6 +106,14 @@ interface ILDAPWrapper { public function getAttributes($link, $result); /** + * @brief Get the DN of a result entry + * @param $link LDAP link resource + * @param $result LDAP result resource + * @return string containing the DN, false on error + */ + public function getDN($link, $result); + + /** * @brief Get all result entries * @param $link LDAP link resource * @param $result LDAP result resource @@ -106,6 +122,14 @@ interface ILDAPWrapper { public function getEntries($link, $result); /** + * @brief Return next result id + * @param $link LDAP link resource + * @param $result LDAP entry result resource + * @return an LDAP search result resource + * */ + public function nextEntry($link, $result); + + /** * @brief Read an entry * @param $link LDAP link resource * @param $baseDN The DN of the entry to read from diff --git a/apps/user_ldap/lib/jobs.php b/apps/user_ldap/lib/jobs.php index 2f90da3bfb6..9b108da6331 100644 --- a/apps/user_ldap/lib/jobs.php +++ b/apps/user_ldap/lib/jobs.php @@ -139,12 +139,12 @@ class Jobs extends \OC\BackgroundJob\TimedJob { return self::$groupBE; } $configPrefixes = Helper::getServerConfigurationPrefixes(true); - $ldapWrapper = new OCA\user_ldap\lib\LDAP(); + $ldapWrapper = new LDAP(); if(count($configPrefixes) === 1) { //avoid the proxy when there is only one LDAP server configured - $connector = new OCA\user_ldap\lib\Connection($ldapWrapper, $configPrefixes[0]); - $ldapAccess = new OCA\user_ldap\lib\Access($connector, $ldapWrapper); - self::$groupBE = new OCA\user_ldap\GROUP_LDAP($ldapAccess); + $connector = new Connection($ldapWrapper, $configPrefixes[0]); + $ldapAccess = new Access($connector, $ldapWrapper); + self::$groupBE = new \OCA\user_ldap\GROUP_LDAP($ldapAccess); } else { self::$groupBE = new \OCA\user_ldap\Group_Proxy($configPrefixes, $ldapWrapper); } diff --git a/apps/user_ldap/lib/ldap.php b/apps/user_ldap/lib/ldap.php index b63e969912a..dda8533c41f 100644 --- a/apps/user_ldap/lib/ldap.php +++ b/apps/user_ldap/lib/ldap.php @@ -49,6 +49,10 @@ class LDAP implements ILDAPWrapper { $isCritical, $cookie); } + public function countEntries($link, $result) { + return $this->invokeLDAPMethod('count_entries', $link, $result); + } + public function errno($link) { return $this->invokeLDAPMethod('errno', $link); } @@ -65,10 +69,18 @@ class LDAP implements ILDAPWrapper { return $this->invokeLDAPMethod('get_attributes', $link, $result); } + public function getDN($link, $result) { + return $this->invokeLDAPMethod('get_dn', $link, $result); + } + public function getEntries($link, $result) { return $this->invokeLDAPMethod('get_entries', $link, $result); } + public function nextEntry($link, $result) { + return $this->invokeLDAPMethod('next_entry', $link, $result); + } + public function read($link, $baseDN, $filter, $attr) { return $this->invokeLDAPMethod('read', $link, $baseDN, $filter, $attr); } @@ -79,7 +91,7 @@ class LDAP implements ILDAPWrapper { } public function setOption($link, $option, $value) { - $this->invokeLDAPMethod('set_option', $link, $option, $value); + return $this->invokeLDAPMethod('set_option', $link, $option, $value); } public function sort($link, $result, $sortfilter) { diff --git a/apps/user_ldap/lib/proxy.php b/apps/user_ldap/lib/proxy.php index c74b357bdd2..30e1875901c 100644 --- a/apps/user_ldap/lib/proxy.php +++ b/apps/user_ldap/lib/proxy.php @@ -54,7 +54,7 @@ abstract class Proxy { return 'group-'.$gid.'-lastSeenOn'; } - abstract protected function callOnLastSeenOn($id, $method, $parameters); + abstract protected function callOnLastSeenOn($id, $method, $parameters, $passOnWhen); abstract protected function walkBackends($id, $method, $parameters); /** @@ -64,8 +64,9 @@ abstract class Proxy { * @param $parameters an array of parameters to be passed * @return mixed, the result of the specified method */ - protected function handleRequest($id, $method, $parameters) { - if(!$result = $this->callOnLastSeenOn($id, $method, $parameters)) { + protected function handleRequest($id, $method, $parameters, $passOnWhen = false) { + $result = $this->callOnLastSeenOn($id, $method, $parameters, $passOnWhen); + if($result === $passOnWhen) { $result = $this->walkBackends($id, $method, $parameters); } return $result; diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php new file mode 100644 index 00000000000..b70ede8599c --- /dev/null +++ b/apps/user_ldap/lib/wizard.php @@ -0,0 +1,1068 @@ +<?php + +/** + * ownCloud – LDAP Wizard + * + * @author Arthur Schiwon + * @copyright 2013 Arthur Schiwon blizzz@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\user_ldap\lib; + +class Wizard extends LDAPUtility { + static protected $l; + protected $cr; + protected $configuration; + protected $result; + protected $resultCache = array(); + + const LRESULT_PROCESSED_OK = 2; + const LRESULT_PROCESSED_INVALID = 3; + const LRESULT_PROCESSED_SKIP = 4; + + const LFILTER_LOGIN = 2; + const LFILTER_USER_LIST = 3; + const LFILTER_GROUP_LIST = 4; + + const LFILTER_MODE_ASSISTED = 2; + const LFILTER_MODE_RAW = 1; + + const LDAP_NW_TIMEOUT = 4; + + /** + * @brief Constructor + * @param $configuration an instance of Configuration + * @param $ldap an instance of ILDAPWrapper + */ + public function __construct(Configuration $configuration, ILDAPWrapper $ldap) { + parent::__construct($ldap); + $this->configuration = $configuration; + if(is_null(Wizard::$l)) { + Wizard::$l = \OC_L10N::get('user_ldap'); + } + $this->result = new WizardResult; + } + + public function __destruct() { + if($this->result->hasChanges()) { + $this->configuration->saveConfiguration(); + } + } + + public function countGroups() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + + $base = $this->configuration->ldapBase[0]; + $filter = $this->configuration->ldapGroupFilter; + \OCP\Util::writeLog('user_ldap', 'Wiz: g filter '. print_r($filter, true), \OCP\Util::DEBUG); + $l = \OC_L10N::get('user_ldap'); + if(empty($filter)) { + $output = $l->n('%s group found', '%s groups found', 0, array(0)); + $this->result->addChange('ldap_group_count', $output); + return $this->result; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + $rr = $this->ldap->search($cr, $base, $filter, array('dn')); + if(!$this->ldap->isResource($rr)) { + return false; + } + $entries = $this->ldap->countEntries($cr, $rr); + $entries = ($entries !== false) ? $entries : 0; + $output = $l->n('%s group found', '%s groups found', $entries, $entries); + $this->result->addChange('ldap_group_count', $output); + + return $this->result; + } + + public function countUsers() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + 'ldapUserFilter', + ))) { + return false; + } + + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + $base = $this->configuration->ldapBase[0]; + $filter = $this->configuration->ldapUserFilter; + $rr = $this->ldap->search($cr, $base, $filter, array('dn')); + if(!$this->ldap->isResource($rr)) { + return false; + } + $entries = $this->ldap->countEntries($cr, $rr); + $entries = ($entries !== false) ? $entries : 0; + $l = \OC_L10N::get('user_ldap'); + $output = $l->n('%s user found', '%s users found', $entries, $entries); + $this->result->addChange('ldap_user_count', $output); + + return $this->result; + } + + + public function determineAttributes() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + 'ldapUserFilter', + ))) { + return false; + } + + $attributes = $this->getUserAttributes(); + + natcasesort($attributes); + $attributes = array_values($attributes); + + $this->result->addOptions('ldap_loginfilter_attributes', $attributes); + + $selected = $this->configuration->ldapLoginFilterAttributes; + if(is_array($selected) && !empty($selected)) { + $this->result->addChange('ldap_loginfilter_attributes', $selected); + } + + return $this->result; + } + + /** + * @brief return the state of the Group Filter Mode + */ + public function getGroupFilterMode() { + $this->getFilterMode('ldapGroupFilterMode'); + return $this->result; + } + + /** + * @brief return the state of the Login Filter Mode + */ + public function getLoginFilterMode() { + $this->getFilterMode('ldapLoginFilterMode'); + return $this->result; + } + + /** + * @brief return the state of the User Filter Mode + */ + public function getUserFilterMode() { + $this->getFilterMode('ldapUserFilterMode'); + return $this->result; + } + + /** + * @brief return the state of the mode of the specified filter + * @param $confkey string, contains the access key of the Configuration + */ + private function getFilterMode($confkey) { + $mode = $this->configuration->$confkey; + if(is_null($mode)) { + $mode = $this->LFILTER_MODE_ASSISTED; + } + $this->result->addChange($confkey, $mode); + } + + /** + * @brief detects the available LDAP attributes + * @returns the instance's WizardResult instance + */ + private function getUserAttributes() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + 'ldapUserFilter', + ))) { + return false; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + $base = $this->configuration->ldapBase[0]; + $filter = $this->configuration->ldapUserFilter; + $rr = $this->ldap->search($cr, $base, $filter, array(), 1, 1); + if(!$this->ldap->isResource($rr)) { + return false; + } + $er = $this->ldap->firstEntry($cr, $rr); + $attributes = $this->ldap->getAttributes($cr, $er); + $pureAttributes = array(); + for($i = 0; $i < $attributes['count']; $i++) { + $pureAttributes[] = $attributes[$i]; + } + + return $pureAttributes; + } + + /** + * @brief detects the available LDAP groups + * @returns the instance's WizardResult instance + */ + public function determineGroupsForGroups() { + return $this->determineGroups('ldap_groupfilter_groups', + 'ldapGroupFilterGroups', + false); + } + + /** + * @brief detects the available LDAP groups + * @returns the instance's WizardResult instance + */ + public function determineGroupsForUsers() { + return $this->determineGroups('ldap_userfilter_groups', + 'ldapUserFilterGroups'); + } + + /** + * @brief detects the available LDAP groups + * @returns the instance's WizardResult instance + */ + private function determineGroups($dbkey, $confkey, $testMemberOf = true) { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + $obclasses = array('posixGroup', 'group', 'zimbraDistributionList', '*'); + $this->determineFeature($obclasses, 'cn', $dbkey, $confkey); + + if($testMemberOf) { + $this->configuration->hasMemberOfFilterSupport = $this->testMemberOf(); + $this->result->markChange(); + if(!$this->configuration->hasMemberOfFilterSupport) { + throw new \Exception('memberOf is not supported by the server'); + } + } + + return $this->result; + } + + public function determineGroupMemberAssoc() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapGroupFilter', + ))) { + return false; + } + $attribute = $this->detectGroupMemberAssoc(); + if($attribute === false) { + return false; + } + $this->configuration->setConfiguration(array('ldapGroupMemberAssocAttr' => $attribute)); + //so it will be saved on destruct + $this->result->markChange(); + + return $this->result; + } + + /** + * @brief detects the available object classes + * @returns the instance's WizardResult instance + */ + public function determineGroupObjectClasses() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + $obclasses = array('group', 'posixGroup', '*'); + $this->determineFeature($obclasses, + 'objectclass', + 'ldap_groupfilter_objectclass', + 'ldapGroupFilterObjectclass', + false); + + return $this->result; + } + + /** + * @brief detects the available object classes + * @returns the instance's WizardResult instance + */ + public function determineUserObjectClasses() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + $obclasses = array('inetOrgPerson', 'person', 'organizationalPerson', + 'user', 'posixAccount', '*'); + $filter = $this->configuration->ldapUserFilter; + //if filter is empty, it is probably the first time the wizard is called + //then, apply suggestions. + $this->determineFeature($obclasses, + 'objectclass', + 'ldap_userfilter_objectclass', + 'ldapUserFilterObjectclass', + empty($filter)); + + return $this->result; + } + + public function getGroupFilter() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + //make sure the use display name is set + $displayName = $this->configuration->ldapGroupDisplayName; + if(empty($displayName)) { + $d = $this->configuration->getDefaults(); + $this->applyFind('ldap_group_display_name', + $d['ldap_group_display_name']); + } + $filter = $this->composeLdapFilter(self::LFILTER_GROUP_LIST); + + $this->applyFind('ldap_group_filter', $filter); + return $this->result; + } + + public function getUserListFilter() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + ))) { + return false; + } + //make sure the use display name is set + $displayName = $this->configuration->ldapUserDisplayName; + if(empty($displayName)) { + $d = $this->configuration->getDefaults(); + $this->applyFind('ldap_display_name', $d['ldap_display_name']); + } + $filter = $this->composeLdapFilter(self::LFILTER_USER_LIST); + if(!$filter) { + throw new \Exception('Cannot create filter'); + } + + $this->applyFind('ldap_userlist_filter', $filter); + return $this->result; + } + + public function getUserLoginFilter() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + 'ldapBase', + 'ldapUserFilter', + ))) { + return false; + } + + $filter = $this->composeLdapFilter(self::LFILTER_LOGIN); + if(!$filter) { + throw new \Exception('Cannot create filter'); + } + + $this->applyFind('ldap_login_filter', $filter); + return $this->result; + } + + /** + * Tries to determine the port, requires given Host, User DN and Password + * @returns mixed WizardResult on success, false otherwise + */ + public function guessPortAndTLS() { + if(!$this->checkRequirements(array('ldapHost', + ))) { + return false; + } + $this->checkHost(); + $portSettings = $this->getPortSettingsToTry(); + + if(!is_array($portSettings)) { + throw new \Exception(print_r($portSettings, true)); + } + + //proceed from the best configuration and return on first success + foreach($portSettings as $setting) { + $p = $setting['port']; + $t = $setting['tls']; + \OCP\Util::writeLog('user_ldap', 'Wiz: trying port '. $p . ', TLS '. $t, \OCP\Util::DEBUG); + //connectAndBind may throw Exception, it needs to be catched by the + //callee of this method + if($this->connectAndBind($p, $t) === true) { + $config = array('ldapPort' => $p, + 'ldapTLS' => intval($t) + ); + $this->configuration->setConfiguration($config); + \OCP\Util::writeLog('user_ldap', 'Wiz: detected Port '. $p, \OCP\Util::DEBUG); + $this->result->addChange('ldap_port', $p); + return $this->result; + } + } + + //custom port, undetected (we do not brute force) + return false; + } + + /** + * @brief tries to determine a base dn from User DN or LDAP Host + * @returns mixed WizardResult on success, false otherwise + */ + public function guessBaseDN() { + if(!$this->checkRequirements(array('ldapHost', + 'ldapPort', + ))) { + return false; + } + + //check whether a DN is given in the agent name (99.9% of all cases) + $base = null; + $i = stripos($this->configuration->ldapAgentName, 'dc='); + if($i !== false) { + $base = substr($this->configuration->ldapAgentName, $i); + if($this->testBaseDN($base)) { + $this->applyFind('ldap_base', $base); + return $this->result; + } + } + + //this did not help :( + //Let's see whether we can parse the Host URL and convert the domain to + //a base DN + $domain = Helper::getDomainFromURL($this->configuration->ldapHost); + if(!$domain) { + return false; + } + + $dparts = explode('.', $domain); + $base2 = implode('dc=', $dparts); + if($base !== $base2 && $this->testBaseDN($base2)) { + $this->applyFind('ldap_base', $base2); + return $this->result; + } + + return false; + } + + /** + * @brief sets the found value for the configuration key in the WizardResult + * as well as in the Configuration instance + * @param $key the configuration key + * @param $value the (detected) value + * @return null + * + */ + private function applyFind($key, $value) { + $this->result->addChange($key, $value); + $this->configuration->setConfiguration(array($key => $value)); + } + + /** + * @brief Checks, whether a port was entered in the Host configuration + * field. In this case the port will be stripped off, but also stored as + * setting. + */ + private function checkHost() { + $host = $this->configuration->ldapHost; + $hostInfo = parse_url($host); + + //removes Port from Host + if(is_array($hostInfo) && isset($hostInfo['port'])) { + $port = $hostInfo['port']; + $host = str_replace(':'.$port, '', $host); + $this->applyFind('ldap_host', $host); + $this->applyFind('ldap_port', $port); + } + } + + /** + * @brief tries to detect the group member association attribute which is + * one of 'uniqueMember', 'memberUid', 'member' + * @return mixed, string with the attribute name, false on error + */ + private function detectGroupMemberAssoc() { + $possibleAttrs = array('uniqueMember', 'memberUid', 'member', 'unfugasdfasdfdfa'); + $filter = $this->configuration->ldapGroupFilter; + if(empty($filter)) { + return false; + } + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + $base = $this->configuration->ldapBase[0]; + $rr = $this->ldap->search($cr, $base, $filter, $possibleAttrs); + if(!$this->ldap->isResource($rr)) { + return false; + } + $er = $this->ldap->firstEntry($cr, $rr); + while(is_resource($er)) { + $dn = $this->ldap->getDN($cr, $er); + $attrs = $this->ldap->getAttributes($cr, $er); + $result = array(); + for($i = 0; $i < count($possibleAttrs); $i++) { + if(isset($attrs[$possibleAttrs[$i]])) { + $result[$possibleAttrs[$i]] = $attrs[$possibleAttrs[$i]]['count']; + } + } + if(!empty($result)) { + natsort($result); + return key($result); + } + + $er = $this->ldap->nextEntry($cr, $er); + } + + return false; + } + + /** + * @brief Checks whether for a given BaseDN results will be returned + * @param $base the BaseDN to test + * @return bool true on success, false otherwise + */ + private function testBaseDN($base) { + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + + //base is there, let's validate it. If we search for anything, we should + //get a result set > 0 on a proper base + $rr = $this->ldap->search($cr, $base, 'objectClass=*', array('dn'), 0, 1); + if(!$this->ldap->isResource($rr)) { + return false; + } + $entries = $this->ldap->countEntries($cr, $rr); + return ($entries !== false) && ($entries > 0); + } + + /** + * @brief Checks whether the server supports memberOf in LDAP Filter. + * Requires that groups are determined, thus internally called from within + * determineGroups() + * @return bool, true if it does, false otherwise + */ + private function testMemberOf() { + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + if(!is_array($this->configuration->ldapBase) + || !isset($this->configuration->ldapBase[0])) { + return false; + } + $base = $this->configuration->ldapBase[0]; + $filterPrefix = '(&(objectclass=*)(memberOf='; + $filterSuffix = '))'; + + foreach($this->resultCache as $dn => $properties) { + if(!isset($properties['cn'])) { + //assuming only groups have their cn cached :) + continue; + } + $filter = strtolower($filterPrefix . $dn . $filterSuffix); + $rr = $this->ldap->search($cr, $base, $filter, array('dn')); + if(!$this->ldap->isResource($rr)) { + continue; + } + $entries = $this->ldap->countEntries($cr, $rr); + //we do not know which groups are empty, so test any and return + //success on the first match that returns at least one user + if(($entries !== false) && ($entries > 0)) { + return true; + } + } + + return false; + } + + /** + * @brief creates an LDAP Filter from given configuration + * @param $filterType int, for which use case the filter shall be created + * can be any of self::LFILTER_USER_LIST, self::LFILTER_LOGIN or + * self::LFILTER_GROUP_LIST + * @return mixed, string with the filter on success, false otherwise + */ + private function composeLdapFilter($filterType) { + $filter = ''; + $parts = 0; + switch ($filterType) { + case self::LFILTER_USER_LIST: + $objcs = $this->configuration->ldapUserFilterObjectclass; + //glue objectclasses + if(is_array($objcs) && count($objcs) > 0) { + $filter .= '(|'; + foreach($objcs as $objc) { + $filter .= '(objectclass=' . $objc . ')'; + } + $filter .= ')'; + $parts++; + } + //glue group memberships + if($this->configuration->hasMemberOfFilterSupport) { + $cns = $this->configuration->ldapUserFilterGroups; + if(is_array($cns) && count($cns) > 0) { + $filter .= '(|'; + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + $base = $this->configuration->ldapBase[0]; + foreach($cns as $cn) { + $rr = $this->ldap->search($cr, $base, 'cn=' . $cn, array('dn')); + if(!$this->ldap->isResource($rr)) { + continue; + } + $er = $this->ldap->firstEntry($cr, $rr); + $dn = $this->ldap->getDN($cr, $er); + $filter .= '(memberof=' . $dn . ')'; + } + $filter .= ')'; + } + $parts++; + } + //wrap parts in AND condition + if($parts > 1) { + $filter = '(&' . $filter . ')'; + } + if(empty($filter)) { + $filter = '(objectclass=*)'; + } + break; + + case self::LFILTER_GROUP_LIST: + $objcs = $this->configuration->ldapGroupFilterObjectclass; + //glue objectclasses + if(is_array($objcs) && count($objcs) > 0) { + $filter .= '(|'; + foreach($objcs as $objc) { + $filter .= '(objectclass=' . $objc . ')'; + } + $filter .= ')'; + $parts++; + } + //glue group memberships + $cns = $this->configuration->ldapGroupFilterGroups; + if(is_array($cns) && count($cns) > 0) { + $filter .= '(|'; + $base = $this->configuration->ldapBase[0]; + foreach($cns as $cn) { + $filter .= '(cn=' . $cn . ')'; + } + $filter .= ')'; + } + $parts++; + //wrap parts in AND condition + if($parts > 1) { + $filter = '(&' . $filter . ')'; + } + break; + + case self::LFILTER_LOGIN: + $ulf = $this->configuration->ldapUserFilter; + $loginpart = '=%uid'; + $filterUsername = ''; + $userAttributes = $this->getUserAttributes(); + $userAttributes = array_change_key_case(array_flip($userAttributes)); + $parts = 0; + + $x = $this->configuration->ldapLoginFilterUsername; + if($this->configuration->ldapLoginFilterUsername === '1') { + $attr = ''; + if(isset($userAttributes['uid'])) { + $attr = 'uid'; + } else if(isset($userAttributes['samaccountname'])) { + $attr = 'samaccountname'; + } else if(isset($userAttributes['cn'])) { + //fallback + $attr = 'cn'; + } + if(!empty($attr)) { + $filterUsername = '(' . $attr . $loginpart . ')'; + $parts++; + } + } + + $filterEmail = ''; + if($this->configuration->ldapLoginFilterEmail === '1') { + $filterEmail = '(|(mailPrimaryAddress=%uid)(mail=%uid))'; + $parts++; + } + + $filterAttributes = ''; + $attrsToFilter = $this->configuration->ldapLoginFilterAttributes; + if(is_array($attrsToFilter) && count($attrsToFilter) > 0) { + $filterAttributes = '(|'; + foreach($attrsToFilter as $attribute) { + $filterAttributes .= '(' . $attribute . $loginpart . ')'; + } + $filterAttributes .= ')'; + $parts++; + } + + $filterLogin = ''; + if($parts > 1) { + $filterLogin = '(|'; + } + $filterLogin .= $filterUsername; + $filterLogin .= $filterEmail; + $filterLogin .= $filterAttributes; + if($parts > 1) { + $filterLogin .= ')'; + } + + $filter = '(&'.$ulf.$filterLogin.')'; + break; + } + + \OCP\Util::writeLog('user_ldap', 'Wiz: Final filter '.$filter, \OCP\Util::DEBUG); + + return $filter; + } + + /** + * Connects and Binds to an LDAP Server + * @param $port the port to connect with + * @param $tls whether startTLS is to be used + * @return + */ + private function connectAndBind($port = 389, $tls = false, $ncc = false) { + if($ncc) { + //No certificate check + //FIXME: undo afterwards + putenv('LDAPTLS_REQCERT=never'); + } + + //connect, does not really trigger any server communication + \OCP\Util::writeLog('user_ldap', 'Wiz: Checking Host Info ', \OCP\Util::DEBUG); + $host = $this->configuration->ldapHost; + $hostInfo = parse_url($host); + if(!$hostInfo) { + throw new \Exception($this->l->t('Invalid Host')); + } + if(isset($hostInfo['scheme'])) { + if(isset($hostInfo['port'])) { + //problem + } else { + $host .= ':' . $port; + } + } + \OCP\Util::writeLog('user_ldap', 'Wiz: Attempting to connect ', \OCP\Util::DEBUG); + $cr = $this->ldap->connect($host, $port); + if(!is_resource($cr)) { + throw new \Exception($this->l->t('Invalid Host')); + } + + \OCP\Util::writeLog('user_ldap', 'Wiz: Setting LDAP Options ', \OCP\Util::DEBUG); + //set LDAP options + $this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3); + $this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT); + if($tls) { + $isTlsWorking = @$this->ldap->startTls($cr); + if(!$isTlsWorking) { + return false; + } + } + + \OCP\Util::writeLog('user_ldap', 'Wiz: Attemping to Bind ', \OCP\Util::DEBUG); + //interesting part: do the bind! + $login = $this->ldap->bind($cr, + $this->configuration->ldapAgentName, + $this->configuration->ldapAgentPassword); + + if($login === true) { + $this->ldap->unbind($cr); + if($ncc) { + throw new \Exception('Certificate cannot be validated.'); + } + \OCP\Util::writeLog('user_ldap', 'Wiz: Bind successfull to Port '. $port . ' TLS ' . intval($tls), \OCP\Util::DEBUG); + return true; + } + + $errno = $this->ldap->errno($cr); + $error = ldap_error($cr); + $this->ldap->unbind($cr); + if($errno === -1 || ($errno === 2 && $ncc)) { + //host, port or TLS wrong + return false; + } else if ($errno === 2) { + return $this->connectAndBind($port, $tls, true); + } + throw new \Exception($error); + } + + /** + * @brief checks whether a valid combination of agent and password has been + * provided (either two values or nothing for anonymous connect) + * @return boolean, true if everything is fine, false otherwise + * + */ + private function checkAgentRequirements() { + $agent = $this->configuration->ldapAgentName; + $pwd = $this->configuration->ldapAgentPassword; + + return ( (!empty($agent) && !empty($pwd)) + || (empty($agent) && empty($pwd))); + } + + private function checkRequirements($reqs) { + $this->checkAgentRequirements(); + foreach($reqs as $option) { + $value = $this->configuration->$option; + if(empty($value)) { + return false; + } + } + return true; + } + + /** + * @brief does a cumulativeSearch on LDAP to get different values of a + * specified attribute + * @param $filters array, the filters that shall be used in the search + * @param $attr the attribute of which a list of values shall be returned + * @param $lfw bool, whether the last filter is a wildcard which shall not + * be processed if there were already findings, defaults to true + * @param $maxF string. if not null, this variable will have the filter that + * yields most result entries + * @return mixed, an array with the values on success, false otherwise + * + */ + private function cumulativeSearchOnAttribute($filters, $attr, $lfw = true, &$maxF = null) { + $dnRead = array(); + $foundItems = array(); + $maxEntries = 0; + if(!is_array($this->configuration->ldapBase) + || !isset($this->configuration->ldapBase[0])) { + return false; + } + $base = $this->configuration->ldapBase[0]; + $cr = $this->getConnection(); + if(!is_resource($cr)) { + return false; + } + foreach($filters as $filter) { + if($lfw && count($foundItems) > 0) { + continue; + } + $rr = $this->ldap->search($cr, $base, $filter, array($attr)); + if(!$this->ldap->isResource($rr)) { + continue; + } + $entries = $this->ldap->countEntries($cr, $rr); + $getEntryFunc = 'firstEntry'; + if(($entries !== false) && ($entries > 0)) { + if(!is_null($maxF) && $entries > $maxEntries) { + $maxEntries = $entries; + $maxF = $filter; + } + do { + $entry = $this->ldap->$getEntryFunc($cr, $rr); + if(!$this->ldap->isResource($entry)) { + continue 2; + } + $attributes = $this->ldap->getAttributes($cr, $entry); + $dn = $this->ldap->getDN($cr, $entry); + if($dn === false || in_array($dn, $dnRead)) { + continue; + } + $newItems = array(); + $state = $this->getAttributeValuesFromEntry($attributes, + $attr, + $newItems); + $foundItems = array_merge($foundItems, $newItems); + $this->resultCache[$dn][$attr] = $newItems; + $dnRead[] = $dn; + $getEntryFunc = 'nextEntry'; + $rr = $entry; //will be expected by nextEntry next round + } while($state === self::LRESULT_PROCESSED_SKIP + || $this->ldap->isResource($entry)); + } + } + + return array_unique($foundItems); + } + + /** + * @brief determines if and which $attr are available on the LDAP server + * @param $objectclasses the objectclasses to use as search filter + * @param $attr the attribute to look for + * @param $dbkey the dbkey of the setting the feature is connected to + * @param $confkey the confkey counterpart for the $dbkey as used in the + * Configuration class + * @param $po boolean, whether the objectClass with most result entries + * shall be pre-selected via the result + * @returns array, list of found items. + */ + private function determineFeature($objectclasses, $attr, $dbkey, $confkey, $po = false) { + $cr = $this->getConnection(); + if(!$cr) { + throw new \Exception('Could not connect to LDAP'); + } + $p = 'objectclass='; + foreach($objectclasses as $key => $value) { + $objectclasses[$key] = $p.$value; + } + $maxEntryObjC = ''; + $availableFeatures = + $this->cumulativeSearchOnAttribute($objectclasses, $attr, + true, $maxEntryObjC); + if(is_array($availableFeatures) + && count($availableFeatures) > 0) { + natcasesort($availableFeatures); + //natcasesort keeps indices, but we must get rid of them for proper + //sorting in the web UI. Therefore: array_values + $this->result->addOptions($dbkey, array_values($availableFeatures)); + } else { + throw new \Exception(self::$l->t('Could not find the desired feature')); + } + + $setFeatures = $this->configuration->$confkey; + if(is_array($setFeatures) && !empty($setFeatures)) { + //something is already configured? pre-select it. + $this->result->addChange($dbkey, $setFeatures); + } else if($po && !empty($maxEntryObjC)) { + //pre-select objectclass with most result entries + $maxEntryObjC = str_replace($p, '', $maxEntryObjC); + $this->applyFind($dbkey, $maxEntryObjC); + $this->result->addChange($dbkey, $maxEntryObjC); + } + + return $availableFeatures; + } + + /** + * @brief appends a list of values fr + * @param $result resource, the return value from ldap_get_attributes + * @param $attribute string, the attribute values to look for + * @param &$known array, new values will be appended here + * @return int, state on of the class constants LRESULT_PROCESSED_OK, + * LRESULT_PROCESSED_INVALID or LRESULT_PROCESSED_SKIP + */ + private function getAttributeValuesFromEntry($result, $attribute, &$known) { + if(!is_array($result) + || !isset($result['count']) + || !$result['count'] > 0) { + return self::LRESULT_PROCESSED_INVALID; + } + + //strtolower on all keys for proper comparison + $result = \OCP\Util::mb_array_change_key_case($result); + $attribute = strtolower($attribute); + if(isset($result[$attribute])) { + foreach($result[$attribute] as $key => $val) { + if($key === 'count') { + continue; + } + if(!in_array($val, $known)) { + $known[] = $val; + } + } + return self::LRESULT_PROCESSED_OK; + } else { + return self::LRESULT_PROCESSED_SKIP; + } + } + + private function getConnection() { + if(!is_null($this->cr)) { + return $this->cr; + } + $cr = $this->ldap->connect( + $this->configuration->ldapHost.':'.$this->configuration->ldapPort, + $this->configuration->ldapPort); + + $this->ldap->setOption($cr, LDAP_OPT_PROTOCOL_VERSION, 3); + $this->ldap->setOption($cr, LDAP_OPT_NETWORK_TIMEOUT, self::LDAP_NW_TIMEOUT); + if($this->configuration->ldapTLS === 1) { + $this->ldap->startTls($cr); + } + + $lo = @$this->ldap->bind($cr, + $this->configuration->ldapAgentName, + $this->configuration->ldapAgentPassword); + if($lo === true) { + $this->$cr = $cr; + return $cr; + } + + return false; + } + + private function getDefaultLdapPortSettings() { + static $settings = array( + array('port' => 7636, 'tls' => false), + array('port' => 636, 'tls' => false), + array('port' => 7389, 'tls' => true), + array('port' => 389, 'tls' => true), + array('port' => 7389, 'tls' => false), + array('port' => 389, 'tls' => false), + ); + return $settings; + } + + private function getPortSettingsToTry() { + //389 ← LDAP / Unencrypted or StartTLS + //636 ← LDAPS / SSL + //7xxx ← UCS. need to be checked first, because both ports may be open + $host = $this->configuration->ldapHost; + $port = intval($this->configuration->ldapPort); + $portSettings = array(); + + //In case the port is already provided, we will check this first + if($port > 0) { + $hostInfo = parse_url($host); + if(!(is_array($hostInfo) + && isset($hostInfo['scheme']) + && stripos($hostInfo['scheme'], 'ldaps') !== false)) { + $portSettings[] = array('port' => $port, 'tls' => true); + } + $portSettings[] =array('port' => $port, 'tls' => false); + } + + //default ports + $portSettings = array_merge($portSettings, + $this->getDefaultLdapPortSettings()); + + return $portSettings; + } + + +}
\ No newline at end of file diff --git a/apps/user_ldap/lib/wizardresult.php b/apps/user_ldap/lib/wizardresult.php new file mode 100644 index 00000000000..542f106cad8 --- /dev/null +++ b/apps/user_ldap/lib/wizardresult.php @@ -0,0 +1,58 @@ +<?php + +/** + * ownCloud – LDAP Wizard Result + * + * @author Arthur Schiwon + * @copyright 2013 Arthur Schiwon blizzz@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\user_ldap\lib; + +class WizardResult { + protected $changes = array(); + protected $options = array(); + protected $markedChange = false; + + public function addChange($key, $value) { + $this->changes[$key] = $value; + } + + public function markChange() { + $this->markedChange = true; + } + + public function addOptions($key, $values) { + if(!is_array($values)) { + $values = array($values); + } + $this->options[$key] = $values; + } + + public function hasChanges() { + return (count($this->changes) > 0 || $this->markedChange); + } + + public function getResultArray() { + $result = array(); + $result['changes'] = $this->changes; + if(count($this->options) > 0) { + $result['options'] = $this->options; + } + return $result; + } +}
\ No newline at end of file diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php index b7070f23183..d077eafdde9 100644 --- a/apps/user_ldap/settings.php +++ b/apps/user_ldap/settings.php @@ -25,31 +25,50 @@ OC_Util::checkAdminUser(); -$params = array('ldap_host', 'ldap_port', 'ldap_backup_host', - 'ldap_backup_port', 'ldap_override_main_server', 'ldap_dn', - 'ldap_agent_password', 'ldap_base', 'ldap_base_users', - 'ldap_base_groups', 'ldap_userlist_filter', - 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name', - 'ldap_group_display_name', 'ldap_tls', - 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def', - 'ldap_quota_attr', 'ldap_email_attr', - 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl', - 'home_folder_naming_rule' - ); - -OCP\Util::addscript('user_ldap', 'settings'); -OCP\Util::addstyle('user_ldap', 'settings'); +OCP\Util::addScript('user_ldap', 'settings'); +OCP\Util::addScript('core', 'jquery.multiselect'); +OCP\Util::addStyle('user_ldap', 'settings'); +OCP\Util::addStyle('core', 'jquery.multiselect'); +OCP\Util::addStyle('core', 'jquery-ui-1.10.0.custom'); // fill template $tmpl = new OCP\Template('user_ldap', 'settings'); $prefixes = \OCA\user_ldap\lib\Helper::getServerConfigurationPrefixes(); $hosts = \OCA\user_ldap\lib\Helper::getServerConfigurationHosts(); -$tmpl->assign('serverConfigurationPrefixes', $prefixes); -$tmpl->assign('serverConfigurationHosts', $hosts); + +$wizardHtml = ''; +$toc = array(); + +$wControls = new OCP\Template('user_ldap', 'part.wizardcontrols'); +$wControls = $wControls->fetchPage(); +$sControls = new OCP\Template('user_ldap', 'part.settingcontrols'); +$sControls = $sControls->fetchPage(); + +$wizTabs = array(); +$wizTabs[] = array('tpl' => 'part.wizard-server', 'cap' => 'Server'); +$wizTabs[] = array('tpl' => 'part.wizard-userfilter', 'cap' => 'User Filter'); +$wizTabs[] = array('tpl' => 'part.wizard-loginfilter', 'cap' => 'Login Filter'); +$wizTabs[] = array('tpl' => 'part.wizard-groupfilter', 'cap' => 'Group Filter'); + +for($i = 0; $i < count($wizTabs); $i++) { + $tab = new OCP\Template('user_ldap', $wizTabs[$i]['tpl']); + if($i === 0) { + $tab->assign('serverConfigurationPrefixes', $prefixes); + $tab->assign('serverConfigurationHosts', $hosts); + } + $tab->assign('wizardControls', $wControls); + $wizardHtml .= $tab->fetchPage(); + $toc['#ldapWizard'.($i+1)] = $wizTabs[$i]['cap']; +} + +$tmpl->assign('tabs', $wizardHtml); +$tmpl->assign('toc', $toc); +$tmpl->assign('settingControls', $sControls); // assign default values -$defaults = \OCA\user_ldap\lib\Connection::getDefaults(); +$config = new \OCA\user_ldap\lib\Configuration('', false); +$defaults = $config->getDefaults(); foreach($defaults as $key => $default) { $tmpl->assign($key.'_default', $default); } diff --git a/apps/user_ldap/templates/part.settingcontrols.php b/apps/user_ldap/templates/part.settingcontrols.php new file mode 100644 index 00000000000..0cdb8ccf16f --- /dev/null +++ b/apps/user_ldap/templates/part.settingcontrols.php @@ -0,0 +1,12 @@ +<div class="ldapSettingControls"> + <input class="ldap_submit" value="<?php p($l->t('Save'));?>" type="submit"> + <button class="ldap_action_test_connection" name="ldap_action_test_connection"> + <?php p($l->t('Test Configuration'));?> + </button> + <a href="<?php p($theme->getDocBaseUrl()); ?>/server/5.0/admin_manual/auth_ldap.html" + target="_blank"> + <img src="<?php print_unescaped(OCP\Util::imagePath('', 'actions/info.png')); ?>" + style="height:1.75ex" /> + <?php p($l->t('Help'));?> + </a> +</div>
\ No newline at end of file diff --git a/apps/user_ldap/templates/part.wizard-groupfilter.php b/apps/user_ldap/templates/part.wizard-groupfilter.php new file mode 100644 index 00000000000..0cc4dfa572a --- /dev/null +++ b/apps/user_ldap/templates/part.wizard-groupfilter.php @@ -0,0 +1,42 @@ +<fieldset id="ldapWizard4"> + <div> + <p> + <?php p($l->t('Limit the access to %s to groups meeting this criteria:', $theme->getName()));?> + </p> + <p> + <label for="ldap_groupfilter_objectclass"> + <?php p($l->t('only those object classes:'));?> + </label> + + <select id="ldap_groupfilter_objectclass" multiple="multiple" + name="ldap_groupfilter_objectclass"> + </select> + </p> + <p> + <label for="ldap_groupfilter_groups"> + <?php p($l->t('only from those groups:'));?> + </label> + + <select id="ldap_groupfilter_groups" multiple="multiple" + name="ldap_groupfilter_groups"> + </select> + </p> + <p> + <label><a id='toggleRawGroupFilter'>↓ <?php p($l->t('Edit raw filter instead'));?></a></label> + </p> + <p id="rawGroupFilterContainer" class="invisible"> + <input type="text" id="ldap_group_filter" name="ldap_group_filter" + class="lwautosave" + placeholder="<?php p($l->t('Raw LDAP filter'));?>" + title="<?php p($l->t('The filter specifies which LDAP groups shall have access to the %s instance.', $theme->getName()));?>" + /> + </p> + <p> + <div class="ldapWizardInfo invisible"> </div> + </p> + <p> + <span id="ldap_group_count">0 <?php p($l->t('groups found'));?></span> + </p> + <?php print_unescaped($_['wizardControls']); ?> + </div> +</fieldset>
\ No newline at end of file diff --git a/apps/user_ldap/templates/part.wizard-loginfilter.php b/apps/user_ldap/templates/part.wizard-loginfilter.php new file mode 100644 index 00000000000..dc5d61e9f77 --- /dev/null +++ b/apps/user_ldap/templates/part.wizard-loginfilter.php @@ -0,0 +1,47 @@ +<fieldset id="ldapWizard3"> + <div> + <p> + <?php p($l->t('What attribute shall be used as login name:'));?> + </p> + <p> + <label for="ldap_loginfilter_username"> + <?php p($l->t('LDAP Username:'));?> + </label> + + <input type="checkbox" id="ldap_loginfilter_username" + name="ldap_loginfilter_username" value="1" class="lwautosave" /> + </p> + <p> + <label for="ldap_loginfilter_email"> + <?php p($l->t('LDAP Email Address:'));?> + </label> + + <input type="checkbox" id="ldap_loginfilter_email" + name="ldap_loginfilter_email" value="1" class="lwautosave" /> + </p> + <p> + <label for="ldap_loginfilter_attributes"> + <?php p($l->t('Other Attributes:'));?> + </label> + + <select id="ldap_loginfilter_attributes" multiple="multiple" + name="ldap_loginfilter_attributes"> + </select> + </p> + <p> + <label><a id='toggleRawLoginFilter'>↓ <?php p($l->t('Edit raw filter instead'));?></a></label> + </p> + <p id="rawLoginFilterContainer" class="invisible"> + <input type="text" id="ldap_login_filter" name="ldap_login_filter" + class="lwautosave" + placeholder="<?php p($l->t('Raw LDAP filter'));?>" + title="<?php p($l->t('Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: "uid=%%uid"'));?>" + /> + </p> + <p> + <div class="ldapWizardInfo invisible"> </div> + </p> + + <?php print_unescaped($_['wizardControls']); ?> + </div> +</fieldset>
\ No newline at end of file diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php new file mode 100644 index 00000000000..0312c17ab7b --- /dev/null +++ b/apps/user_ldap/templates/part.wizard-server.php @@ -0,0 +1,71 @@ +<fieldset id="ldapWizard1"> + <p> + <select id="ldap_serverconfig_chooser" name="ldap_serverconfig_chooser"> + <?php if(count($_['serverConfigurationPrefixes']) === 0 ) { + ?> + <option value="" selected>1. Server</option>'); + <?php + } else { + $i = 1; + $sel = ' selected'; + foreach($_['serverConfigurationPrefixes'] as $prefix) { + ?> + <option value="<?php p($prefix); ?>"<?php p($sel); $sel = ''; ?>><?php p($i++); ?>. Server: <?php p($_['serverConfigurationHosts'][$prefix]); ?></option> + <?php + } + } + ?> + <option value="NEW"><?php p($l->t('Add Server Configuration'));?></option> + </select> + <button id="ldap_action_delete_configuration" + name="ldap_action_delete_configuration">Delete Configuration</button> + </p> + + <div class="hostPortCombinator"> + <div class="tablerow"> + <div class="tablecell"> + <div class="table"> + <input type="text" class="host tablecell lwautosave" id="ldap_host" + name="ldap_host" + placeholder="<?php p($l->t('Host'));?>" + title="<?php p($l->t('You can omit the protocol, except you require SSL. Then start with ldaps://'));?>" + /> + <span> + <input type="number" id="ldap_port" name="ldap_port" + class="lwautosave" + placeholder="<?php p($l->t('Port'));?>" /> + </span> + </div> + </div> + </div> + <div class="tablerow"> + <input type="text" id="ldap_dn" name="ldap_dn" + class="tablecell lwautosave" + placeholder="<?php p($l->t('User DN'));?>" autocomplete="off" + title="<?php p($l->t('The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.'));?>" + /> + </div> + + <div class="tablerow"> + <input type="password" id="ldap_agent_password" + class="tablecell lwautosave" name="ldap_agent_password" + placeholder="<?php p($l->t('Password'));?>" autocomplete="off" + title="<?php p($l->t('For anonymous access, leave DN and Password empty.'));?>" + /> + </div> + + <div class="tablerow"> + <textarea id="ldap_base" name="ldap_base" + class="tablecell lwautosave" + placeholder="<?php p($l->t('One Base DN per line'));?>" + title="<?php p($l->t('You can specify Base DN for users and groups in the Advanced tab'));?>"> + </textarea> + </div> + + <div class="tablerow"> + <div class="tablecell ldapWizardInfo invisible"> + </div> + </div> + </div> + <?php print_unescaped($_['wizardControls']); ?> + </fieldset>
\ No newline at end of file diff --git a/apps/user_ldap/templates/part.wizard-userfilter.php b/apps/user_ldap/templates/part.wizard-userfilter.php new file mode 100644 index 00000000000..c1d522ce2a6 --- /dev/null +++ b/apps/user_ldap/templates/part.wizard-userfilter.php @@ -0,0 +1,42 @@ +<fieldset id="ldapWizard2"> + <div> + <p> + <?php p($l->t('Limit the access to %s to users meeting this criteria:', $theme->getName()));?> + </p> + <p> + <label for="ldap_userfilter_objectclass"> + <?php p($l->t('only those object classes:'));?> + </label> + + <select id="ldap_userfilter_objectclass" multiple="multiple" + name="ldap_userfilter_objectclass"> + </select> + </p> + <p> + <label for="ldap_userfilter_groups"> + <?php p($l->t('only from those groups:'));?> + </label> + + <select id="ldap_userfilter_groups" multiple="multiple" + name="ldap_userfilter_groups"> + </select> + </p> + <p> + <label><a id='toggleRawUserFilter'>↓ <?php p($l->t('Edit raw filter instead'));?></a></label> + </p> + <p id="rawUserFilterContainer" class="invisible"> + <input type="text" id="ldap_userlist_filter" name="ldap_userlist_filter" + class="lwautosave" + placeholder="<?php p($l->t('Raw LDAP filter'));?>" + title="<?php p($l->t('The filter specifies which LDAP users shall have access to the %s instance.', $theme->getName()));?>" + /> + </p> + <p> + <div class="ldapWizardInfo invisible"> </div> + </p> + <p> + <span id="ldap_user_count">0 <?php p($l->t('users found'));?></span> + </p> + <?php print_unescaped($_['wizardControls']); ?> + </div> +</fieldset>
\ No newline at end of file diff --git a/apps/user_ldap/templates/part.wizardcontrols.php b/apps/user_ldap/templates/part.wizardcontrols.php new file mode 100644 index 00000000000..f17b362c737 --- /dev/null +++ b/apps/user_ldap/templates/part.wizardcontrols.php @@ -0,0 +1,16 @@ +<div class="ldapWizardControls"> + <span class="ldap_config_state_indicator"></span> <span class="ldap_config_state_indicator_sign"></span> + <button class="ldap_action_back invisible" name="ldap_action_back" + type="button"> + <?php p($l->t('Back'));?> + </button> + <button class="ldap_action_continue" name="ldap_action_continue" type="button"> + <?php p($l->t('Continue'));?> + </button> + <a href="<?php p($theme->getDocBaseUrl()); ?>/server/5.0/admin_manual/auth_ldap.html" + target="_blank"> + <img src="<?php print_unescaped(OCP\Util::imagePath('', 'actions/info.png')); ?>" + style="height:1.75ex" /> + <span class="ldap_grey"><?php p($l->t('Help'));?></span> + </a> +</div>
\ No newline at end of file diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index e214d57fb1d..3ccc7a860f5 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -1,9 +1,11 @@ <form id="ldap" action="#" method="post"> <div id="ldapSettings" class="personalblock"> <ul> - <li><a href="#ldapSettings-1">LDAP Basic</a></li> - <li><a href="#ldapSettings-2">Advanced</a></li> - <li><a href="#ldapSettings-3">Expert</a></li> + <?php foreach($_['toc'] as $id => $title) { ?> + <li id="<?php p($id); ?>"><a href="<?php p($id); ?>"><?php p($title); ?></a></li> + <?php } ?> + <li class="ldapSettingsTabs"><a href="#ldapSettings-2">Expert</a></li> + <li class="ldapSettingsTabs"><a href="#ldapSettings-1">Advanced</a></li> </ul> <?php if(OCP\App::isEnabled('user_webdavauth')) { print_unescaped('<p class="ldapwarning">'.$l->t('<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.').'</p>'); @@ -12,65 +14,15 @@ print_unescaped('<p class="ldapwarning">'.$l->t('<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.').'</p>'); } ?> + <?php print_unescaped($_['tabs']); ?> <fieldset id="ldapSettings-1"> - <p><label for="ldap_serverconfig_chooser"><?php p($l->t('Server configuration'));?></label> - <select id="ldap_serverconfig_chooser" name="ldap_serverconfig_chooser"> - <?php if(count($_['serverConfigurationPrefixes']) === 0 ) { - ?> - <option value="" selected>1. Server</option>'); - <?php - } else { - $i = 1; - $sel = ' selected'; - foreach($_['serverConfigurationPrefixes'] as $prefix) { - ?> - <option value="<?php p($prefix); ?>"<?php p($sel); $sel = ''; ?>><?php p($i++); ?>. Server: <?php p($_['serverConfigurationHosts'][$prefix]); ?></option> - <?php - } - } - ?> - <option value="NEW"><?php p($l->t('Add Server Configuration'));?></option> - </select> - <button id="ldap_action_delete_configuration" - name="ldap_action_delete_configuration">Delete Configuration</button> - </p> - <p><label for="ldap_host"><?php p($l->t('Host'));?></label> - <input type="text" id="ldap_host" name="ldap_host" data-default="<?php p($_['ldap_host_default']); ?>" - title="<?php p($l->t('You can omit the protocol, except you require SSL. Then start with ldaps://'));?>"></p> - <p><label for="ldap_base"><?php p($l->t('Base DN'));?></label> - <textarea id="ldap_base" name="ldap_base" placeholder="<?php p($l->t('One Base DN per line'));?>" - title="<?php p($l->t('You can specify Base DN for users and groups in the Advanced tab'));?>" - data-default="<?php p($_['ldap_base_default']); ?>" ></textarea></p> - <p><label for="ldap_dn"><?php p($l->t('User DN'));?></label> - <input type="text" id="ldap_dn" name="ldap_dn" data-default="<?php p($_['ldap_dn_default']); ?>" - title="<?php p($l->t('The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.'));?>" /></p> - <p><label for="ldap_agent_password"><?php p($l->t('Password'));?></label> - <input type="password" id="ldap_agent_password" name="ldap_agent_password" - data-default="<?php p($_['ldap_agent_password_default']); ?>" - title="<?php p($l->t('For anonymous access, leave DN and Password empty.'));?>" /></p> - <p><label for="ldap_login_filter"><?php p($l->t('User Login Filter'));?></label> - <input type="text" id="ldap_login_filter" name="ldap_login_filter" - data-default="<?php p($_['ldap_login_filter_default']); ?>" - title="<?php p($l->t('Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: "uid=%%uid"'));?>" /></p> - <p><label for="ldap_userlist_filter"><?php p($l->t('User List Filter'));?></label> - <input type="text" id="ldap_userlist_filter" name="ldap_userlist_filter" - data-default="<?php p($_['ldap_userlist_filter_default']); ?>" - title="<?php p($l->t('Defines the filter to apply, when retrieving users (no placeholders). Example: "objectClass=person"'));?>" /></p> - <p><label for="ldap_group_filter"><?php p($l->t('Group Filter'));?></label> - <input type="text" id="ldap_group_filter" name="ldap_group_filter" - data-default="<?php p($_['ldap_group_filter_default']); ?>" - title="<?php p($l->t('Defines the filter to apply, when retrieving groups (no placeholders). Example: "objectClass=posixGroup"'));?>" /></p> - </fieldset> - <fieldset id="ldapSettings-2"> <div id="ldapAdvancedAccordion"> <h3><?php p($l->t('Connection Settings'));?></h3> <div> <p><label for="ldap_configuration_active"><?php p($l->t('Configuration Active'));?></label><input type="checkbox" id="ldap_configuration_active" name="ldap_configuration_active" value="1" data-default="<?php p($_['ldap_configuration_active_default']); ?>" title="<?php p($l->t('When unchecked, this configuration will be skipped.'));?>" /></p> - <p><label for="ldap_port"><?php p($l->t('Port'));?></label><input type="number" id="ldap_port" name="ldap_port" data-default="<?php p($_['ldap_port_default']); ?>" /></p> <p><label for="ldap_backup_host"><?php p($l->t('Backup (Replica) Host'));?></label><input type="text" id="ldap_backup_host" name="ldap_backup_host" data-default="<?php p($_['ldap_backup_host_default']); ?>" title="<?php p($l->t('Give an optional backup host. It must be a replica of the main LDAP/AD server.'));?>"></p> <p><label for="ldap_backup_port"><?php p($l->t('Backup (Replica) Port'));?></label><input type="number" id="ldap_backup_port" name="ldap_backup_port" data-default="<?php p($_['ldap_backup_port_default']); ?>" /></p> <p><label for="ldap_override_main_server"><?php p($l->t('Disable Main Server'));?></label><input type="checkbox" id="ldap_override_main_server" name="ldap_override_main_server" value="1" data-default="<?php p($_['ldap_override_main_server_default']); ?>" title="<?php p($l->t('Only connect to the replica server.'));?>" /></p> - <p><label for="ldap_tls"><?php p($l->t('Use TLS'));?></label><input type="checkbox" id="ldap_tls" name="ldap_tls" value="1" data-default="<?php p($_['ldap_tls_default']); ?>" title="<?php p($l->t('Do not use it additionally for LDAPS connections, it will fail.'));?>" /></p> <p><label for="ldap_nocase"><?php p($l->t('Case insensitve LDAP server (Windows)'));?></label><input type="checkbox" id="ldap_nocase" name="ldap_nocase" data-default="<?php p($_['ldap_nocase_default']); ?>" value="1"<?php if (isset($_['ldap_nocase']) && ($_['ldap_nocase'])) p(' checked'); ?>></p> <p><label for="ldap_turn_off_cert_check"><?php p($l->t('Turn off SSL certificate validation.'));?></label><input type="checkbox" id="ldap_turn_off_cert_check" name="ldap_turn_off_cert_check" title="<?php p($l->t('Not recommended, use it for testing only! If connection only works with this option, import the LDAP server\'s SSL certificate in your %s server.', $theme->getName() ));?>" data-default="<?php p($_['ldap_turn_off_cert_check_default']); ?>" value="1"><br/></p> <p><label for="ldap_cache_ttl"><?php p($l->t('Cache Time-To-Live'));?></label><input type="number" id="ldap_cache_ttl" name="ldap_cache_ttl" title="<?php p($l->t('in seconds. A change empties the cache.'));?>" data-default="<?php p($_['ldap_cache_ttl_default']); ?>" /></p> @@ -93,19 +45,21 @@ <p><label for="home_folder_naming_rule"><?php p($l->t('User Home Folder Naming Rule'));?></label><input type="text" id="home_folder_naming_rule" name="home_folder_naming_rule" title="<?php p($l->t('Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute.'));?>" data-default="<?php p($_['home_folder_naming_rule_default']); ?>" /></p> </div> </div> + <?php print_unescaped($_['settingControls']); ?> </fieldset> - <fieldset id="ldapSettings-3"> + <fieldset id="ldapSettings-2"> <p><strong><?php p($l->t('Internal Username'));?></strong></p> <p class="ldapIndent"><?php p($l->t('By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users.'));?></p> <p class="ldapIndent"><label for="ldap_expert_username_attr"><?php p($l->t('Internal Username Attribute:'));?></label><input type="text" id="ldap_expert_username_attr" name="ldap_expert_username_attr" data-default="<?php p($_['ldap_expert_username_attr_default']); ?>" /></p> <p><strong><?php p($l->t('Override UUID detection'));?></strong></p> <p class="ldapIndent"><?php p($l->t('By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups.'));?></p> - <p class="ldapIndent"><label for="ldap_expert_uuid_attr"><?php p($l->t('UUID Attribute:'));?></label><input type="text" id="ldap_expert_uuid_attr" name="ldap_expert_uuid_attr" data-default="<?php p($_['ldap_expert_uuid_attr_default']); ?>" /></p> + <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 a 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 id="ldap_action_clear_user_mappings" name="ldap_action_clear_user_mappings"><?php p($l->t('Clear Username-LDAP User Mapping'));?></button><br/><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> - <input id="ldap_submit" type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection"><?php p($l->t('Test Configuration'));?></button> <a href="<?php p($theme->getDocBaseUrl()); ?>/server/5.0/admin_manual/auth_ldap.html" target="_blank"><img src="<?php print_unescaped(OCP\Util::imagePath('', 'actions/info.png')); ?>" style="height:1.75ex" /> <?php p($l->t('Help'));?></a> </div> </form> diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php index 6b9b8b3e185..9193a005ae5 100644 --- a/apps/user_ldap/tests/user_ldap.php +++ b/apps/user_ldap/tests/user_ldap.php @@ -408,4 +408,58 @@ class Test_User_Ldap_Direct extends \PHPUnit_Framework_TestCase { //no test for getDisplayNames, because it just invokes getUsers and //getDisplayName + + public function testCountUsers() { + $access = $this->getAccessMock(); + + $access->connection->expects($this->once()) + ->method('__get') + ->will($this->returnCallback(function($name) { + if($name === 'ldapLoginFilter') { + return 'uid=%uid'; + } + return null; + })); + + $access->expects($this->once()) + ->method('countUsers') + ->will($this->returnCallback(function($filter, $a, $b, $c) { + if($filter !== 'uid=*') { + return false; + } + return 5; + })); + + $backend = new UserLDAP($access); + + $result = $backend->countUsers(); + $this->assertEquals(5, $result); + } + + public function testCountUsersFailing() { + $access = $this->getAccessMock(); + + $access->connection->expects($this->once()) + ->method('__get') + ->will($this->returnCallback(function($name) { + if($name === 'ldapLoginFilter') { + return 'invalidFilter'; + } + return null; + })); + + $access->expects($this->once()) + ->method('countUsers') + ->will($this->returnCallback(function($filter, $a, $b, $c) { + if($filter !== 'uid=*') { + return false; + } + return 5; + })); + + $backend = new UserLDAP($access); + + $result = $backend->countUsers(); + $this->assertFalse($result); + } }
\ No newline at end of file diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 6f52bbdf233..a19af86086c 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -70,6 +70,74 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { } /** + * @brief reads jpegPhoto and set is as avatar if available + * @param $uid string ownCloud user name + * @param $dn string the user's LDAP DN + * @return void + */ + private function updateAvatar($uid, $dn) { + $hasLoggedIn = \OCP\Config::getUserValue($uid, 'user_ldap', + 'firstLoginAccomplished', 0); + $lastChecked = \OCP\Config::getUserValue($uid, 'user_ldap', + 'lastJpegPhotoLookup', 0); + if(($hasLoggedIn !== '1') || (time() - intval($lastChecked)) < 86400 ) { + //update only once a day + return; + } + + $jpegPhoto = $this->access->readAttribute($dn, 'jpegPhoto'); + \OCP\Config::setUserValue($uid, 'user_ldap', 'lastJpegPhotoLookup', time()); + if(!$jpegPhoto || !is_array($jpegPhoto) || !isset($jpegPhoto[0])) { + //not set, nothing left to do; + return; + } + + $image = new \OCP\Image(); + $image->loadFromBase64(base64_encode($jpegPhoto[0])); + + if(!$image->valid()) { + \OCP\Util::writeLog('user_ldap', 'jpegPhoto data invalid for '.$dn, + \OCP\Util::ERROR); + return; + } + //make sure it is a square and not bigger than 128x128 + $size = min(array($image->width(), $image->height(), 128)); + if(!$image->centerCrop($size)) { + \OCP\Util::writeLog('user_ldap', + 'croping image for avatar failed for '.$dn, + \OCP\Util::ERROR); + return; + } + + if(!\OC\Files\Filesystem::$loaded) { + \OC_Util::setupFS($uid); + } + + $avatarManager = \OC::$server->getAvatarManager(); + $avatar = $avatarManager->getAvatar($uid); + $avatar->set($image); + } + + /** + * @brief checks whether the user is allowed to change his avatar in ownCloud + * @param $uid string the ownCloud user name + * @return boolean either the user can or cannot + */ + public function canChangeAvatar($uid) { + $dn = $this->access->username2dn($uid); + if(!$dn) { + return false; + } + $jpegPhoto = $this->access->readAttribute($dn, 'jpegPhoto'); + if(!$jpegPhoto || !is_array($jpegPhoto) || !isset($jpegPhoto[0])) { + //The user is allowed to change his avatar in ownCloud only if no + //avatar is provided by LDAP + return true; + } + return false; + } + + /** * @brief Check if the password is correct * @param $uid The username * @param $password The password @@ -100,6 +168,10 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { return false; } + \OCP\Config::setUserValue($ocname, 'user_ldap', + 'firstLoginAccomplished', 1); + + $this->updateAvatar($ocname, $dn); //give back the display name return $ocname; } @@ -173,6 +245,7 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { $this->access->connection->writeToCache('userExists'.$uid, true); $this->updateQuota($dn); + $this->updateAvatar($uid, $dn); return true; } @@ -289,7 +362,9 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { public function implementsActions($actions) { return (bool)((OC_USER_BACKEND_CHECK_PASSWORD | OC_USER_BACKEND_GET_HOME - | OC_USER_BACKEND_GET_DISPLAYNAME) + | OC_USER_BACKEND_GET_DISPLAYNAME + | OC_USER_BACKEND_PROVIDE_AVATAR + | OC_USER_BACKEND_COUNT_USERS) & $actions); } @@ -299,4 +374,16 @@ class USER_LDAP extends BackendUtility implements \OCP\UserInterface { public function hasUserListings() { return true; } + + /** + * counts the users in LDAP + * + * @return int | bool + */ + public function countUsers() { + $filter = \OCP\Util::mb_str_replace( + '%uid', '*', $this->access->connection->ldapLoginFilter, 'UTF-8'); + $entries = $this->access->countUsers($filter); + return $entries; + } } diff --git a/apps/user_ldap/user_proxy.php b/apps/user_ldap/user_proxy.php index 092fdbf7c78..5ad127197f3 100644 --- a/apps/user_ldap/user_proxy.php +++ b/apps/user_ldap/user_proxy.php @@ -54,6 +54,7 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { protected function walkBackends($uid, $method, $parameters) { $cacheKey = $this->getUserCacheKey($uid); foreach($this->backends as $configPrefix => $backend) { +// print("walkBackend '$configPrefix'<br/>"); if($result = call_user_func_array(array($backend, $method), $parameters)) { $this->writeToCache($cacheKey, $configPrefix); return $result; @@ -67,16 +68,17 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { * @param $uid string, the uid connected to the request * @param $method string, the method of the user backend that shall be called * @param $parameters an array of parameters to be passed + * @param $passOnWhen the result matches this variable * @return mixed, the result of the method or false */ - protected function callOnLastSeenOn($uid, $method, $parameters) { + protected function callOnLastSeenOn($uid, $method, $parameters, $passOnWhen) { $cacheKey = $this->getUserCacheKey($uid); $prefix = $this->getFromCache($cacheKey); //in case the uid has been found in the past, try this stored connection first if(!is_null($prefix)) { if(isset($this->backends[$prefix])) { $result = call_user_func_array(array($this->backends[$prefix], $method), $parameters); - if(!$result) { + if($result === $passOnWhen) { //not found here, reset cache to null if user vanished //because sometimes methods return false with a reason $userExists = call_user_func_array( @@ -164,6 +166,15 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { } /** + * @brief checks whether the user is allowed to change his avatar in ownCloud + * @param $uid string the ownCloud user name + * @return boolean either the user can or cannot + */ + public function canChangeAvatar($uid) { + return $this->handleRequest($uid, 'canChangeAvatar', array($uid), true); + } + + /** * @brief Get a list of all display names * @returns array with all displayNames (value) and the corresponding uids (key) * @@ -199,4 +210,19 @@ class User_Proxy extends lib\Proxy implements \OCP\UserInterface { return $this->refBackend->hasUserListings(); } + /** + * @brief Count the number of users + * @returns int | bool + */ + public function countUsers() { + $users = false; + foreach($this->backends as $backend) { + $backendUsers = $backend->countUsers(); + if ($backendUsers !== false) { + $users += $backendUsers; + } + } + return $users; + } + } |