Compare commits

...

3 Commits

Author SHA1 Message Date
Deon George
0074652abf RELEASE 0.9.6b 2009-06-30 19:25:27 +10:00
Deon George
e126518f60 RELEASE 0.9.6a 2009-06-30 19:25:05 +10:00
Deon George
7ff3528665 RELEASE 0.9.6 2009-06-30 19:24:29 +10:00
122 changed files with 13608 additions and 6013 deletions

View File

@@ -1 +1 @@
0.9.5
0.9.6b

View File

@@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr.php,v 1.10 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr.php,v 1.13 2005/04/15 11:46:41 wurley Exp $
/*
* add_attr.php
/**
* Adds an attribute/value pair to an object
*
* Variables that come in as POST vars:
@@ -12,130 +10,158 @@
* - attr
* - val
* - binary
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$attr = $_POST['attr'];
$val = isset( $_POST['val'] ) ? $_POST['val'] : false;;
$dn = $_POST['dn'] ;
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
if( ! $is_binary_val && $val == "" ) {
pla_error( $lang['left_attr_blank'] );
}
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// special case for binary attributes (like jpegPhoto and userCertificate):
// special case for binary attributes (like jpegPhoto and userCertificate):
// we must go read the data from the file and override $val with the binary data
// Secondly, we must check if the ";binary" option has to be appended to the name
// of the attribute.
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, array($val) ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
if( $is_binary_val ) {
if( 0 == $_FILES['val']['size'] )
pla_error( $lang['file_empty'] );
if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
if( isset( $_FILES['val']['error'] ) )
switch($_FILES['val']['error']){
case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] );
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
pla_error( $lang['uploaded_file_too_big'] );
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
pla_error( $lang['uploaded_file_too_big'] );
case 3: //uploaded file was only partially uploaded
pla_error( $lang['uploaded_file_partial'] );
case 4: //no file was uploaded
pla_error( $lang['left_attr_blank'] );
default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] );
break;
}
else
pla_error( $lang['invalid_file'] );
}
$file = $_FILES['val']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
if( 0 == $_FILES['val']['size'] )
pla_error( $lang['file_empty'] );
if( is_binary_option_required( $server_id, $attr ) )
$attr .=";binary";
if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
if( isset( $_FILES['val']['error'] ) )
switch($_FILES['val']['error']) {
case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] );
break;
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
pla_error( $lang['uploaded_file_too_big'] );
break;
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form
pla_error( $lang['uploaded_file_too_big'] );
break;
case 3: //uploaded file was only partially uploaded
pla_error( $lang['uploaded_file_partial'] );
break;
case 4: //no file was uploaded
pla_error( $lang['left_attr_blank'] );
break;
default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] );
break;
}
else
pla_error( $lang['invalid_file'] );
}
$file = $_FILES['val']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
if( is_binary_option_required( $ldapserver, $attr ) )
$attr .= ";binary";
}
// Automagically hash new userPassword attributes according to the
// chosen in config.php.
if( 0 == strcasecmp( $attr, 'userpassword' ) )
{
// Automagically hash new userPassword attributes according to the
// chosen in config.php.
if( 0 == strcasecmp( $attr, 'userpassword' ) ) {
if( isset( $servers[$server_id]['default_hash'] ) &&
$servers[$server_id]['default_hash'] != '' )
{
$servers[$server_id]['default_hash'] != '' ) {
$enc_type = $servers[$server_id]['default_hash'];
$val = password_hash( $val, $enc_type );
}
}
elseif( ( 0 == strcasecmp( $attr , 'sambantpassword' ) || 0 == strcasecmp( $attr , 'sambalmpassword') ) ){
$mkntPassword = new MkntPasswdUtil();
$mkntPassword->createSambaPasswords( $val );
$val = $mkntPassword->valueOf($attr);
elseif( in_array( $attr,array('sambantpassword','sambalmpassword') ) ){
$mkntPassword = new MkntPasswdUtil();
$mkntPassword->createSambaPasswords( $val );
$val = $mkntPassword->valueOf($attr);
}
$ds = pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
$new_entry = array( $attr => $val );
$result = @ldap_mod_add( $ds, $dn, $new_entry );
$result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if( $result )
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
else
pla_error( $lang['failed_to_add_attr'], ldap_error( $ds ) , ldap_errno( $ds ) );
pla_error( $lang['failed_to_add_attr'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()) );
// check if we need to append the ;binary option to the name
// of some binary attribute
/**
* Check if we need to append the ;binary option to the name
* of some binary attribute
*
* @param int $server_id Server ID that the attribute is in.
* @param attr $attr Attribute to test to see if it requires ;binary added to it.
* @return bool
*/
function is_binary_option_required( $server_id, $attr ){
function is_binary_option_required( $ldapserver, $attr ) {
// list of the binary attributes which need the ";binary" option
$binary_attributes_with_options = array(
// Superior: Ldapv3 Syntaxes (1.3.6.1.4.1.1466.115.121.1)
'1.3.6.1.4.1.1466.115.121.1.8' => "userCertificate",
'1.3.6.1.4.1.1466.115.121.1.8' => "caCertificate",
'1.3.6.1.4.1.1466.115.121.1.10' => "crossCertificatePair",
'1.3.6.1.4.1.1466.115.121.1.9' => "certificateRevocationList",
'1.3.6.1.4.1.1466.115.121.1.9' => "authorityRevocationList",
// Superior: Netscape Ldap attributes types (2.16.840.1.113730.3.1)
'2.16.840.1.113730.3.1.40' => "userSMIMECertificate"
);
// quick check by attr name (short circuits the schema check if possible)
//foreach( $binary_attributes_with_options as $oid => $name )
//if( 0 == strcasecmp( $attr, $name ) )
// list of the binary attributes which need the ";binary" option
$binary_attributes_with_options = array(
// Superior: Ldapv3 Syntaxes (1.3.6.1.4.1.1466.115.121.1)
'1.3.6.1.4.1.1466.115.121.1.8' => "userCertificate",
'1.3.6.1.4.1.1466.115.121.1.8' => "caCertificate",
'1.3.6.1.4.1.1466.115.121.1.10' => "crossCertificatePair",
'1.3.6.1.4.1.1466.115.121.1.9' => "certificateRevocationList",
'1.3.6.1.4.1.1466.115.121.1.9' => "authorityRevocationList",
// Superior: Netscape Ldap attributes types (2.16.840.1.113730.3.1)
'2.16.840.1.113730.3.1.40' => "userSMIMECertificate"
);
// quick check by attr name (short circuits the schema check if possible)
//foreach( $binary_attributes_with_options as $oid => $name )
//if( 0 == strcasecmp( $attr, $name ) )
//return true;
$schema_attr = get_schema_attribute( $server_id, $attr );
if( ! $schema_attr )
return false;
$schema_attr = get_schema_attribute( $ldapserver, $attr );
if( ! $schema_attr )
return false;
$syntax = $schema_attr->getSyntaxOID();
if( isset( $binary_attributes_with_options[ $syntax ] ) )
return true;
$syntax = $schema_attr->getSyntaxOID();
if( isset( $binary_attributes_with_options[ $syntax ] ) )
return true;
return false;
return false;
}
?>

View File

@@ -1,29 +1,32 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr_form.php,v 1.9 2004/09/15 12:31:52 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr_form.php,v 1.11 2005/03/05 06:27:06 wurley Exp $
/*
* add_attr_form.php
/**
* Displays a form for adding an attribute/value to an LDAP entry.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$friendly_attrs = process_friendly_attr_table();
include './header.php'; ?>
@@ -31,22 +34,24 @@ include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['add_new_attribute'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php
<?php $attrs = get_object_attrs( $ldapserver, $dn );
$attrs = get_object_attrs( $server_id, $dn );
$oclasses = get_object_attr( $server_id, $dn, 'objectClass' );
$oclasses = get_object_attr( $ldapserver, $dn, 'objectClass' );
if( ! is_array( $oclasses ) )
$oclasses = array( $oclasses );
$avail_attrs = array();
$schema_oclasses = get_schema_objectclasses( $server_id, $dn );
$schema_oclasses = get_schema_objectclasses( $ldapserver, $dn );
foreach( $oclasses as $oclass ) {
$schema_oclass = get_schema_objectclass( $server_id, $oclass, $dn );
$schema_oclass = get_schema_objectclass( $ldapserver, $oclass, $dn );
if( $schema_oclass && 0 == strcasecmp( 'objectclass', get_class( $schema_oclass ) ) )
$avail_attrs = array_merge( $schema_oclass->getMustAttrNames( $schema_oclasses ),
$schema_oclass->getMayAttrNames( $schema_oclasses ),
$avail_attrs );
$schema_oclass->getMayAttrNames( $schema_oclasses ),
$avail_attrs );
}
$avail_attrs = array_unique( $avail_attrs );
@@ -55,99 +60,117 @@ sort( $avail_attrs );
$avail_binary_attrs = array();
foreach( $avail_attrs as $i => $attr ) {
if( is_attr_binary( $server_id, $attr ) ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
$avail_binary_attrs[] = $attr;
unset( $avail_attrs[ $i ] );
}
}
?>
<br />
<center>
<?php echo $lang['add_new_attribute'];
<?php echo $lang['add_new_attribute']; ?>
if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<?php if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<br />
<br />
<br />
<br />
<form action="add_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<form action="add_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<select name="attr"><?php
$attr_select_html = '';
usort($avail_attrs,"sortAttrs");
foreach( $avail_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
<select name="attr">
<?php $attr_select_html = '';
usort($avail_attrs,"sortAttrs");
foreach( $avail_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
htmlspecialchars($a) . ")";
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="text" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<br />
<br />
<?php } ?>
<?php echo $lang['add_new_binary_attr']; ?>
<?php if( count( $avail_binary_attrs ) > 0 ) { ?>
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="text" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<br />
<br />
<?php } ?>
<?php echo $lang['add_new_binary_attr'];
if( count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry -->
<form action="add_attr.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="binary" value="true" />
<br />
<select name="attr">
<?php
$attr_select_html = '';
usort($avail_binary_attrs,"sortAttrs");
foreach( $avail_binary_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
<?php $attr_select_html = '';
usort($avail_binary_attrs,"sortAttrs");
foreach( $avail_binary_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
htmlspecialchars($a) . ")";
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="file" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
<?php
if( ! ini_get( 'file_uploads' ) )
echo "<br><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br>";
else
echo "<br><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
?>
<?php if( ! ini_get( 'file_uploads' ) )
echo "<br><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br>";
else
echo "<br><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
?>
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_binary_attrs_available']; ?>)</small>
<?php } ?>
</center>
@@ -159,16 +182,18 @@ foreach( $avail_attrs as $i => $attr ) {
/**
* Given an attribute $x, this returns true if it is NOT already specified
* in the current entry, returns false otherwise.
*
* @param attr $x
* @return bool
* @ignore
*/
function not_an_attr( $x )
{
function not_an_attr( $x ) {
global $attrs;
//return ! isset( $attrs[ strtolower( $x ) ] );
foreach( $attrs as $attr => $values )
if( 0 == strcasecmp( $attr, $x ) )
return false;
return true;
}
?>

View File

@@ -1,36 +1,41 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass.php,v 1.11 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass.php,v 1.14 2005/03/20 04:43:36 wurley Exp $
/*
* add_oclass.php
/**
* Adds an objectClass to the specified dn.
* Variables that come in as POST vars:
*
* Note, this does not do any schema violation checking. That is
* performed in add_oclass_form.php.
*
* Vars that come in as POST:
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
* - new_oclass
* - new_attrs (array, if any)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$new_oclass = $_POST['new_oclass'];
$server_id = $_POST['server_id'];
$new_attrs = $_POST['new_attrs'];
if( is_attr_read_only( $server_id, 'objectClass' ) )
pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$encoded_dn = rawurlencode( $dn );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( is_attr_read_only( $ldapserver, 'objectClass' ) )
pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
$new_entry = array();
$new_entry['objectClass'] = $new_oclass;
@@ -42,29 +47,24 @@ if( is_array( $new_attrs ) && count( $new_attrs ) > 0 )
foreach( $new_attrs as $attr => $val ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, array($val) ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
$new_entry[ $attr ] = $val;
}
//echo "<pre>";
//echo "<pre>";
//print_r( $new_entry );
//exit;
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$add_res = @ldap_mod_add( $ds, $dn, $new_entry );
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if( ! $add_res )
{
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ds ), ldap_errno( $ds ) );
}
else
{
if( ! $add_res ) {
pla_error( $lang['could_not_perform_ldap_mod_add'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()) );
} else {
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=objectclass" );
}
?>

View File

@@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass_form.php,v 1.15 2004/10/22 13:58:59 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass_form.php,v 1.18 2005/03/12 14:03:36 wurley Exp $
/*
* add_oclass_form.php
/**
* This page may simply add the objectClass and take you back to the edit page,
* but, in one condition it may prompt the user for input. That condition is this:
*
@@ -11,38 +9,44 @@
* attributes with 1 or more not defined by the object. In that case, we will
* present a form for the user to add those attributes to the object.
*
* Variables that come in as POST vars:
* Variables that come in as REQUEST vars:
* - dn (rawurlencoded)
* - server_id
* - new_oclass
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$new_oclass = $_POST['new_oclass'];
$server_id = $_POST['server_id'];
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( is_server_read_only( $server_id ) )
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$new_oclass = $_REQUEST['new_oclass'];
$dn = rawurldecode( $_REQUEST['dn'] );
$encoded_dn = rawurlencode( $dn );
/* Ensure that the object has defined all MUST attrs for this objectClass.
* If it hasn't, present a form to have the user enter values for all the
* newly required attrs. */
$entry = get_object_attrs( $server_id, $dn, true );
$entry = get_object_attrs( $ldapserver, $dn, true );
$current_attrs = array();
foreach( $entry as $attr => $junk )
$current_attrs[] = strtolower($attr);
// grab the required attributes for the new objectClass
$oclass = get_schema_objectclass( $server_id, $new_oclass );
$oclass = get_schema_objectclass( $ldapserver, $new_oclass );
if( $oclass )
$must_attrs = $oclass->getMustAttrs();
else
$must_attrs = array();
@@ -54,52 +58,57 @@ else
// but that the object does not currently contain
$needed_attrs = array();
foreach( $must_attrs as $attr ) {
$attr = get_schema_attribute( $server_id, $attr->getName() );
//echo "<pre>"; var_dump( $attr ); echo "</pre>";
// First, check if one of this attr's aliases is already an attribute of this entry
foreach( $attr->getAliases() as $alias_attr_name )
if( in_array( strtolower( $alias_attr_name ), $current_attrs ) )
// Skip this attribute since it's already in the entry
continue;
if( in_array( strtolower($attr->getName()), $current_attrs ) )
continue;
$attr = get_schema_attribute( $ldapserver, $attr->getName() );
// We made it this far, so the attribute needs to be added to this entry in order
// to add this objectClass
$needed_attrs[] = $attr;
//echo "<pre>"; var_dump( $attr ); echo "</pre>";
// First, check if one of this attr's aliases is already an attribute of this entry
foreach( $attr->getAliases() as $alias_attr_name )
if( in_array( strtolower( $alias_attr_name ), $current_attrs ) )
// Skip this attribute since it's already in the entry
continue;
if( in_array( strtolower($attr->getName()), $current_attrs ) )
continue;
// We made it this far, so the attribute needs to be added to this entry in order
// to add this objectClass
$needed_attrs[] = $attr;
}
if( count( $needed_attrs ) > 0 )
{
if( count( $needed_attrs ) > 0 ) {
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3>
<small>
<?php
echo $lang['new_required_attrs_instructions'];
<?php echo $lang['new_required_attrs_instructions'];
echo ' ' . count( $needed_attrs ) . ' ' . $lang['new_attributes'] . ' ';
echo $lang['that_this_oclass_requires']; ?>
</small>
<br />
<br />
<form action="add_oclass.php" method="post">
<input type="hidden" name="new_oclass" value="<?php echo htmlspecialchars( $new_oclass ); ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<table class="edit_dn" cellspacing="0">
<tr><th colspan="2"><?php echo $lang['new_required_attrs']; ?></th></tr>
<?php foreach( $needed_attrs as $count => $attr ) { ?>
<tr><td class="attr"><b><?php echo htmlspecialchars($attr->getName()); ?></b></td></tr>
<tr><td class="val"><input type="text" name="new_attrs[<?php echo htmlspecialchars($attr->getName()); ?>]" value="" size="40" /></tr>
<?php } ?>
<tr><td class="val"><input type="text" name="new_attrs[<?php echo htmlspecialchars($attr->getName()); ?>]" value="" size="40" /></tr>
<?php } ?>
</table>
<br />
@@ -110,18 +119,14 @@ if( count( $needed_attrs ) > 0 )
</body>
</html>
<?php
}
else
{
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$add_res = @ldap_mod_add( $ds, $dn, array( 'objectClass' => $new_oclass ) );
<?php } else {
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, array( 'objectClass' => $new_oclass ) );
if( ! $add_res )
pla_error( "Could not perform ldap_mod_add operation.", ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( "Could not perform ldap_mod_add operation.",
ldap_error( $ldapserver->connect() ),ldap_errno( $ldapserver->connect() ) );
else
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=objectClass" );
}
?>

View File

@@ -1,69 +1,73 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value.php,v 1.13 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value.php,v 1.17 2005/03/12 10:42:27 wurley Exp $
/*
* add_value.php
/**
* Adds a value to an attribute for a given dn.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
* - attr (rawurlencoded) the attribute to which we are adding a value
* - server_id
* - new_value (form element)
* - binary
* - binary
*
* On success, redirect to the edit_dn page.
* On failure, echo an error.
* On success, redirect to the edit_dn page. On failure, echo an error.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$attr = $_POST['attr'];
$encoded_attr = rawurlencode( $attr );
$server_id = $_POST['server_id'];
$new_value = $_POST['new_value'];
$dn = rawurldecode( $_POST['dn'] );
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( is_attr_read_only( $server_id, $attr ) )
pla_error( "The attribute '" . htmlspecialchars( $attr ) . "' is flagged as read only in the phpLDAPadmin configuration." );
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( is_attr_read_only( $ldapserver, $attr ) )
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars( $attr )));
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
// special case for binary attributes:
// special case for binary attributes:
// we must go read the data from the file.
if( $is_binary_val )
{
if( $is_binary_val ) {
$file = $_FILES['new_value']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_value = fread( $f, filesize( $file ) );
fclose( $f );
$new_value = $binary_value;
}
$new_entry = array( $attr => $new_value );
$new_entry = array( $attr => $new_value );
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, $new_entry ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, $new_entry ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
// Call the custom callback for each attribute modification
// and verify that it should be modified.
if( preAttrAdd( $server_id, $dn, $attr, $new_entry ) ) {
if( run_hook ( 'pre_attr_add', array ( 'server_id' => $server_id, 'dn' => $dn, 'attr_name' => $attr,
'new_value' => $new_entry ) ) ) {
$add_result = @ldap_mod_add( $ds, $dn, $new_entry );
$add_result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if( ! $add_result )
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );

View File

@@ -1,49 +1,56 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value_form.php,v 1.26 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value_form.php,v 1.29 2005/03/12 14:03:36 wurley Exp $
/*
* add_value_form.php
/**
* Displays a form to allow the user to enter a new value to add
* to the existing list of values for a multi-valued attribute.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
* - attr (rawurlencoded) the attribute to which we are adding a value
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$attr = $_GET['attr'];
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null;
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$encoded_attr = rawurlencode( $attr );
if( null != $dn ) {
$rdn = get_rdn( $dn );
} else {
$rdn = null;
}
$server_name = $servers[$server_id]['name'];
$attr = $_GET['attr'];
$encoded_attr = rawurlencode( $attr );
$current_values = get_object_attr( $server_id, $dn, $attr );
$num_current_values = ( is_array($current_values) ? count($current_values) : 1 );
$current_values = get_object_attr( $ldapserver, $dn, $attr );
$num_current_values = ( is_array($current_values) ? count($current_values) : 0 );
$is_object_class = ( 0 == strcasecmp( $attr, 'objectClass' ) ) ? true : false;
$is_jpeg_photo = is_jpeg_photo( $server_id, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
$is_jpeg_photo = is_jpeg_photo( $ldapserver, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( $is_object_class ) {
if( $is_object_class ) {
// fetch all available objectClasses and remove those from the list that are already defined in the entry
$schema_oclasses = get_schema_objectclasses( $server_id );
$schema_oclasses = get_schema_objectclasses( $ldapserver );
foreach( $current_values as $oclass )
unset( $schema_oclasses[ strtolower( $oclass ) ] );
} else {
$schema_attr = get_schema_attribute( $server_id, $attr );
$schema_attr = get_schema_attribute( $ldapserver, $attr );
}
include './header.php'; ?>
@@ -52,62 +59,77 @@ include './header.php'; ?>
<h3 class="title">
<?php echo $lang['add_new']; ?>
<b><?php echo htmlspecialchars($attr); ?></b>
<b><?php echo htmlspecialchars($attr); ?></b>
<?php echo $lang['value_to']; ?>
<b><?php echo htmlspecialchars($rdn); ?></b></h3>
<h3 class="subtitle">
<?php echo $lang['server']; ?>:
<b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['server']; ?>:
<b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( $dn ); ?></b></h3>
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b>
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b>
<?php echo $lang['values_for_attribute']; ?> <b><?php echo htmlspecialchars($attr); ?></b>:
<?php if( $is_jpeg_photo ) { ?>
<table><td>
<?php draw_jpeg_photos( $server_id, $dn, $attr, false ); ?>
</td></table>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<?php if ($num_current_values) { ?>
<?php if( $is_jpeg_photo ) { ?>
<table><tr><td>
<?php draw_jpeg_photos( $ldapserver, $dn, $attr, false ); ?>
</td></tr></table>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
<?php } else if( is_attr_binary( $server_id, $attr ) ) { ?>
<?php } else if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<ul>
<?php if( is_array( $vals ) ) { for( $i=1; $i<=count($vals); $i++ ) {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr&amp;value_num=" . ($i-1); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php } } else {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr"; ?>
<?php if( is_array( $vals ) ) {
for( $i=1; $i<=count($vals); $i++ ) {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s',
$server_id,$encoded_dn,$attr,$i-1); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php }
} else {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s',$server_id,$encoded_dn,$attr); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a></li>
<?php } ?>
</ul>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
<?php } else { ?>
<ul class="current_values">
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
foreach( $current_values as $val ) { ?>
<ul class="current_values">
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
foreach( $current_values as $val ) { ?>
<li><nobr><?php echo htmlspecialchars(($val)); ?></nobr></li>
<?php } ?>
<?php } ?>
<?php } else { ?>
<?php } else { ?>
<li><nobr><?php echo htmlspecialchars(($current_values)); ?></nobr></li>
<?php } ?>
<?php } ?>
</ul>
</ul>
<?php } ?>
<?php } else { ?>
<br />
<br />
<?php } ?>
<?php echo $lang['enter_value_to_add']; ?>
<br />
@@ -123,46 +145,50 @@ include './header.php'; ?>
<?php foreach( $schema_oclasses as $name => $oclass ) {
// exclude any structural ones, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
if ($oclass->type == "structural") continue;
?>
if ($oclass->type == "structural") continue; ?>
<option value="<?php echo $oclass->getName(); ?>"><?php echo $oclass->getName(); ?></option>
<?php } ?>
</select> <input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
</select>
<input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
<br />
<?php if( show_hints() ) { ?>
<small>
<br />
<img src="images/light.png" /><span class="hint"><?php echo $lang['new_required_attrs_note']; ?></span>
</small>
<?php } ?>
<?php }
<?php } else { ?>
} else { ?>
<form action="add_value.php" method="post" class="new_value" name="new_value_form"<?php
if( is_attr_binary( $ldapserver, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
<form action="add_value.php" method="post" class="new_value" name="new_value_form"<?php
if( is_attr_binary( $server_id, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="attr" value="<?php echo $encoded_attr; ?>" />
<?php if( is_attr_binary( $server_id, $attr ) ) { ?>
<input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" />
<?php } else { ?>
<?php if( is_multi_line_attr( $attr, $server_id ) ) { ?>
<textarea name="new_value" rows="3" cols="30"></textarea>
<?php } else { ?>
<input type="text" <?php
if( $schema_attr->getMaxLength() )
echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" ";
?>name="new_value" size="40" value="" /><?php
// draw the "browse" button next to this input box if this attr houses DNs:
if( is_dn_attr( $server_id, $attr ) ) draw_chooser_link( "new_value_form.new_value", false ); ?>
<?php } ?>
<?php } ?>
<?php if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" />
<?php } else {
if( is_multi_line_attr( $attr, $server_id ) ) { ?>
<textarea name="new_value" rows="3" cols="30"></textarea>
<?php } else { ?>
<input type="text" <?php if( $schema_attr->getMaxLength() ) echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" "; ?>name="new_value" size="40" value="" />
<?php // draw the "browse" button next to this input box if this attr houses DNs:
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "new_value_form.new_value", false ); ?>
<?php }
} ?>
<input type="submit" name="submit" value="<?php echo $lang['add_new_value']; ?>" />
<br />
@@ -176,7 +202,7 @@ include './header.php'; ?>
<?php } ?>
<?php if( $schema_attr->getMaxLength() ) { ?>
<small><b><?php echo $lang['maximum_length']; ?>:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> <?php echo $lang['characters']; ?></small><br />
<small><b><?php echo $lang['maximum_length']; ?>:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> <?php echo $lang['characters']; ?></small><br />
<?php } ?>
</form>

View File

@@ -1,4 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/blowfish.php,v 1.3 2005/02/25 13:44:05 wurley Exp $
/**
* The Cipher_blowfish:: class implements the Cipher interface enryption data
@@ -12,10 +13,13 @@
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Mike Cochrane <mike@graftonhall.co.nz>
* @version $Revision: 1.1 $
* @version $Revision: 1.3 $
* @since Horde 2.2
* @package horde.cipher
*/
/**
* @package horde.cipher
*/
// Change for phpMyAdmin by lem9:
//class Horde_Cipher_blowfish extends Horde_Cipher {
@@ -386,7 +390,7 @@ class Horde_Cipher_blowfish {
$parts = $this->_encryptBlock($L, $R);
return pack("NN", $parts['L'], $parts['R']);
}
/**
* Encrypt a block on data.
*

View File

@@ -1,10 +1,15 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/check_lang_files.php,v 1.9 2004/05/23 21:53:08 i18phpldapadmin Exp $
?>
<?php
// phpldapadmin/check_lang_files.php, $Revision: 1.9 $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/check_lang_files.php,v 1.11 2005/02/25 13:44:05 wurley Exp $
/**
* Test script to check that $lang variables in each language file.
* @package phpLDAPadmin
*/
/**
*/
echo "<html><head><title>phpldapadmin - check of translation</title></head><body>";
$CHECKLANG=$_REQUEST['CHECKLANG'];
include realpath( './lang/en.php' );
$english_lang = $lang;
@@ -39,6 +44,8 @@ if( false === $unused_keys )
echo "</ol>\n";
echo "<h1>Incomplete or Erroneous Language Files</h1>\n\n";
if ($CHECKLANG)
printf("<h1>Checking language files %s</h1>\n\n",$CHECKLANG);
echo "<h1><A HREF='?'>check all languages</A></h1>\n";
flush();
while( ( $file = readdir( $dir ) ) !== false ) {
@@ -48,13 +55,13 @@ while( ( $file = readdir( $dir ) ) !== false ) {
// Sanity check. Is this really a PHP file?
if( ! preg_match( "/\.php$/", $file ) )
continue;
echo "<h2><A HREF='?CHECKLANG=$file'>$file</A></h2>\n";
echo "<ol>\n";
unset( $lang );
$lang = array();
include realpath( $lang_dir.'/'.$file );
$has_errors = false;
if ($CHECKLANG=="" || $file===$CHECKLANG ){
echo "<h2><A HREF='?CHECKLANG=$file'>$file</A></h2>\n";
echo "<ol>\n";
foreach( $english_lang as $key => $string )
if( ! isset( $lang[ $key ] ) ) {
$has_errors = true;

View File

@@ -1,26 +1,30 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/collapse.php,v 1.11 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/collapse.php,v 1.12 2005/02/25 13:44:05 wurley Exp $
/*
* collapse.php
/**
* This script alters the session variable 'tree', collapsing it
* at the dn specified in the query string.
* at the dn specified in the query string.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* Note: this script is equal and opposite to expand.php
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
//$ldapserver = new LDAPServer($server_id);
//if( ! $ldapserver->haveAuthInfo())
// pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
initialize_session_tree();
@@ -35,10 +39,9 @@ $random_junk = md5( strtotime( 'now' ) . $time['usec'] );
// If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect
$id_session_param="";
if(SID != ""){
$id_session_param = "&".session_name()."=".session_id();
}
$id_session_param = "";
if (SID != "")
$id_session_param = "&".session_name()."=".session_id();
header( "Location:tree.php?foo=$random_junk#{$server_id}_{$encoded_dn}$id_session_param" );
?>

View File

@@ -1,10 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/common.php,v 1.55 2004/10/14 20:32:48 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/common.php,v 1.59 2005/03/16 11:20:23 wurley Exp $
/*
* common.php
/**
* Contains code to be executed at the top of each phpLDAPadmin page.
* include this file at the top of every PHP file.
*
* @package phpLDAPadmin
*/
// Work-around to get PLA to work in PHP5
@@ -19,8 +20,9 @@ else
// For PHP4
error_reporting( E_ALL );
// For PHP5 backward/forward compatibility
/**
* For PHP5 backward/forward compatibility
*/
if( ! defined( 'E_STRICT' ) ) {
define( 'E_STRICT', 2048 );
}
@@ -41,7 +43,7 @@ ob_start();
if( ! file_exists( realpath( './functions.php' ) ) ) {
ob_end_clean();
die( "Fatal error: Required file 'functions.php' does not exist." );
}
}
if( ! is_readable( realpath( './functions.php' ) ) ) {
ob_end_clean();
die( "Cannot read the file 'functions.php' its permissions are too strict." );
@@ -66,24 +68,31 @@ if( file_exists( realpath( './config.php' ) ) ) {
ob_end_clean();
}
$required_files = array(
$required_files = array(
// The base English language strings
'./lang/recoded/en.php',
// Functions for talking to LDAP servers.
'./server_functions.php',
// Functions for managing the session (pla_session_start(), etc.)
'./session_functions.php',
'./session_functions.php',
// Functions for reading the server schema (get_schema_object_classes(), etc.)
'./schema_functions.php',
'./schema_functions.php',
// Functions that can be defined by the user (preEntryDelete(), postEntryDelete(), etc.)
'./custom_functions.php',
// Functions for hashing passwords with OpenSSL binary (only if mhash not present)
'./emuhash_functions.php' );
'./emuhash_functions.php',
// Functions for sending syslog messages
'./syslog.php',
// Functions for running various hooks
'./hooks.php',
// Functions for timeout and automatic logout feature
'./timeout_functions.php' );
// Include each required file and check for sanity.
foreach( $required_files as $file_name ) {
file_exists( realpath( $file_name ) )
or pla_error( "Fatal error: Required file '$file_name' does not exist." );
is_readable( realpath( $file_name ) )
is_readable( realpath( $file_name ) )
or pla_error( "Fatal error: Cannot read the file '$file_name', its permissions are too strict." );
ob_start();
require_once realpath( $file_name );
@@ -91,7 +100,7 @@ foreach( $required_files as $file_name ) {
}
if( pla_session_start() )
postSessionInit();
run_hook ( 'post_session_init', array () );
// Language configuration. Auto or specified?
// Shall we attempt to auto-determine the language?
@@ -108,7 +117,7 @@ if( isset( $language ) ) {
$value=preg_split ("/[-]+/", $value );
$HTTP_LANGS2[$key]=$value[0];
}
$HTTP_LANGS = array_merge ($HTTP_LANGS1, $HTTP_LANGS2);
foreach( $HTTP_LANGS as $HTTP_LANG) {
// try to grab one after the other the language file
@@ -121,6 +130,7 @@ if( isset( $language ) ) {
}
}
}
} else {
// grab the language file configured in config.php
if( $language != null ) {
@@ -131,8 +141,8 @@ if( isset( $language ) ) {
ob_start();
include realpath( "lang/recoded/$language.php" );
ob_end_clean();
} else {
pla_error( "Could not read language file 'lang/recoded/$language.php'. Either the file
} else {
pla_error( "Could not read language file 'lang/recoded/$language.php'. Either the file
does not exist, or its permissions do not allow phpLDAPadmin to read it." );
}
}
@@ -144,7 +154,7 @@ if( ! isset( $templates ) || ! is_array( $templates ) )
$templates = array();
// Always including the 'custom' template (the most generic and flexible)
$templates['custom'] =
$templates['custom'] =
array( 'desc' => 'Custom',
'icon' => 'images/object.png',
'handler' => 'custom.php' );
@@ -152,6 +162,7 @@ $templates['custom'] =
// Strip slashes from GET, POST, and COOKIE variables if this
// PHP install is configured to automatically addslashes()
if ( get_magic_quotes_gpc() && ( ! isset( $slashes_stripped ) || ! $slashes_stripped ) ) {
array_stripslashes($_REQUEST);
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
@@ -159,4 +170,11 @@ if ( get_magic_quotes_gpc() && ( ! isset( $slashes_stripped ) || ! $slashes_stri
$slashes_stripped = true;
}
// Update $_SESSION[ 'activity' ]
// for timeout and automatic logout feature
if ( isset($_REQUEST['server_id']) ) {
$ldapserver = new LDAPServer($_REQUEST['server_id']);
if ( $ldapserver->haveAuthInfo() )
set_lastactivity( $ldapserver );
}
?>

559
compare.php Normal file
View File

@@ -0,0 +1,559 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare.php,v 1.4 2005/03/18 07:24:30 wurley Exp $
/**
* Compare two DNs - the destination DN is editable.
*
* Variables that come in as POST vars:
*/
/**
* @todo Dont allow adding values if the objectclass doesnt exist.
* @todo Show what objectclass needs to be added to add a value.
*/
require realpath( 'common.php' );
$dn_src = isset( $_POST['dn_src'] ) ? $_POST['dn_src'] : null;
$dn_dst = isset( $_POST['dn_dst'] ) ? $_POST['dn_dst'] : null;
$encoded_dn_src = rawurlencode( $dn_src );
$encoded_dn_dst = rawurlencode( $dn_dst );
$server_id_src = (isset($_POST['server_id_src']) ? $_POST['server_id_src'] : '');
$server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
$ldapserver_src = new LDAPServer($server_id_src);
if( ! $ldapserver_src->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$ldapserver_dst = new LDAPServer($server_id_dst);
if( ! $ldapserver_src->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
dn_exists( $ldapserver_src, $dn_src ) or pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn_src ) ) );
dn_exists( $ldapserver_dst, $dn_dst ) or pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn_dst ) ) );
$friendly_attrs = process_friendly_attr_table();
$attrs_src = get_object_attrs( $ldapserver_src, $dn_src, false, get_view_deref_setting() );
$attrs_dst = get_object_attrs( $ldapserver_dst, $dn_dst, false, get_view_deref_setting() );
# Get a list of all attributes.
$attrs_all = array_keys($attrs_src);
foreach ($attrs_dst as $key => $val)
if (! in_array($key,$attrs_all))
$attrs_all[] = $key;
include './header.php'; ?>
<body>
<table class="comp_dn" border=0>
<tr><td colspan=4>
<h3 class="title"><?php echo $lang['comparing']; ?></h3>
</td></tr>
<tr>
<td colspan=2>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_src->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars( ( $dn_src ) ); ?></b></h3>
</td>
<td colspan=2>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_dst->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars( ( $dn_dst ) ); ?></b></h3>
</td>
</tr>
<tr>
<td colspan=3><td align=right>
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="server_id_dst" value="<?php echo $ldapserver_src->server_id; ?>" />
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn_dst ); ?>" />
<input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars( $dn_src ); ?>" />
<input type="submit" value="<?php echo $lang['switch_entry']; ?>" />
</form>
</td>
</tr>
<?php if( ! $attrs_all || ! is_array( $attrs_all ) ) {
echo "<tr><td colspan=\"2\">(" . $lang['no_attributes'] . ")</td></tr>\n";
echo "</table>";
echo "</html>";
die();
}
sort( $attrs_all );
// Work through each of the attributes.
foreach( $attrs_all as $attr ) {
flush();
# If this is the DN, get the next attribute.
if( ! strcasecmp( $attr, 'dn' ) )
continue;
// Has the config.php specified that this attribute is to be hidden or shown?
if( is_attr_hidden( $ldapserver_src, $attr) || is_attr_hidden( $ldapserver_dst, $attr))
continue; ?>
<!-- Begin Attribute -->
<tr>
<?php foreach (array('src','dst') as $side) { ?>
<?php
if( $side == 'dst' && ! $ldapserver_dst->isReadOnly() ) { ?>
<form action="update_confirm.php" method="post" name="edit_form">
<input type="hidden" name="server_id" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn_dst; ?>" />
<?php }
$schema_attr_src = get_schema_attribute( $ldapserver_src, $attr, $dn_src );
$schema_attr_dst = get_schema_attribute( $ldapserver_dst, $attr, $dn_dst );
// Setup the $attr_note, which will be displayed to the right of the attr name (if any)
$attr_note = '';
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) ) {
$attr_display = $friendly_attrs[ strtolower( $attr ) ];
$attr_note = "<acronym title=\"" . sprintf( $lang['alias_for'], $attr_display, $attr ) . "\">alias</acronym>";
} else {
$attr_note = "";
$attr_display = $attr;
}
// is this attribute required by an objectClass?
$required_by = '';
switch ($side) {
case 'src':
$ldapserver = $ldapserver_src;
if( $schema_attr_src )
foreach( $schema_attr_src->getRequiredByObjectClasses() as $required )
if( isset($attrs_src['objectClass']) && in_array( strtolower( $required ), arrayLower( $attrs_src['objectClass'] ) ) )
$required_by .= $required . ' ';
// It seems that some LDAP servers (Domino) returns attributes in lower case?
elseif( isset($attrs_src['objectclass']) && in_array( strtolower( $required ), arrayLower( $attrs_src['objectclass'] ) ) )
$required_by .= $required . ' ';
break;
case 'dst':
$ldapserver = $ldapserver_dst;
if( $schema_attr_dst )
foreach( $schema_attr_dst->getRequiredByObjectClasses() as $required )
if( isset($attrs_dst['objectClass']) && in_array( strtolower( $required ), arrayLower( $attrs_dst['objectClass'] ) ) )
$required_by .= $required . ' ';
// It seems that some LDAP servers (Domino) returns attributes in lower case?
elseif( isset($attrs_dst['objectclass']) && in_array( strtolower( $required ), arrayLower( $attrs_dst['objectclass'] ) ) )
$required_by .= $required . ' ';
break;
}
if( $required_by ) {
if( trim( $attr_note ) )
$attr_note .= ', ';
$attr_note .= "<acronym title=\"" . sprintf( $lang['required_for'], $required_by ) . "\">" . $lang['required'] . "</acronym>&nbsp;";
} ?>
<td class="attr">
<?php $schema_href="schema.php?server_id=$server_id_src&amp;view=attributes&amp;viewvalue=" . real_attr_name($attr); ?>
<b><a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
</td>
<td class="attr_note">
<sup><small><?php echo $attr_note; ?></small></sup>
<?php if( is_attr_read_only( $ldapserver, $attr ) ) { ?>
<small>(<acronym title="<?php echo $lang['read_only_tooltip']; ?>"><?php echo $lang['read_only']; ?></acronym>)</small>
<?php } ?>
</td>
<?php } ?>
</tr>
<!-- End of Attribute -->
<!-- Begin Values -->
<tr>
<?php
foreach (array('src','dst') as $side) {
$vals = null; ?>
<td>&nbsp</td><td class="val">
<?php // If this attribute isnt set, then show a blank.
$toJump = 0;
switch ($side) {
case 'src':
if (! isset($attrs_src[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
$toJump = 1;
continue;
} else
$vals = $attrs_src[$attr];
$ldapserver = $ldapserver_src;
break;
case 'dst':
if (! isset($attrs_dst[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
$toJump = 1;
continue;
} else
$vals = $attrs_dst[$attr];
$ldapserver = $ldapserver_dst;
break;
}
if ($toJump) continue;
/*
* Is this attribute a jpegPhoto?
*/
if( is_jpeg_photo( $ldapserver, $attr ) ) {
switch ($side) {
case 'src':
// Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet)
draw_jpeg_photos( $ldapserver, $dn_src, $attr, false );
break;
case 'dst':
if( $ldapserver_dst->isReadOnly() || is_attr_read_only( $ldapserver_dst, $attr ) )
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, false );
else
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, true );
break;
}
// proceed to the next attribute
echo "</td>\n";
continue;
}
/*
* Is this attribute binary?
*/
if( is_attr_binary( $ldapserver, $attr ) ) {
switch ($side) {
case 'src':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_src,$attr);
break;
case 'dst':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_dst,$attr);
break;
}
?>
<small>
<?php echo $lang['binary_value']; ?><br />
<?php if( count( $vals ) > 1 ) { for( $i=1; $i<=count($vals); $i++ ) { ?>
<a href="<?php echo $href . "&amp;value_num=$i"; ?>"><img
src="images/save.png" /> <?php echo $lang['download_value']; ?>(<?php echo $i; ?>)</a><br />
<?php } } else { ?>
<a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a><br />
<?php }
if( $side == 'dst' && ! $ldapserver_dst->isReadOnly() && ! is_attr_read_only( $ldapserver, $attr ) ) { ?>
<a href="javascript:deleteAttribute( '<?php echo $attr; ?>' );" style="color:red;"><img src="images/trash.png" /> <?php echo $lang['delete_attribute']; ?></a>
<?php } ?>
</small>
</td>
<?php continue;
}
/*
* Note: at this point, the attribute must be text-based (not binary or jpeg)
*/
/*
* If this server is in read-only mode or this attribute is configured as read_only,
* simply draw the attribute values and continue.
*/
if( $side == 'dst' && ($ldapserver->isReadOnly() || is_attr_read_only( $ldapserver, $attr )) ) {
if( is_array( $vals ) ) {
foreach( $vals as $i => $val ) {
if( trim( $val ) == "" )
echo "<span style=\"color:red\">[" . $lang['empty'] . "]</span><br />\n";
elseif( 0 == strcasecmp( $attr, 'userPassword' ) && obfuscate_password_display() )
echo preg_replace( '/./', '*', $val ) . "<br />";
else
echo htmlspecialchars( $val ) . "<br />";
}
} else {
if( 0 == strcasecmp( $attr, 'userPassword' ) && obfuscate_password_display() )
echo preg_replace( '/./', '*', $vals ) . "<br />";
else
echo $vals . "<br />";
}
echo "</td>";
continue;
}
/*
* Is this a userPassword attribute?
*/
if( ! strcasecmp( $attr, 'userpassword' ) ) {
$user_password = $vals[0];
$enc_type = get_enc_type( $user_password );
// Set the default hashing type if the password is blank (must be newly created)
if( $user_password == '' ) {
$enc_type = get_default_hash( $server_id );
}
if ($side == 'dst') { ?>
<input type="hidden" name="old_values[userpassword]" value="<?php echo htmlspecialchars($user_password); ?>" />
<!-- Special case of enc_type to detect changes when user changes enc_type but not the password value -->
<input size="38" type="hidden" name="old_enc_type" value="<?php echo ($enc_type==''?'clear':$enc_type); ?>" />
<?php }
if( obfuscate_password_display() || is_null( $enc_type ) ) {
echo htmlspecialchars( preg_replace( "/./", "*", $user_password ) );
} else {
echo htmlspecialchars( $user_password );
} ?>
<br />
<?php if ($side == 'dst') { ?>
<input style="width: 260px" type="password" name="new_values[userpassword]" value="<?php echo htmlspecialchars( $user_password ); ?>" />
<?php echo enc_type_select_list($enc_type);
} ?>
<br />
<script language="javascript">
<!--
function passwordComparePopup()
{
mywindow = open( 'password_checker.php', 'myname', 'resizable=no,width=450,height=200,scrollbars=1' );
mywindow.location.href = 'password_checker.php?hash=<?php echo base64_encode($user_password); ?>&base64=true';
if( mywindow.opener == null )
mywindow.opener = self;
}
-->
</script>
<small><a href="javascript:passwordComparePopup()"><?php echo $lang['t_check_pass']; ?></a></small>
</td>
<?php continue;
}
/*
* Is this a boolean attribute?
*/
if( is_attr_boolean( $ldapserver, $attr) ) {
$val = $vals[0];
if ($side = 'dst') {?>
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<select name="new_values[<?php echo htmlspecialchars( $attr ); ?>]">
<option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo $lang['true']; ?></option>
<option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo $lang['false']; ?></option>
<option value="">(<?php echo $lang['none_remove_value']; ?>)</option>
</select>
<?php } ?>
</td>
<?php continue;
}
/*
* End of special case attributes (non plain text).
*/
foreach( $vals as $i => $val ) {
if ($side == 'dst') {
$input_name = "new_values[" . htmlspecialchars( $attr ) . "][$i]";
// We smack an id="..." tag in here that doesn't have [][] in it to allow the
// draw_chooser_link() to identify it after the user clicks.
$input_id = "new_values_" . htmlspecialchars($attr) . "_" . $i; ?>
<!-- The old_values array will let update.php know if the entry contents changed
between the time the user loaded this page and saved their changes. -->
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<?php }
// Is this value is a structural objectClass, make it read-only
if( 0 == strcasecmp( $attr, 'objectClass' ) ) { ?>
<a title="<?php echo $lang['view_schema_for_oclass']; ?>" href="schema.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;view=objectClasses&amp;viewvalue=<?php echo htmlspecialchars( $val ); ?>"><img src="images/info.png" /></a>
<?php $schema_object = get_schema_objectclass( $ldapserver, $val);
if ($schema_object->type == 'structural') {
echo "$val <small>(<acronym title=\"" . sprintf( $lang['structural_object_class_cannot_remove'] ) . "\">" . $lang['structural'] . "</acronym>)</small><br />";
if ($side == 'dst') {?>
<input type="hidden" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>" value="<?php echo htmlspecialchars($val); ?>" />
<?php }
continue;
}
}
if( is_dn_string( $val ) || is_dn_attr( $ldapserver, $attr ) ) { ?>
<a title="<?php echo sprintf( $lang['go_to_dn'], htmlspecialchars($val) ); ?>" href="edit.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo rawurlencode($val); ?>"><img style="vertical-align: top" src="images/go.png" /></a>
<?php } elseif( is_mail_string( $val ) ) { ?>
<a href="mailto:<?php echo htmlspecialchars($val); ?>"><img style="vertical-align: center" src="images/mail.png" /></a>
<?php } elseif( is_url_string( $val ) ) { ?>
<a href="<?php echo htmlspecialchars($val); ?>" target="new"><img style="vertical-align: center" src="images/dc.png" /></a>
<?php }
if( is_multi_line_attr( $attr, $val, $ldapserver->server_id ) ) {
if ($side == 'dst') {?>
<textarea class="val" rows="3" cols="30" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>"><?php echo htmlspecialchars($val); ?></textarea>
<?php } else {
echo htmlspecialchars($val);
}
} else {
if ($side == 'dst') {?>
<input type="text" class="val" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>" value="<?php echo htmlspecialchars($val); ?>" />
<?php } else {
echo htmlspecialchars($val);
}
}
// draw a link for popping up the entry browser if this is the type of attribute
// that houses DNs.
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "edit_form.$input_id", false ); ?>
<br />
<?php } ?>
</td>
<?php } /* end foreach value */ ?>
</tr>
<?php
/* Draw the "add value" link under the list of values for this attributes */
if (! $ldapserver_dst->isReadOnly()) {
// First check if the required objectClass is in this DN
$isOK = 0;
$src_oclass = array();
$attr_object = get_schema_attribute( $ldapserver_dst, $attr, $dn_dst );
foreach ($attr_object->used_in_object_classes as $oclass) {
if (in_array(strtolower($oclass),arrayLower($attrs_dst['objectClass']))) {
$isOK = 1;
break;
} else {
// Find oclass that the source has that provides this attribute.
if (in_array($oclass,$attrs_src['objectClass']))
$src_oclass[] = $oclass;
}
}
print "<tr><td colspan=2>&nbsp</td><td>&nbsp;</td><td>";
if (! $isOK) {
if (count($src_oclass) == 1) {
$add_href = "add_oclass_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&new_oclass=$src_oclass[0]";
} else {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=objectClass";
}
if ($attr == 'objectClass')
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,$lang['add_oclass_and_attrs'],$lang['add_value']);
else
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,sprintf($lang['need_oclass'], implode(" ",$src_oclass)),$lang['add_new_objectclass']);
} else {
if(! $schema_attr_dst->getIsSingleValue() || (! isset($vals))) {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=" . rawurlencode( $attr );
echo "<div class=\"add_value\">(<a href=\"$add_href\" title=\"" . sprintf( $lang['add_value_tooltip'], $attr ) . "\">" . $lang['add_value'] . "</a>)</div>\n";
}
}
}
print "</td></tr>"; ?>
</td>
<?php flush(); ?>
</tr>
<?php } /* End foreach( $attrs as $attr => $vals ) */
if( ! $ldapserver_dst->isReadOnly( ) ) { ?>
<td colspan="2">&nbsp</td><td colspan=2><center><input type="submit" value="<?php echo $lang['save_changes']; ?>" /></center></td></tr></form>
<?php } ?>
</table>
<?php /* If this entry has a binary attribute, we need to provide a form for it to submit when deleting it. */ ?>
<script language="javascript">
//<!--
function deleteAttribute( attrName )
{
if( confirm( "<?php echo $lang['really_delete_attribute']; ?> '" + attrName + "'?" ) ) {
document.delete_attribute_form.attr.value = attrName;
document.delete_attribute_form.submit();
}
}
//-->
</script>
<!-- This form is submitted by JavaScript when the user clicks "Delete attribute" on a binary attribute -->
<form name="delete_attribute_form" action="delete_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn_dst; ?>" />
<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />
</form>
</body>
</html>

82
compare_form.php Normal file
View File

@@ -0,0 +1,82 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare_form.php,v 1.1 2005/03/12 14:03:36 wurley Exp $
/**
* Compares to DN entries side by side.
*
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($server_id,true,'server_id_dst');
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['compare_dn']. '&nbsp;' . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b>
<?php if ($dn) { ?>
&nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b>
<?php } ?>
</h3>
<center>
<?php echo $lang['compare']; ?> <b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['with']; ?>:<br />
<br />
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $server_id; ?>" />
<table style="border-spacing: 10px">
<tr>
<?php if (! $dn) { ?>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['compf_source_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_src" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'compare_form.dn_src', 'true', $rdn ); ?></td>
</td>
<?php } else { ?>
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php } ?>
</tr>
<tr>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_dst" size="45" value="" />
<?php draw_chooser_link( 'compare_form.dn_dst', 'true', '' ); ?></td>
</td>
</tr>
<tr>
<td><?php echo $lang['copyf_dest_server']?>:</td>
<td><?php echo $select_server_html; ?></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['compare']; ?>" /></td>
</tr>
</table>
</form>
</center>
</body>
</html>

View File

@@ -12,7 +12,7 @@
*/
/**
* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
* to a big random string.
*/
$blowfish_secret = '';
@@ -20,63 +20,63 @@ $blowfish_secret = '';
// Your LDAP servers
$i=0;
$servers = array();
$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in
the tree viewer and throughout phpLDAPadmin to
$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in
the tree viewer and throughout phpLDAPadmin to
identify this LDAP server to users. */
$servers[$i]['host'] = 'ldap.example.com'; /* Examples:
'ldap.example.com',
$servers[$i]['host'] = 'ldap.example.com'; /* Examples:
'ldap.example.com',
'ldaps://ldap.example.com/',
'ldapi://%2fusr%local%2fvar%2frun%2fldapi'
(Unix socket at /usr/local/var/run/ldap)
Note: Leave 'host' blank to make phpLDAPadmin
ignore this server. */
$servers[$i]['base'] = 'dc=example,dc=com'; /* The base DN of your LDAP server. Leave this
$servers[$i]['base'] = 'dc=example,dc=com'; /* The base DN of your LDAP server. Leave this
blank to have phpLDAPadmin auto-detect it for you. */
$servers[$i]['port'] = 389; /* The port your LDAP server listens on
$servers[$i]['port'] = 389; /* The port your LDAP server listens on
(no quotes). 389 is standard. */
$servers[$i]['auth_type'] = 'config'; /* Three options for auth_type:
1. 'cookie': you will login via a web form,
and a client-side cookie will store your
login dn and password.
$servers[$i]['auth_type'] = 'config'; /* Three options for auth_type:
1. 'cookie': you will login via a web form,
and a client-side cookie will store your
login dn and password.
2. 'session': same as cookie but your login dn
and password are stored on the web server in
a persistent session variable.
3. 'config': specify your login dn and password
3. 'config': specify your login dn and password
here in this config file. No login will be
required to use phpLDAPadmin for this server.
Choose wisely to protect your authentication
information appropriately for your situation. If
required to use phpLDAPadmin for this server.
Choose wisely to protect your authentication
information appropriately for your situation. If
you choose 'cookie', your cookie contents will be
encrypted using blowfish and the secret your specify
above as $blowfish_secret. */
$servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com';
/* The DN of the user for phpLDAPadmin to bind with.
For anonymous binds or 'cookie' or 'session' auth_types,
/* The DN of the user for phpLDAPadmin to bind with.
For anonymous binds or 'cookie' or 'session' auth_types,
leave the login_dn and login_pass blank. If you specify a
login_attr in conjunction with a cookie or session auth_type,
then you can also specify the login_dn/login_pass here for
searching the directory for users (ie, if your LDAP server
searching the directory for users (ie, if your LDAP server
does not allow anonymous binds. */
$servers[$i]['login_pass'] = 'secret'; /* Your LDAP password. If you specified an empty login_dn above, this
MUST also be blank. */
$servers[$i]['tls'] = false; /* Use TLS (Transport Layer Security) to connect to the LDAP
$servers[$i]['tls'] = false; /* Use TLS (Transport Layer Security) to connect to the LDAP
server. */
$servers[$i]['low_bandwidth'] = false; /* If the link between your web server and this LDAP server is
slow, it is recommended that you set 'low_bandwidth' to true.
This will cause phpLDAPadmin to forego some "fancy" features
to conserve bandwidth. */
$servers[$i]['default_hash'] = 'crypt'; /* Default password hashing algorithm.
One of md5, ssha, sha, md5crpyt, smd5, blowfish, crypt or
One of md5, ssha, sha, md5crpyt, smd5, blowfish, crypt or
leave blank for now default algorithm. */
$servers[$i]['login_attr'] = 'dn'; /* If you specified 'cookie' or 'session' as the auth_type above,
you can optionally specify here an attribute
$servers[$i]['login_attr'] = 'dn'; /* If you specified 'cookie' or 'session' as the auth_type above,
you can optionally specify here an attribute
to use when logging in. If you enter 'uid'
and login as 'dsmith', phpLDAPadmin will
and login as 'dsmith', phpLDAPadmin will
search for (uid=dsmith) and log in as that user. Leave
blank or specify 'dn' to use full DN for
blank or specify 'dn' to use full DN for
logging in. Note also that if your LDAP server requires
you to login to perform searches, you can enter
the DN to use when searching in 'login_dn' and
the DN to use when searching in 'login_dn' and
'login_pass' above. You may also specify 'string', in which case
you can provide a string to use for logging users
in. See 'login_string' directly below. */
@@ -88,34 +88,34 @@ $servers[$i]['login_string'] = 'uid=<username>,ou=People,dc=example,dc=com';
"uid=dsmith,ou=People,dc=example,dc=com", then I can specify a string
"uid=<username>,ou=People,dc=example,dc=com" and my users can login with
their user names alone, i.e., "dsmith" in this case. */
$servers[$i]['login_class'] = ''; /* If 'login_attr' is used above such that phpLDAPadmin will
search for your DN at login, you may restrict the search to
a specific objectClass. E.g., set this to 'posixAccount' or
$servers[$i]['login_class'] = ''; /* If 'login_attr' is used above such that phpLDAPadmin will
search for your DN at login, you may restrict the search to
a specific objectClass. E.g., set this to 'posixAccount' or
'inetOrgPerson', depending upon your setup. */
$servers[$i]['read_only'] = false; /* Specify true If you want phpLDAPadmin to not
display or permit any modification to the
display or permit any modification to the
LDAP server. */
$servers[$i]['show_create'] = true; /* Specify false if you do not want phpLDAPadmin to
$servers[$i]['show_create'] = true; /* Specify false if you do not want phpLDAPadmin to
draw the 'Create new' links in the tree viewer. */
$servers[$i]['enable_auto_uid_numbers'] = false;
/* This feature allows phpLDAPadmin to
$servers[$i]['enable_auto_uid_numbers'] = false;
/* This feature allows phpLDAPadmin to
automatically determine the next
available uidNumber for a new entry. */
$servers[$i]['auto_uid_number_mechanism'] = 'search';
$servers[$i]['auto_uid_number_mechanism'] = 'search';
/* The mechanism to use when finding the next available uidNumber.
Two possible values: 'uidpool' or 'search'. The 'uidpool'
mechanism uses an existing uidPool entry in your LDAP server
to blindly lookup the next available uidNumber. The 'search'
to blindly lookup the next available uidNumber. The 'search'
mechanism searches for entries with a uidNumber value and finds
the first available uidNumber (slower). */
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
/* The DN of the search base when the 'search'
mechanism is used above. */
$servers[$i]['auto_uid_number_min'] = 1000;
/* The minimum number to use when searching for the next
available UID number (only when 'search' is used for
available UID number (only when 'search' is used for
auto_uid_number_mechanism' */
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
/* The DN of the uidPool entry when 'uidpool'
mechanism is used above. */
$servers[$i]['auto_uid_number_search_dn'] = '';
@@ -140,6 +140,22 @@ $servers[$i]['unique_attrs_dn'] = '';
$servers[$i]['unique_attrs_dn_pass'] = '';
/* The password for the dn above */
// $servers[$i]['only_login_allowed_dns'] = array( 'uid=stran,ou=People,dc=example,dc=com',
// '(&(gidNumber=811)(objectClass=groupOfNames))',
// '(|(uidNumber=200)(uidNumber=201))',
// 'cn=callcenter,ou=Group,dc=example,dc=com' );
/* If you set this, then only these DNs are allowed to log in.
This array can contain individual users, groups or ldap search filter(s).
Keep in mind that the user has not authenticated yet, so this will be an
anonymous search to the LDAP server, so make your ACLs allow these searches
to return results! */
// $servers[$i]['visible'] = false;
/* Set this if you dont want this LDAP server to show in the tree */
// $servers[$i]['session_timeout'] = 5;
/* This is the time out value in minutes for the server.
After as many minutes of inactivity you will be automatically logged out.
If not set, the default value will be ( session_cache_expire()-1 ) */
// If you want to configure additional LDAP servers, do so below.
$i++;
$servers[$i]['name'] = 'Another server';
@@ -157,15 +173,17 @@ $servers[$i]['login_class'] = '';
$servers[$i]['read_only'] = false;
$servers[$i]['show_create'] = true;
$servers[$i]['enable_auto_uid_numbers'] = false;
$servers[$i]['auto_uid_number_mechanism'] = 'search';
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
$servers[$i]['auto_uid_number_mechanism'] = 'search';
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
$servers[$i]['auto_uid_number_min'] = 1000;
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
$servers[$i]['unique_attrs_dn'] = '';
$servers[$i]['unique_attrs_dn_pass'] = '';
// If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")
// The temporary storage directory where we will put jpegPhoto data
// This directory must be readable and writable by your web server
// This directory must be readable and writable by your web server
$jpeg_temp_dir = "/tmp"; // Example for Unix systems
//$jpeg_temp_dir = "c:\\temp"; // Example for Windows systems
@@ -173,6 +191,9 @@ $jpeg_temp_dir = "/tmp"; // Example for Unix systems
/** Appearance and Behavior **/
/** **/
// Whenever we display a date use this format.
$date_format = "%A %e %B %Y";
// Set this to true if you want to hide the Request New Feature and Report bugs.
$hide_configuration_management = false;
@@ -201,21 +222,21 @@ $tree_display_format = '%rdn';
// Aliases and Referrrals
//
// Similar to ldapsearh's -a option, the following options allow you to configure
// how phpLDAPadmin will treat aliases and referrals in the LDAP tree.
// Similar to ldapsearh's -a option, the following options allow you to configure
// how phpLDAPadmin will treat aliases and referrals in the LDAP tree.
// For the following four settings, avaialable options include:
//
// LDAP_DEREF_NEVER - aliases are never dereferenced (eg, the contents of
// LDAP_DEREF_NEVER - aliases are never dereferenced (eg, the contents of
// the alias itself are shown and not the referenced entry).
// LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but
// LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but
// not when locating the base object of the search.
// LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base
// LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base
// object but not during the search.
// LDAP_DEREF_ALWAYS - aliases should be dereferenced always (eg, the contents
// LDAP_DEREF_ALWAYS - aliases should be dereferenced always (eg, the contents
// of the referenced entry is shown and not the aliasing entry)
// How to handle references and aliases in the search form. See above for options.
$search_deref = LDAP_DEREF_ALWAYS;
$search_deref = LDAP_DEREF_ALWAYS;
// How to handle references and aliases in the tree viewer. See above for options.
$tree_deref = LDAP_DEREF_NEVER;
@@ -227,8 +248,8 @@ $export_deref = LDAP_DEREF_NEVER;
$view_deref = LDAP_DEREF_NEVER;
// The language setting. If you set this to 'auto', phpLDAPadmin will
// attempt to determine your language automatically. Otherwise, available
// The language setting. If you set this to 'auto', phpLDAPadmin will
// attempt to determine your language automatically. Otherwise, available
// lanaguages are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
// Localization is not complete yet, but most strings have been translated.
// Please help by writing language files. See lang/en.php for an example.
@@ -242,12 +263,12 @@ $enable_mass_delete = false;
// when a user logs in to a server anonymously
$anonymous_bind_implies_read_only = true;
// Set to true if you want phpLDAPadmin to redirect anonymous
// Set to true if you want phpLDAPadmin to redirect anonymous
// users to a search form with no tree viewer on the left after
// logging in.
$anonymous_bind_redirect_no_tree = false;
// If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last
// If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last
// (default is 0 seconds, which expires when you close the browser)
$cookie_time = 0; // seconds
@@ -268,7 +289,7 @@ $search_result_size_limit = 50;
// Set this to 'list' to see "Google" style formatted search results.
$default_search_display = 'list';
// If true, display all password hash values as "******". Note that clear-text
// If true, display all password hash values as "******". Note that clear-text
// passwords will always be displayed as "******", regardless of this setting.
$obfuscate_password_display = false;
@@ -277,7 +298,7 @@ $obfuscate_password_display = false;
/** **/
// Which attributes to include in the drop-down menu of the simple search form (comma-separated)
// Change this to suit your needs for convenient searching. Be sure to change the corresponding
// Change this to suit your needs for convenient searching. Be sure to change the corresponding
// list below ($search_attributes_display)
$search_attributes = "uid, cn, gidNumber, objectClass, telephoneNumber, mail, street";
@@ -285,9 +306,9 @@ $search_attributes = "uid, cn, gidNumber, objectClass, telephoneNumber, mail, st
// for your search attributes, do so here. Both lists must have the same number of entries.
$search_attributes_display = "User Name, Common Name, Group ID, Object Class, Phone Number, Email, Address";
// The list of attributes to display in each search result entry.
// The list of attributes to display in each search result entry.
// Note that you can add * to the list to display all attributes
$search_result_attributes = "cn, sn, uid, postalAddress, telephoneNumber";
$search_result_attributes = "cn, sn, uid, postalAddress, telephoneNumber";
// You can re-arrange the order of the search criteria on the simple search form by modifying this array
// You cannot however change the names of the criteria. Criteria names will be translated at run-time.
@@ -298,9 +319,9 @@ $search_criteria_options = array( "equals", "starts with", "contains", "ends wit
$multi_line_attributes = array( "postalAddress", "homePostalAddress", "personalSignature" );
// A list of syntax OIDs which support multi-line attribute values:
$multi_line_syntax_oids = array(
$multi_line_syntax_oids = array(
// octet string syntax OID:
"1.3.6.1.4.1.1466.115.121.1.40",
"1.3.6.1.4.1.1466.115.121.1.40",
// postal address syntax OID:
"1.3.6.1.4.1.1466.115.121.1.41" );
@@ -316,6 +337,28 @@ $friendly_attrs = array();
$friendly_attrs[ 'facsimileTelephoneNumber' ] = 'Fax';
$friendly_attrs[ 'telephoneNumber' ] = 'Phone';
/** **/
/** support for attrs display order **/
/** **/
// Use this array if you want to have your attributes displayed in a specific order.
// You can use default attribute names or their fridenly names.
// For example, "sn" will be displayed right after "givenName". All the other attributes
// that are not specified in this array will be displayed after in alphabetical order.
// $attrs_display_order = array(
// "givenName",
// "sn",
// "cn",
// "displayName",
// "uid",
// "uidNumber",
// "gidNumber",
// "homeDirectory",
// "mail",
// "userPassword"
// );
/** **/
/** Hidden attributes **/
/** **/

179
copy.php
View File

@@ -1,48 +1,59 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy.php,v 1.25 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy.php,v 1.31 2005/03/14 11:46:24 wurley Exp $
/*
* copy.php
/**
* Copies a given object to create a new one.
*
* Vars that come in as POST vars
* - source_dn (rawurlencoded)
* - new_dn (form element)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$source_dn = $_POST['old_dn'];
$dest_dn = $_POST['new_dn'];
$encoded_dn = rawurlencode( $source_dn );
$source_server_id = $_POST['server_id'];
$dest_server_id = $_POST['dest_server_id'];
$do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false;
$source_server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$dest_server_id = (isset($_POST['dest_server_id']) ? $_POST['dest_server_id'] : '');
if( is_server_read_only( $dest_server_id ) )
$ldapserver_source = new LDAPServer($source_server_id);
$ldapserver_dest = new LDAPServer($dest_server_id);
if( $ldapserver_dest->isReadOnly() )
pla_error( $lang['copy_server_read_only'] );
check_server_id( $source_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $source_server_id ) or pla_error( $lang['not_enough_login_info'] );
check_server_id( $dest_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $dest_server_id ) or pla_error( $lang['not_enough_login_info'] );
if( ! $ldapserver_source->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if( ! $ldapserver_dest->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$source_dn = $_POST['old_dn'];
$dest_dn = $_POST['new_dn'];
$do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false;
$remove = ( isset( $_POST['remove'] ) && $_POST['remove'] == 'yes' ) ? true : false;
$encoded_dn = rawurlencode( $source_dn );
include './header.php';
/* Error checking */
if( 0 == strlen( trim( $dest_dn ) ) )
pla_error( $lang['copy_dest_dn_blank'] );
if( pla_compare_dns( $source_dn,$dest_dn ) == 0 && $source_server_id == $dest_server_id )
pla_error( $lang['copy_source_dest_dn_same'] );
if( dn_exists( $dest_server_id, $dest_dn ) )
if( dn_exists( $ldapserver_dest, $dest_dn ) )
pla_error( sprintf( $lang['copy_dest_already_exists'], pretty_print_dn( $dest_dn ) ) );
if( ! dn_exists( $dest_server_id, get_container( $dest_dn ) ) )
if( ! dn_exists( $ldapserver_dest, get_container( $dest_dn ) ) )
pla_error( sprintf( $lang['copy_dest_container_does_not_exist'], pretty_print_dn( get_container($dest_dn) ) ) );
if( $do_recursive ) {
$filter = isset( $_POST['filter'] ) ? $_POST['filter'] : '(objectClass=*)';
// build a tree similar to that of the tree browser to give to r_copy_dn
$snapshot_tree = array();
echo "<body>\n";
@@ -51,105 +62,103 @@ if( $do_recursive ) {
echo "<br /><br />";
echo "<small>\n";
echo $lang['copy_building_snapshot'];
flush();
build_tree( $source_server_id, $source_dn, $snapshot_tree, $filter );
build_tree( $ldapserver_source, $source_dn, $snapshot_tree, $filter );
echo " <span style=\"color:green\">" . $lang['success'] . "</span><br />\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
$copy_result = r_copy_dn( $source_server_id, $dest_server_id, $snapshot_tree, $source_dn, $dest_dn );
$copy_result = r_copy_dn( $ldapserver_source, $ldapserver_dest, $snapshot_tree, $source_dn, $dest_dn );
echo "</small>\n";
} else {
$copy_result = copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn );
$copy_result = copy_dn( $ldapserver_source, $source_dn, $ldapserver_dest, $dest_dn );
}
if( $copy_result )
{
if( $copy_result ) {
$edit_url="edit.php?server_id=$dest_server_id&dn=" . rawurlencode( $dest_dn );
$new_rdn = get_rdn( $dest_dn );
$container = get_container( $dest_dn );
if( array_key_exists( 'tree', $_SESSION ) )
{
// do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
if( array_key_exists( 'tree', $_SESSION ) ) {
// do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
if( isset( $tree[$dest_server_id][$container] ) )
{
if( isset( $tree[$dest_server_id][$container] ) ) {
$tree[$dest_server_id][$container][] = $dest_dn;
sort( $tree[ $dest_server_id ][ $container ] );
$tree_icons[$dest_server_id][$dest_dn] = get_icon( $dest_server_id, $dest_dn );
$tree_icons[$dest_server_id][$dest_dn] = get_icon( $ldapserver_dest, $dest_dn );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
}
}
} ?>
?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<center>
<?php echo $lang['copy_successful_like_to']. "<a href=\"$edit_url\">" . $lang['copy_view_new_entry'] ."</a>"?>
</center>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
</script>
</body>
</html>
<?php if ($remove) {
sleep(2);
$delete_url = "delete_form.php?server_id=$dest_server_id&dn=" .rawurlencode( $source_dn ); ?>
<!-- redirect to the delete form -->
<script language="javascript">
parent.left_frame.location.reload();
parent.right_frame.location="<?php echo $delete_url; ?>"
</script>
<br />
<center>
<?php echo $lang['copy_successful_like_to']. "<a href=\"$edit_url\">" . $lang['copy_view_new_entry'] ."</a>"?>
</center>
<br />
<br />
<br />
<br />
</body>
</html>
<?php
}
else
{
<?php }
} else {
exit;
}
function r_copy_dn( $source_server_id, $dest_server_id, $tree, $root_dn, $dest_dn )
{
function r_copy_dn( $ldapserver_source, $ldapserver_dest, $tree, $root_dn, $dest_dn ) {
global $lang;
echo "<nobr>". $lang['copy_copying'] . htmlspecialchars( $root_dn ) . "...";
flush();
$copy_result = copy_dn( $source_server_id, $root_dn, $dest_server_id, $dest_dn );
if( ! $copy_result ) {
$copy_result = copy_dn( $ldapserver_source, $root_dn, $ldapserver_dest, $dest_dn );
if( ! $copy_result )
return false;
}
echo "<span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
flush();
$children = isset( $tree[ $root_dn ] ) ? $tree[ $root_dn ] : null;
if( is_array( $children ) && count( $children ) > 0 )
{
if( is_array( $children ) && count( $children ) > 0 ) {
foreach( $children as $child_dn ) {
$child_rdn = get_rdn( $child_dn );
$new_dest_dn = $child_rdn . ',' . $dest_dn;
r_copy_dn( $source_server_id, $dest_server_id, $tree, $child_dn, $new_dest_dn );
r_copy_dn( $ldapserver_source, $ldapserver_dest, $tree, $child_dn, $new_dest_dn );
}
}
else
{
} else {
return true;
}
return true;
}
function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
{
global $ds, $lang;
function copy_dn( $ldapserver_source, $source_dn, $ldapserver_dest, $dest_dn ) {
global $lang;
$ds = pla_ldap_connect( $dest_server_id );
pla_ldap_connection_is_error( $ds );
$attrs = get_object_attrs( $ldapserver_source, $source_dn );
$attrs = get_object_attrs( $source_server_id, $source_dn );
$new_entry = $attrs;
// modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value.
$rdn_attr = substr( $dest_dn, 0, strpos( $dest_dn, '=' ) );
@@ -160,27 +169,39 @@ function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
unset( $new_entry['dn'] );
// Check the user-defined custom call back first
if( true === preEntryCreate( $dest_server_id, $dest_dn, $new_entry ) ) {
$add_result = @ldap_add( $ds, $dest_dn, $new_entry );
if( ! $add_result ) {
postEntryCreate( $dest_server_id, $dest_dn, $new_entry );
echo "</small><br /><br />";
pla_error( $lang['copy_failed'] . $dest_dn, ldap_error( $ds ), ldap_errno( $ds ) );
}
if( true === run_hook ( 'pre_entry_create',
array ( 'server_id' => $ldapserver_dest->server_id, 'dn' => $dest_dn, 'attrs' => $new_entry ) ) ) {
$add_result = @ldap_add( $ldapserver_dest->connect(), $dest_dn, $new_entry );
if( ! $add_result ) {
run_hook ( 'post_entry_create', array ( 'server_id' => $ldapserver_dest->server_id,
'dn' => $dest_dn, 'attrs' => $new_entry ) );
echo "</small><br /><br />";
pla_error( $lang['copy_failed'] . $dest_dn, ldap_error( $ldapserver_dest->connect() ), ldap_errno( $ldapserver_dest->connect() ) );
}
return $add_result;
return $add_result;
} else {
return false;
return false;
}
}
function build_tree( $source_server_id, $root_dn, &$tree, $filter='(objectClass=*)' )
/**
* @param object $ldapserver
* @param dn $root_dn
* @param unknown $tree
* @param string $filter
*/
function build_tree( $ldapserver, $root_dn, &$tree, $filter='(objectClass=*)' )
{
$children = get_container_contents( $source_server_id, $root_dn, 0, $filter );
if( is_array( $children ) && count( $children ) > 0 )
{
$children = get_container_contents( $ldapserver, $root_dn, 0, $filter );
if( is_array( $children ) && count( $children ) > 0 ) {
$tree[ $root_dn ] = $children;
foreach( $children as $child_dn )
build_tree( $source_server_id, $child_dn, $tree, $filter );
build_tree( $ldapserver, $child_dn, $tree, $filter );
}
}
?>

View File

@@ -1,71 +1,69 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy_form.php,v 1.19 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy_form.php,v 1.22 2005/03/05 06:27:06 wurley Exp $
/*
* copy_form.php
/**
* Copies a given object to create a new one.
*
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'] ;
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$container = get_container( $dn );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($server_id,true,'dest_server_id');
$children = get_container_contents( $ldapserver, $dn );
$attrs = get_object_attrs( $server_id, $dn );
$server_name = $servers[$server_id]['name'];
$select_server_html = "";
if (count($servers)>1){
$select_server_html .= '<select name="dest_server_id">';
foreach( $servers as $id => $server )
if( $server['host'] )
$select_server_html .= "<option value=\"$id\"". ($id==$server_id?" selected":"") .">" . htmlspecialchars($server['name']) . "</option>\n";
$select_server_html .= '</select>';
} else {
$server = reset($servers);
if( $server['host'] )
$select_server_html .= '<input type="hidden" name="dest_server_id" value="'.key($servers).'">' .
'<b>' . $server['name'] . '</b>';
}
$children = get_container_contents( $server_id, $dn );
include './header.php';
include './header.php';
// Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy
if( is_array( $children ) && count( $children ) > 0 ) { ?>
<script language="javascript">
//<!--
<script language="javascript">
//<!--
function toggle_disable_filter_field( recursive_checkbox )
{
if( recursive_checkbox.checked ) {
recursive_checkbox.form.remove.disabled = false;
recursive_checkbox.form.filter.disabled = false;
} else {
recursive_checkbox.form.remove.disabled = true;
recursive_checkbox.form.remove.checked = false;
recursive_checkbox.form.filter.disabled = true;
}
}
//-->
</script>
//-->
</script>
<?php } ?>
<body>
<h3 class="title"><?php echo $lang['copyf_title_copy'] . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
<center>
<?php echo $lang['copyf_title_copy'] ?><b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['copyf_to_new_object']?>:<br />
<br />
<form action="copy.php" method="post" name="copy_form">
<input type="hidden" name="old_dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
@@ -75,7 +73,7 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
<td><acronym title="<?php echo $lang['copyf_dest_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']?></acronym>:</td>
<td>
<input type="text" name="new_dn" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'copy_form.new_dn' ); ?></td>
<?php draw_chooser_link( 'copy_form.new_dn', 'true', $rdn ); ?></td>
</td>
</tr>
@@ -94,8 +92,17 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
<td><acronym title="<?php echo $lang['filter_tooltip']; ?>"><?php echo $lang['filter']; ?></acronym>:</td>
<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />
</tr>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/ disabled>
<small>(<?php echo $lang['delete_after_copy_warn']; ?>)</small)</td>
</tr>
<?php } else { ?>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/></td>
</tr>
<?php } ?>
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['copyf_title_copy']; ?>" /></td>
</tr>
@@ -103,11 +110,10 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
</form>
<script language="javascript">
//<!--
/* If the user uses the back button, this way we draw the filter field
properly. */
toggle_disable_filter_field( document.copy_form.recursive );
//-->
//<!--
/* If the user uses the back button, this way we draw the filter field properly. */
toggle_disable_filter_field( document.copy_form.recursive );
//-->
</script>
<?php if( show_hints() ) {?>

View File

@@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create.php,v 1.29 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create.php,v 1.32 2005/03/05 06:27:06 wurley Exp $
/*
* create.php
/**
* Creates a new object.
*
* Variables that come in as POST vars:
@@ -14,52 +12,62 @@
* and the values being their respective values)
* - object_classes (rawurlencoded, and serialized array of objectClasses)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( './common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$new_dn = isset( $_POST['new_dn'] ) ? $_POST['new_dn'] : null;
$encoded_dn = rawurlencode( $new_dn );
$server_id = $_POST['server_id'];
$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array();
$required_attrs = isset( $_POST['required_attrs'] ) ? $_POST['required_attrs'] : false;
$object_classes = unserialize( rawurldecode( $_POST['object_classes'] ) );
$redirect = isset( $_POST['redirect'] ) ? $_POST['redirect'] : false;
$encoded_dn = rawurlencode( $new_dn );
$container = get_container( $new_dn );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// build the new entry
$new_entry = array();
if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
foreach( $required_attrs as $attr => $val ) {
if( $val == '' )
pla_error( sprintf( $lang['create_required_attribute'], htmlspecialchars( $attr ) ) );
$new_entry[ $attr ][] = $val;
$new_entry[ $attr ][] = $val;
}
}
if( isset( $attrs ) && is_array( $attrs ) ) {
foreach( $attrs as $i => $attr ) {
if( is_attr_binary( $server_id, $attr ) ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
if( isset( $_FILES['vals']['name'][$i] ) && $_FILES['vals']['name'][$i] != '' ) {
// read in the data from the file
$file = $_FILES['vals']['tmp_name'][$i];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
$new_entry[ $attr ][] = $val;
}
} else {
$val = isset( $vals[$i] ) ? $vals[$i] : '';
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) )
$new_entry[ $attr ][] = $val;
$new_entry[ $attr ][] = $val;
}
}
}
@@ -71,78 +79,80 @@ if( ! in_array( 'top', $new_entry['objectClass'] ) )
foreach( $new_entry as $attr => $vals ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $new_dn, $attr, $vals ) ) {
$search_href='search.php?search=true&amp;form=advanced&amp;server_id=' . $server_id . '&amp;filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$new_dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $new_dn, $attr, $vals ) ) {
$search_href = sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s',$server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$new_dn,$search_href ) );
}
if( ! is_attr_binary( $server_id, $attr ) )
if( ! is_attr_binary( $ldapserver, $attr ) )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$new_entry[ $attr ][ $i ] = $v;
else
$new_entry[ $attr ] = $vals;
$new_entry[ $attr ][ $i ] = $v;
else
$new_entry[ $attr ] = $vals;
}
//echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>";
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
// Check the user-defined custom call back first
if( true === preEntryCreate( $server_id, $new_dn, $new_entry ) )
$add_result = @ldap_add( $ds, $new_dn, $new_entry );
else
exit;
if( $add_result )
{
postEntryCreate( $server_id, $new_dn, $new_entry );
if( $redirect )
$redirect_url = $redirect;
else
$redirect_url = "edit.php?server_id=$server_id&dn=" . rawurlencode( $new_dn );
if( true === run_hook ( 'pre_entry_create', array ( 'server_id' => $server_id,'dn' => $new_dn,'attrs' => $new_entry ) ) )
$add_result = @ldap_add( $ldapserver->connect(), $new_dn, $new_entry );
if( array_key_exists( 'tree', $_SESSION ) )
{
else {
pla_error( $lang['create_could_not_add'] );
exit;
}
if( $add_result ) {
run_hook ( 'post_entry_create', array ( 'server_id' => $server_id, 'dn' => $new_dn, 'attrs' => $new_entry ) );
if( $redirect )
$redirect_url = $redirect;
else
$redirect_url = "edit.php?server_id=$server_id&dn=" . rawurlencode( $new_dn );
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
if( isset( $tree[$server_id][$container] ) ) {
$tree[$server_id][$container][] = $new_dn;
sort( $tree[$server_id][$container] );
$tree_icons[$server_id][$new_dn] = get_icon( $server_id, $new_dn );
$tree_icons[$server_id][$new_dn] = get_icon( $ldapserver, $new_dn );
}
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
}
?>
<html>
<head>
<?php if( isset( $tree[$server_id][$container] ) || $new_dn == $servers[$server_id]['base'] ) { ?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $redirect_url; ?>';
</script>
<?php if( isset( $tree[$server_id][$container] ) || $new_dn == $servers[$server_id]['base'] ) { ?>
<?php } ?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $redirect_url; ?>';
</script>
<meta http-equiv="refresh" content="0; url=<?php echo $redirect_url; ?>" />
<?php } ?>
<meta http-equiv="refresh" content="0; url=<?php echo $redirect_url; ?>" />
</head>
<body>
<?php echo $lang['redirecting'] ?> <a href="<?php echo $redirect_url; ?>"><?php echo $lang['here']?></a>.
</body>
</html>
<?php
}
else
{
pla_error( $lang['create_could_not_add'], ldap_error( $ds ), ldap_errno( $ds ) );
}
<?php } else {
pla_error( $lang['create_could_not_add'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
?>

View File

@@ -1,49 +1,34 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create_form.php,v 1.21 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create_form.php,v 1.22 2005/02/25 13:44:05 wurley Exp $
/*
* create_form.php
/**
* The menu where the user chooses an RDN, Container, and Template for creating a new entry.
* After submitting this form, the user is taken to their chosen Template handler.
*
* Variables that come in as GET vars
* - server_id (optional)
* - container (rawurlencoded) (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
$server_id = $_REQUEST['server_id'];
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$step = isset( $_REQUEST['step'] ) ? $_REQUEST['step'] : 1; // defaults to 1
$container = $_REQUEST['container'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$server_name = $servers[$server_id]['name'];
// build the server drop-down html
$server_menu_html = '';
if (count($servers)>1){
$server_menu_html .= '<select name="server_id">';
$js_dn_list = '';
foreach( $servers as $id => $server ) {
if( $server['host'] ) {
$server_menu_html .= '<option value="'.$id.'"' . ( $id==$server_id? ' selected="true"' : '' ) . '>';
$server_menu_html .= $server['name'] . '</option>';
}
}
$server_menu_html .= '</select>';
} else {
$server = reset($servers);
if( $server['host'] )
$server_menu_html .= '<input type="hidden" name="server_id" value="'.key($servers).'" />' .
'<b>' . $server['name'] . '</b>';
}
$server_menu_html = server_select_list($server_id,true);
include './header.php'; ?>
@@ -51,76 +36,99 @@ include './header.php'; ?>
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['createf_choose_temp']?></h3>
<center><h3><?php echo $lang['createf_select_temp']?></h3></center>
<form action="creation_template.php" method="post">
<center><h3><?php echo $lang['createf_select_temp']?></h3></center>
<form action="creation_template.php" method="post">
<input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" />
<table class="create">
<tr>
<td class="heading"><?php echo $lang['server']; ?>:</td>
<td><?php echo $server_menu_html; ?></td>
</tr>
<tr>
<td class="heading">
<?php echo $lang['template']; ?>:
</td>
<td>
<table class="template_display">
<tr>
<td>
<table class="templates">
<?php
$count = count( $templates );
$i = -1;
foreach( $templates as $name => $template ) {
$i++;
// Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) )
echo "</table></td><td><table class=\"templates\">";
// Check and see if this template should be shown in the list
$isValid = false;
if( isset($template['regexp'] ) ) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) {
$isValid = true;
}
} else {
$isValid = true;
}
?>
<tr>
<td><input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>"
id="<?php echo htmlspecialchars($name); ?>"
<?php if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked';
if( ! $isValid ) echo ' disabled'; ?> />
</td>
<td class="icon"><label for="<?php echo htmlspecialchars($name);?>"><img src="<?php echo $template['icon']; ?>" /></label></td>
<td>
<label for="<?php echo htmlspecialchars($name);?>">
<?php if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '<b>';
if( ! $isValid ) echo "<span style=\"color: gray\"><acronym title=\"This template is not allowed in this container\">";
echo htmlspecialchars( $template['desc'] );
if( ! $isValid ) echo "</acronym></span>";
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?>
</label></td>
</tr>
<?php
} // end foreach ?>
</table>
</td>
</tr>
</table>
<tr>
<td class="heading"><?php echo $lang['template']; ?>:</td>
<td>
<table class="template_display">
<tr>
<td>
<table class="templates">
<?php $count = count( $templates );
$i = -1;
foreach( $templates as $name => $template ) {
$i++;
// Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) )
echo "</table></td><td><table class=\"templates\">";
// Check and see if this template should be shown in the list
$isValid = false;
if( isset($template['regexp'] ) ) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) {
$isValid = true;
}
} else {
$isValid = true;
} ?>
</td>
</tr>
<tr>
<td>
<input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>"
id="<?php echo htmlspecialchars($name); ?>"
<?php if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked';
if( ! $isValid ) echo ' disabled'; ?> />
</td>
<td class="icon">
<label for="<?php echo htmlspecialchars($name);?>">
<img src="<?php echo $template['icon']; ?>" />
</label>
</td>
<td>
<label for="<?php echo htmlspecialchars($name);?>">
<?php if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '<b>';
if( ! $isValid )
echo "<span style=\"color: gray\"><acronym title=\"This template is not allowed in this container\">";
echo htmlspecialchars( $template['desc'] );
if( ! $isValid ) echo "</acronym></span>";
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?>
</label>
</td>
</tr>
<?php } // end foreach ?>
</table>
</td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td>
</tr>
</table>
</td>
</tr>
</form>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td>
</tr>
</table>
</form>
</body>
</html>

View File

@@ -1,20 +1,32 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/creation_template.php,v 1.18 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/creation_template.php,v 1.22 2005/03/12 00:57:17 wurley Exp $
/* file: creation_template.php
/**
* This file simply acts as a plugin grabber for the creator templates in
* the directory templates/creation/
*
* Expected POST vars:
* server_id
* template
*
* @package phpLDAPadmin
*/
/**
*/
require_once 'common.php';
require 'templates/template_config.php';
$template = http_get_value( 'template' );
$template !== false or pla_error( $lang['ctemplate_no_template'] );
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$template = (isset($_REQUEST['template']) ? $_REQUEST['template'] : null);
! is_null($template) or pla_error( $lang['ctemplate_no_template'] );
if( $template == 'custom' ) {
foreach( $templates as $id => $template ) {
@@ -28,35 +40,29 @@ if( $template == 'custom' ) {
isset( $templates[$template] ) or pla_error( sprintf( $lang['invalid_template'], htmlspecialchars( $template ) ) );
$template_id = $template;
$template = isset( $templates[$template] ) ? $templates[$template_id] : null;
$server_id = http_get_value( 'server_id' );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$server_name = $servers[ $server_id ][ 'name' ];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
include './header.php';
if ( ! array_key_exists('no_header', $template ) ) {
include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars( $server_name ); ?>', <?php echo $lang['using_template']?> '<?php echo htmlspecialchars( $template['desc'] ); ?>'</h3>
<h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars( $ldapserver->name ); ?>', <?php echo $lang['using_template']?> '<?php echo htmlspecialchars( $template['desc'] ); ?>'</h3>
<?php
<?php }
$handler = 'templates/creation/' . $template['handler'];
$handler = realpath( $handler );
if( ! file_exists( $handler ) )
pla_error( sprintf( $lang['template_does_not_exist'], htmlspecialchars( $template['handler'] ) ) );
if( ! is_readable( $handler ) )
pla_error( sprintf( $lang['template_not_readable'], htmlspecialchars( $template['handler'] ) ) );
include $handler;
echo "</body>\n</html>";
if ( ! array_key_exists('no_header', $template ) ) {
echo "</body>\n</html>";
}
?>

View File

@@ -1,9 +1,12 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/custom_functions.php,v 1.6 2004/05/27 13:25:13 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/custom_functions.php,v 1.8 2005/03/05 06:27:06 wurley Exp $
/*
* custom_functions.php: Choose your own adventure.
/**
* CUSTOM_FUCTIONS has been DEPRECIATED, please use the hooks functions now.
* Let the phpLDAPadmin developers know if you REALLY need this - it will be removed
* in future releases.
*
* custom_functions.php:
*
* This file is full of functions (callbacks really) that are
* meant to be filled in by users of phpLDAPadmin (you). These functions
@@ -56,6 +59,9 @@
* - ldap_delete (ie, removing entries)
* - ldap_modify (ie, changing the value of an attribute, for both
* multi- and single-valued attributes)
* @deprecated
* @see hooks.php
* @package phpLDAPadmin
*/
/*
@@ -86,6 +92,7 @@ function postAttrModify( $server_id, $dn, $attr_name, $new_value )
* this function also gives you the attribute name ($attr_name)
* and the new value that the attribute will have ($new_value).
* $new_value may be a string or an array of strings.
* @deprecated
*/
function preAttrModify( $server_id, $dn, $attr_name, $new_value )
{
@@ -101,6 +108,7 @@ function preAttrModify( $server_id, $dn, $attr_name, $new_value )
* this function also gives you the attribute name ($attr_name)
* and the new value that the attribute will have ($new_value).
* $new_value may be a string or an array of strings.
* @deprecated
*/
function preAttrAdd( $server_id, $dn, $attr_name, $new_value )
{
@@ -116,6 +124,7 @@ function preAttrAdd( $server_id, $dn, $attr_name, $new_value )
* one may wish to create the user's home directory.
* See the documentation for preEntryCreate() below for
* the description of the $attrs parameter.
* @deprecated
*/
function postEntryCreate( $server_id, $dn, $attrs )
{
@@ -149,6 +158,7 @@ function postEntryCreate( $server_id, $dn, $attrs )
* ...
* )
*
* @deprecated
*/
function preEntryCreate( $server_id, $dn, $attrs )
{
@@ -160,6 +170,7 @@ function preEntryCreate( $server_id, $dn, $attrs )
* This function is executed before an entry is deleted.
* If it returns true, the entry is deleted, if false
* is returned, the entry is not deleted.
* @deprecated
*/
function preEntryDelete( $server_id, $dn )
{
@@ -171,6 +182,7 @@ function preEntryDelete( $server_id, $dn )
* This function is executed after an entry is deleted.
* Unlike preEntryDelete(), this function's return
* value is ignored.
* @deprecated
*/
function postEntryDelete( $server_id, $dn )
{
@@ -179,9 +191,10 @@ function postEntryDelete( $server_id, $dn )
/**
* This function is called, after a new session is initilaized
* @deprecated
*/
function postSessionInit()
{
// Fill me in
}
?>

View File

@@ -1,72 +1,73 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete.php,v 1.18 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete.php,v 1.21 2005/03/05 06:27:06 wurley Exp $
/*
* delete.php
/**
* Deletes a DN and presents a "job's done" message.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id'];
if( $dn === null )
pla_error( $lang['you_must_specify_a_dn'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ) );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists( $ldapserver, $dn ) or pla_error( sprintf( $lang['no_such_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ) );
// Check the user-defined custom callback first.
if( true === preEntryDelete( $server_id, $dn ) ) {
$del_result = @ldap_delete( $ds, $dn );
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $server_id, 'dn' => $dn ) ) ) {
$del_result = @ldap_delete( $ldapserver->connect(), $dn );
} else {
exit;
pla_error( sprintf( $lang['could_not_delete_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ));
}
if( $del_result )
{
if( $del_result ) {
// Custom callback
postEntryDelete( $server_id, $dn );
run_hook ( 'post_entry_delete', array ( 'server_id' => $server_id, 'dn' => $dn ) );
// kill the DN from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) )
{
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
if( isset( $tree[$server_id] ) && is_array( $tree[$server_id] ) ) {
// does it have children? (it shouldn't, but hey, you never know)
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// search and destroy
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
$_SESSION['tree'] = $tree;
}
session_write_close();
}
include './header.php';
?>
include './header.php'; ?>
<script language="javascript">
parent.left_frame.location.reload();
@@ -76,11 +77,8 @@ if( $del_result )
<br />
<center><?php echo sprintf( $lang['entry_deleted_successfully'], '<b>' .pretty_print_dn($dn) . '</b>' ); ?></center>
<?php
} else {
pla_error( sprintf( $lang['could_not_delete_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ),
ldap_error( $ds ),
ldap_errno( $ds ) );
<?php } else {
pla_error( sprintf( $lang['could_not_delete_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ),
ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
?>

View File

@@ -1,47 +1,51 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_attr.php,v 1.9 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_attr.php,v 1.11 2005/03/05 06:27:06 wurley Exp $
/*
* delete_attr.php
/**
* Deletes an attribute from an entry with NO confirmation.
*
* On success, redirect to edit.php
* On failure, echo an error.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_POST['dn'] ;
$encoded_dn = rawurlencode( $dn );
$attr = $_POST['attr'];
if( is_attr_read_only( $server_id, $attr ) )
$encoded_dn = rawurlencode( $dn );
if( is_attr_read_only( $ldapserver, $attr ) )
pla_error( sprintf( $lang['attr_is_read_only'], htmlspecialchars( $attr ) ) );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( ! $attr ) pla_error( $lang['no_attr_specified'] );
if( ! $dn ) pla_error( $lang['no_dn_specified'] );
$update_array = array();
$update_array[$attr] = array();
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$res = @ldap_modify( $ds, $dn, $update_array );
if( $res )
{
$res = @ldap_modify( $ldapserver->connect(), $dn, $update_array );
if( $res ) {
$redirect_url = "edit.php?server_id=$server_id&dn=$encoded_dn";
foreach( $update_array as $attr => $junk )
$redirect_url .= "&modified_attrs[]=$attr";
header( "Location: $redirect_url" );
}
else
{
pla_error( $lang['could_not_perform_ldap_modify'], ldap_error( $ds ), ldap_errno( $ds ) );
}
header( "Location: $redirect_url" );
} else {
pla_error( $lang['could_not_perform_ldap_modify'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
?>

View File

@@ -1,151 +1,154 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_form.php,v 1.17 2004/10/21 00:14:48 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_form.php,v 1.19 2005/03/05 06:27:06 wurley Exp $
/*
/**
* delete_form.php
* Displays a last chance confirmation form to delete a dn.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$children = get_container_contents( $server_id, $dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$has_children = count($children)>0 ? true : false;
$children = get_container_contents( $ldapserver,$dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$has_children = count($children) > 0 ? true : false;
include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['delete_dn'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php if( $has_children ) { ?>
<?php if( $has_children ) { ?>
<center><b><?php echo $lang['permanently_delete_children']; ?></b><br /><br />
<?php
flush(); // so the user can get something on their screen while we figure out how many children this object has
if( $has_children ) {
<?php flush(); // so the user can get something on their screen while we figure out how many children this object has
// get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $server_id, 'objectClass=*', $dn, array('dn'), 'sub' );
$s = pla_ldap_search( $ldapserver, 'objectClass=*', $dn, array('dn'), 'sub' );
$sub_tree_count = count( $s );
}
?>
<table class="delete_confirm">
<td>
<p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?>
<small>(<a href="search.php?search=true&amp;server_id=<?php echo $server_id; ?>&amp;filter=<?php echo rawurlencode('objectClass=*'); ?>&amp;base_dn=<?php echo $encoded_dn; ?>&amp;form=advanced&amp;scope=sub"><?php echo $lang['view_entries']; ?></a>)</small>
<br />
<br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br />
<br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small>
<br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" class="scary" value="<?php echo sprintf( $lang['delete_all_x_objects'], $sub_tree_count ); ?>" />
</form>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
<p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?>
<small>(<a href="search.php?search=true&amp;server_id=<?php echo $server_id; ?>&amp;filter=<?php echo rawurlencode('objectClass=*'); ?>&amp;base_dn=<?php echo $encoded_dn; ?>&amp;form=advanced&amp;scope=sub"><?php echo $lang['view_entries']; ?></a>)</small>
<br />
<br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br />
<br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small>
<br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" class="scary" value="<?php echo sprintf( $lang['delete_all_x_objects'], $sub_tree_count ); ?>" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</table>
<?php flush(); ?>
<br />
<br />
<?php echo $lang['list_of_entries_to_be_deleted']; ?><br />
<select size="<?php echo min( 10, $sub_tree_count );?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0; ?>
<?php foreach( $s as $dn => $junk ) { ?>
<?php $i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?>
<select size="<?php echo min( 10, $sub_tree_count );?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0;
foreach( $s as $dn => $junk ) {
$i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?>
</select>
<br />
<?php } else { ?>
<?php } else { ?>
<center>
<table class="delete_confirm">
<td>
<?php echo $lang['sure_permanent_delete_object']; ?><br />
<br />
<nobr><acronym title="<?php echo $lang['distinguished_name']; ?>"><?php echo $lang['dn']; ?></acronym>: <b><?php echo pretty_print_dn( $dn ); ?></b><nobr><br />
<nobr><?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars($server_name); ?></b></nobr><br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" />
</center>
</form>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
<?php echo $lang['sure_permanent_delete_object']; ?><br />
<br />
<nobr><acronym title="<?php echo $lang['distinguished_name']; ?>"><?php echo $lang['dn']; ?></acronym>: <b><?php echo pretty_print_dn( $dn ); ?></b><nobr><br />
<nobr><?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars($ldapserver->name); ?></b></nobr><br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</table>
</center>
<?php } ?>
<?php } ?>
</body>
</html>

View File

@@ -1,6 +1,9 @@
* Project Creator:
- David Smith
* Project Developers:
- David Smith Maintainer
- Deon George Maintainer
- Xavier Renard Import/Export and Samba
- Uwe Ebel I18n
@@ -9,7 +12,7 @@
- Bayu Irawan userPassword hash, html fixes, ldap_modify fixes
- Uwe Ebel short_open_tags fix
- Andrew Tipton SUP support in schema parser
- Eigil Bjørgum UTF-8 support
- Eigil Bjørgum UTF-8 support
- Brandon Lederer DNS entry template
Nathan Rotschafer
- Steve Rigler Password hash patch
@@ -21,6 +24,11 @@
- Piotr Tarnowski i18n fixes
- Deon George Auto-uidNumber enhancements and many fixes
- Pierre Belanger Speed-ups to auto-uidNumber
- Benjamin Drieu Syslog, Hooks and other fixes
- Samuel Tran User login restriction
- Daniel van Eeden Unicode, CSS fixes
- Piotr Tarnowski More locatisation fixes
- Tomas Kuliavas Improved password encoding functions
* Translators:
@@ -30,11 +38,11 @@
- Xavier Renard French
- Dave Smith English ;)
- Richard Lucassen Dutch
- Andreu Sanchez Spanish and Catal<EFBFBD>
- Andreu Sanchez Spanish and Català
- Dmitry Gorpinenko, Russian
Aleksey Soldatov
Sergey Saukh
- Unknown Italian
- Unknown Italian, Tain, Simplified Chinese
- Alexandre Maciel Portuguese (Brasilian)
Elton Schroeder Fenner (CLeGi)
- Piotr Tarnowski (DrFugazi) Polish
@@ -45,6 +53,3 @@
If you can help translate, please join the phpldapadmin-devel mailing list:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,3 +1,58 @@
* Version 0.9.6, 2005-04-03
* Summary:
The main goals for this version was to close all the outstanding bugs and apply all the submitted patchs
on sourceforge. All the sourceforge easy to do RFE's where also included.
* Notes:
- Added support for mulpiple Base DN's
- Added support to log for syslog (Benjamin Drieu)
- Added hooks feature to replace custom functions (Benjamin Drieu)
- Entry chooser now auto adds rdn entry for copy/move operations (wigi2)
- Initial support for AD Schema Retrieval
- Added login restriction (Samuel Tran)
- Added support to move objects (aka Copy then Delete) (wigi2)
- No longer show + next to objects that have no children in tree viewer (when hide_configuration_management=true)
- Added date evaluation to shadow attributes (shadowAccount)
- Added Enhancement to show attributes in a specifc order (Samuel Tran)
- Added Server Info OID descriptions
- Added new feature to compare two DNs
- Binary SID to text SID feature for MSAD objectSid entries.
- Added session timeout feature (Samuel Tran)
* New Languages:
- Taiwan (Anonymous)
- Simplfied Chinese (Anonymous)
* Changes:
- LDAP server configuration is being moved into an Object LDAPServer, all future interactions should
use this object class from now on.
- Some more conversions of english static text into language files.
- Some code cleanup, excess whitespace removal, etc...
- Tags for phpdoc updated.
- Added cvs header to files missing the header.
- LDIF Import function improvements (Xavier Renard)
- UniqueAttrs fix, now showing actual value (in multi value attribs) that breaches uniqueness
- Fixed check_lang_files when register_globals=off
- css fixes (Daniel van Eeden)
- More locatisation fixes (Piotr Tarnowski)
- Schema functions all use cached entries now by default
- Improved password encoding functions (Tomas Kuliavas)
- If auth_type = session, then dn and password is also blowfish encrypted
- Prettied up the icon index (Dave Smith)
- Make the rdn not editable in the default template.
* Fixes:
- password_check when magic_quotes_gpc is on.
- Misc fixes (Benjamin Drieu)
- Fix searchs when searching for values with brackets
- Unicode fixes (Daniel van Eeden)
- View jpeg photo minor security fix (Dave Smith)
- Check password link missing in read-only mode
* Sourceforge bug fixes:
1117099 1117316 1120048 1150947 1152962 1153360 1055401 1158148 1161425
* Version 0.9.5, 2004-12-17

View File

@@ -1,26 +1,26 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-es.txt,v 1.3 2004/03/19 20:22:54 i18phpldapadmin Exp $
Estas instrucciones dejan por sentado que tienes una instalaci<EFBFBD>n
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-es.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Estas instrucciones dejan por sentado que tienes una instalación
funcionando de:
a. Servidor Web (Apache, IIS, etc).
b. PHP 4.1.0 o mas nuevo (con soporte LDAP)
* Instalando phpLDAPadmin en 4 pasos muy simples:
1. Desempaqueta el archivo (si est<EFBFBD>s leyendo esto, ya lo has hecho).
2. Pon el directorio resultante 'phpldapadmin' en alg<EFBFBD>n lugar de tu
1. Desempaqueta el archivo (si estás leyendo esto, ya lo has hecho).
2. Pon el directorio resultante 'phpldapadmin' en algún lugar de tu
directorio web raiz.
3. Copia 'config.php.example' a 'config.php' y ed<EFBFBD>talo para que se
acomode a tu configuraci<EFBFBD>n y tu gusto.
4. Entonces, con el navegador ve a la direcci<EFBFBD>n que contiene los archivos
3. Copia 'config.php.example' a 'config.php' y edítalo para que se
acomode a tu configuración y tu gusto.
4. Entonces, con el navegador ve a la dirección que contiene los archivos
del directorio phpldapadmin.
* Notas del navegador
phpLDAP se desarroll<EFBFBD> bajo Mozilla, y ser<EFBFBD> donde seguramente corra mejor.
A<EFBFBD>n as<EFBFBD>, las pruebas se han hecho bajo Internet Explorer, y tendr<EFBFBD>a que funcionar
bien tambi<EFBFBD>n. No se ha hecho ninguna prueba con Konqueror (o cualquier navegador
phpLDAP se desarrolló bajo Mozilla, y será donde seguramente corra mejor.
Aún así, las pruebas se han hecho bajo Internet Explorer, y tendría que funcionar
bien también. No se ha hecho ninguna prueba con Konqueror (o cualquier navegador
basado en kthml como Safari) o Opera. Si encuentras alguna incompatibilidad, por favor
h<EFBFBD>znoslo saber.
háznoslo saber.
* Contribuidores
@@ -36,21 +36,21 @@ funcionando de:
- Bayu Irawan userPassword hash, arreglos html, arreglos ldap_modify
- Uwe Ebel arreglo short_open_tags
- Andrew Tipton soporte SUP en el parseador del esquema
- Eigil Bj<EFBFBD>rgum soporte UTF-8
- Eigil Bjørgum soporte UTF-8
- Brandon Lederer plantilla de entrada de DNS
Nathan Rotschafer
- Steve Rigler Parche para Password hash
- Chris Jackson Contrase<EFBFBD>as Blowfish y md5crypt
- Chris Jackson Contraseñas Blowfish y md5crypt
- Marius Rieder Parseador avanzado de esquema
- Nick Burch Un mont<EFBFBD>n de arreglos de realpath()
- Nick Burch Un montón de arreglos de realpath()
Traductores:
- Uwe Ebel Alem<EFBFBD>n
- Xavier Renard Franc<EFBFBD>s
- Dave Smith Ingl<EFBFBD>s ;)
- Uwe Ebel Alemán
- Xavier Renard Francés
- Dave Smith Inglés ;)
Si puedes ayudar a traducir, por favor ap<EFBFBD>ntate a la lista de correo phpldapadmin:
Si puedes ayudar a traducir, por favor apúntate a la lista de correo phpldapadmin:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,23 +1,23 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-fr.txt,v 1.3 2004/03/19 20:22:54 i18phpldapadmin Exp $
Les instructions suivantes supposent une installation en <EFBFBD>tat de marche de:
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-fr.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Les instructions suivantes supposent une installation en état de marche de:
a. Un serveur web (Apache, IIS, etc).
b. PHP 4.1.0 ou une version plus r<EFBFBD>cente (avec le support LDAP).
b. PHP 4.1.0 ou une version plus récente (avec le support LDAP).
* Installer phpLDAPadmin en quatre <EFBFBD>tapes simples:
* Installer phpLDAPadmin en quatre étapes simples:
1. D<EFBFBD>-tarrer l'archive (si vous lisez ceci, c'est que vous l'avez d<EFBFBD>j<EFBFBD> fait).
2. Mettre le r<EFBFBD>pertoire 'phpldapadmin' ainsi obtenu quelque part sous
1. Dé-tarrer l'archive (si vous lisez ceci, c'est que vous l'avez déjà fait).
2. Mettre le répertoire 'phpldapadmin' ainsi obtenu quelque part sous
la racine de votre serveur web.
3. Copier 'config.php.example' vers 'config.php' et <EFBFBD>diter selon vos besoins.
4. Ensuite, pointer votre navigateur vers le r<EFBFBD>pertoire phpldapadmin.
3. Copier 'config.php.example' vers 'config.php' et éditer selon vos besoins.
4. Ensuite, pointer votre navigateur vers le répertoire phpldapadmin.
* Notes sur les navigateurs
phpLDAPadmin a <EFBFBD>t<EFBFBD> developp<EFBFBD> avec Mozilla et fonctionnera vraisemblablement
mieux avec celui-ci. Cependant, des tests ont <EFBFBD>t<EFBFBD> effectu<EFBFBD> avec Internet Explorer
et cela devrait fonctionner <EFBFBD>galement. Aucun test n'a <EFBFBD>t<EFBFBD> r<EFBFBD>alis<EFBFBD> ni avec Konqueror
(ou un navigateur bas<EFBFBD> sur khtml comme Safari par exemple) ni avec Opera. Si
vous trouvez une incompatibilit<EFBFBD> avec votre navigateur, merci de la reporter.
phpLDAPadmin a été developpé avec Mozilla et fonctionnera vraisemblablement
mieux avec celui-ci. Cependant, des tests ont été effectué avec Internet Explorer
et cela devrait fonctionner également. Aucun test n'a été réalisé ni avec Konqueror
(ou un navigateur basé sur khtml comme Safari par exemple) ni avec Opera. Si
vous trouvez une incompatibilité avec votre navigateur, merci de la reporter.
* Contributions:
@@ -25,7 +25,7 @@ Les instructions suivantes supposent une installation en
- David Smith Maintenance
- Xavier Renard Responsable LDIF
- Marius Rieder Responsable pour les sch<EFBFBD>ma LDAP
- Marius Rieder Responsable pour les schéma LDAP
- Nate Rotschafer Directeur des releases
Auteurs de patchs:
@@ -33,25 +33,25 @@ Les instructions suivantes supposent une installation en
- Bayu Irawan hachage pour le mot de passe utilisateur,
corrections html, corrections pour ldap_modiy
- Uwe Ebel Corrections pour short_open_tags
- Andrew Tipton Support pour SUP dans le parseur de sch<EFBFBD>mas
- Eigil Bj<EFBFBD>rgum Support pour UTF-8
- Brandon Lederer Patron pour les entr<EFBFBD>es DNS
- Andrew Tipton Support pour SUP dans le parseur de schémas
- Eigil Bjørgum Support pour UTF-8
- Brandon Lederer Patron pour les entrées DNS
Nathan Rotschafer
- Steve Rigler Correction pour les hachages des mots de passe
- Chris Jackson Mots de passe Blowfish et md5crypt
- Marius Rieder Am<EFBFBD>lioration du parseur de sch<EFBFBD>mas
- Marius Rieder Amélioration du parseur de schémas
- Nick Burch Corrections multiples pour realpath()
Traducteurs:
- Uwe Ebel & Marius Reider Allemand
- Xavier Renard Fran<EFBFBD>ais
- Xavier Renard Français
- Dave Smith Anglais ;)
- Richard Lucassen N<EFBFBD>erlandais
- Richard Lucassen Néerlandais
- Andreu Sanchez Espagnol et Catalan
- Dmitry Gorpinenko Russe
- Unknown Italien
Si vous pouvez aider <EFBFBD> traduire phpLDAPAdmin, veuillez s'il vous pla<EFBFBD>t vous abonner
<EFBFBD> la liste de diffusion phpldapadmin-devel:
Si vous pouvez aider à traduire phpLDAPAdmin, veuillez s'il vous plaît vous abonner
à la liste de diffusion phpldapadmin-devel:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@@ -1,56 +0,0 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/ROADMAP,v 1.19 2004/03/25 12:50:39 uugdave Exp $
phpLDAPadmin roadmap
0.9.3 planned features:
Bugfix release.
This release will focus on fixing bugs, adding minor features, and improving stability.
Samba 3.0 support in samba user and machine creation templates
Move template config to a new config file: template_config.php (or something)
0.9.4 planned features:
* Complete i18n. All strings localized.
Modification templates:
* gropOfNames (view full DNs and browse buttons)
* groupOfUniqueNames (view full DNs and browse buttons)
* http auth_type (a la phpMyAdmin)
* read-only attributes (similar to hidden attributes) in config
* Default mod template: Add a "browse" button for attributes that store DNs.
caveat: We don't have a way to reference form elements with "[]" in the name, causing a proble
with our default mod template. The "browser" button is present, but cannot populate the form
element.
* Add output buffering when including lang files so no output is sent to the browser (which could cause problems for sessions and cookies)
* Paging search results.
* Anonymous binds redirect to search page with no tree viewer (as an option in config)
* pretty-printed DNs
* DSML exports
* obfuscated password display
* more linkage in the schema browser (used by links)
* jpegs drawn in-line in searches
* configurable read-only attributes
* paging in search results (ie, viewing entries 1-50 of 436)
* Configuration for templates.
0.9.5 planned features:
Maybe create a class called Config with static functions for fetching configuration data (ie, Config::isServerReadOnly()).
or: Object-oriented server and general configuration (ie, add a class Server)
Support and test ActiveDirectory and iMail LDAP schema.
Add link to objectClass values in default mod template to jump to that objectClass in the schema viewer.
Make deref param modifiable in the advanced search form (LDAP_DEREF_ALWAYS, LDAP_DEREF_NEVER, etc.)
Better handling of aliases and referals (display the actual alias with aliasedObjectName or ref attrs, and don't follow or perhaps make it configurable like ldapsearch)
Remove all HTML from language files.
Add a random hint on the welcome page
Add blowfish encryption to encrypt cookie-stored passwords and DNs.
Support for modifying replica entries (using ldap_set_rebind_proc())
Modification templates
user
oragnizationalUnit
sambaUser (v 2 and 3)
sambaMachine
Search filter builder for simple search form (just select AND or OR for a group of criteria)
Add mass-update feature (user provides filter and set of attrs/vals to modify)
No-schema mode of operation (some servers simply won't give us schema. This becomes a problem for normal operation)
i18n localization of all creation templates
Hidden/read-only attrs on a filter-basis (ie, different users have different viewable, writable attributes)
Serious compatibility testing for additional LDAP servers.
(* means an item is complete and checed into CVS)

1218
doc/hooks.sgml Normal file

File diff suppressed because it is too large Load Diff

15
doc/test_encoding.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/sh
# $Header: /cvsroot/phpldapadmin/phpldapadmin/doc/test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# $Id: test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# Written by: Daniel van Eeden <daniel_e@dds.nl>
# Purpose: test utf-8 encoding
for file in `find . -type f ! -name \*png ! -name \*jpg | egrep -v "^./lang/"`
do
output=`iconv ${file} -o /dev/null 2>&1`
err=$?
output=`echo ${output} | cut -d: -f2`
if [ ${err} != "0" ]; then
echo "${file}:${output}"
fi
done

View File

@@ -1,6 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/documentation.php,v 1.7 2004/12/17 15:21:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/documentation.php,v 1.8 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
@@ -45,5 +50,3 @@ switch( $view ) {
<h3 class="doc">Modification Templates</h3>
<p class="doc">TODO: Write me.</p>

View File

@@ -1,11 +1,17 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/donate.php,v 1.7 2005/02/26 12:35:05 wurley Exp $
include 'common.php';
include 'header.php';
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
$donate_base_href="https://sourceforge.net/donate/index.php?group_id=61828&amp;type=0";
$amounts = array( 10, 20, 50, 100 );
?>
<body>
@@ -22,10 +28,8 @@ $amounts = array( 10, 20, 50, 100 );
<?php foreach( $amounts as $amount ) { ?>
<td align="center">
<a
href="<?php echo $donate_base_href; ?>&amp;amt=<?php echo $amount; ?>"
target="new"><img
src="images/paypal-donate.png"
<a href="<?php echo $donate_base_href; ?>&amp;amt=<?php echo $amount; ?>" target="new">
<img src="images/paypal-donate.png"
alt="[<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>]"
title="<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>" /></a>
</td>
@@ -35,9 +39,7 @@ $amounts = array( 10, 20, 50, 100 );
<tr>
<?php foreach( $amounts as $amount ) { ?>
<td align="center"><?php echo sprintf( $lang['donate_amount'], '$' . $amount ); ?></td>
<?php } ?>
</tr>
@@ -45,14 +47,6 @@ $amounts = array( 10, 20, 50, 100 );
<br />
<br />
<center>
<?php echo $lang['wish_list_option']; ?>
<br />
<br />
<a href="http://www.amazon.com/gp/registry/22APPYURX48VA"><?php echo $lang['wish_list']; ?></a>
</center>
</body>
</html>

View File

@@ -1,35 +1,45 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/download_binary_attr.php,v 1.8 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/download_binary_attr.php,v 1.10 2005/03/05 06:27:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = rawurldecode( $_GET['dn'] );
$attr = $_GET['attr'];
// if there are multiple values in this attribute, which one do you want to see?
$value_num = isset( $_GET['value_num'] ) ? $_GET['value_num'] : 0;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn ) ) );
dn_exists( $ldapserver, $dn ) or
pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn ) ) );
$search = @ldap_read( $ds, $dn, "(objectClass=*)", array( $attr ), 0, 0, 0, get_view_deref_setting() );
$search = @ldap_read( $ldapserver->connect(),$dn,"(objectClass=*)",array($attr),0,0,0,get_view_deref_setting() );
if( ! $search )
pla_error( $lang['error_performing_search'], ldap_error( $ds ), ldap_errno( $ds ) );
$entry = ldap_first_entry( $ds, $search );
$attrs = ldap_get_attributes( $ds, $entry );
$attr = ldap_first_attribute( $ds, $entry, $attrs );
$values = ldap_get_values_len( $ds, $entry, $attr );
pla_error( $lang['error_performing_search'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()) );
$entry = ldap_first_entry( $ldapserver->connect(),$search );
$attrs = ldap_get_attributes( $ldapserver->connect(),$entry );
$attr = ldap_first_attribute( $ldapserver->connect(),$entry,$attrs );
$values = ldap_get_values_len( $ldapserver->connect(),$entry,$attr );
$count = $values['count'];
// Dump the binary data to the browser
header( "Content-type: octet-stream" );
header( "Content-disposition: attachment; filename=$attr" );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
echo $values[$value_num];
?>

View File

@@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/edit.php,v 1.48 2004/10/14 03:33:36 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/edit.php,v 1.52 2005/03/05 06:27:06 wurley Exp $
/*
* edit.php
/**
* Displays the specified dn from the specified server for editing
* in its template as determined by get_template(). This is a simple
* shell for displaying entries. The real work is done by the templates
@@ -14,48 +12,49 @@
* - server_id
* - use_default_template (optional) If set, use the default template no matter what
* - Other vars may be set and used by the modification templates
*
* @package phpLDAPadmin
*/
/**
*/
require_once realpath( 'common.php' );
require_once realpath( 'templates/template_config.php' );
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : false;
$dn !== false or pla_error( $lang['missing_dn_in_query_string'] );
$decoded_dn = rawurldecode( $dn );
$encoded_dn = rawurlencode( $decoded_dn );
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$server_id !== false or pla_error( $lang['missing_server_id_in_query_string'] );
// Template authors may wish to present the user with a link back to the default, generic
// Template authors may wish to present the user with a link back to the default, generic
// template for editing. They may use this as the target of the href to do so.
$default_href = "edit.php?server_id=$server_id&amp;dn=$encoded_dn&amp;use_default_template=true";
$use_default_template = isset( $_GET['use_default_template'] ) ? true : false;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( $use_default_template ) {
require realpath( 'templates/modification/default.php' );
} else {
$template = get_template( $server_id, $dn );
} else {
$template = get_template( $ldapserver, $dn );
$template_file = "templates/modification/$template.php";
if( file_exists( realpath( $template_file ) ) )
require realpath( $template_file );
else {
echo "\n\n";
echo $lang['missing_template_file'];
echo $lang['missing_template_file'];
echo " <b>$template_file</b>. ";
echo $lang['using_default'];
echo "<br />\n\n";
require realpath( 'templates/modification/default.php' );
}
}
?>

View File

@@ -1,5 +1,9 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/emuhash_functions.php,v 1.6 2005/03/25 00:59:48 wurley Exp $
/**
* @package other
*/
/*******************************************************************************
* emuhash - partly emulates the php mhash functions
* version: 2004040701
@@ -31,74 +35,80 @@ if( ! function_exists( 'mhash' ) && ! function_exists( 'mhash_keygen_s2k' ) ) {
$emuhash_openssl = '/usr/bin/openssl';
// don't create mhash functions if we don't have a working openssl
if( ! file_exists( $emuhash_openssl ) )
unset( $emuhash_openssl );
elseif ( function_exists( 'is_executable' ) && ! is_executable( $emuhash_openssl ) ) {
if( ! file_exists( $emuhash_openssl ) )
unset( $emuhash_openssl );
} else {
if( ! isset( $emuhash_temp_dir ) )
$emuhash_temp_dir = '/tmp';
elseif ( function_exists( 'is_executable' ) && ! is_executable( $emuhash_openssl ) )
unset( $emuhash_openssl );
else {
if( ! isset( $emuhash_temp_dir ) )
$emuhash_temp_dir = '/tmp';
/******************************************************************************/
/* Define constants used in the mhash emulation code. */
/******************************************************************************/
define('MHASH_MD5', 'md5');
define('MHASH_SHA1', 'sha1');
define('MHASH_RIPEMD160', 'rmd160');
define('MHASH_MD5', 'md5');
define('MHASH_SHA1', 'sha1');
define('MHASH_RIPEMD160', 'rmd160');
/******************************************************************************/
/* Functions to emulate parts of php-mash. */
/******************************************************************************/
function openssl_hash( $openssl_hash_id, $password_clear ) {
global $emuhash_openssl, $emuhash_temp_dir;
function openssl_hash( $openssl_hash_id, $password_clear ) {
global $emuhash_openssl, $emuhash_temp_dir;
$current_magic_quotes = get_magic_quotes_runtime();
set_magic_quotes_runtime( 0 );
$tmpfile = tempnam( $emuhash_temp_dir, "emuhash" );
$pwhandle = fopen( $tmpfile, "w" );
if( ! $pwhandle )
pla_error( "Unable to create a temporary file '$tmpfile' to create hashed password" );
fwrite( $pwhandle, $password_clear );
fclose( $pwhandle );
$cmd = $emuhash_openssl . ' ' . $openssl_hash_id . ' -binary < ' . $tmpfile;
$prog = popen( $cmd, "r" );
$pass = fread( $prog, 1024 );
pclose( $prog );
unlink( $tmpfile );
set_magic_quotes_runtime( $current_magic_quotes );
$current_magic_quotes = get_magic_quotes_runtime();
set_magic_quotes_runtime( 0 );
$tmpfile = tempnam( $emuhash_temp_dir, "emuhash" );
$pwhandle = fopen( $tmpfile, "w" );
return $pass;
}
if( ! $pwhandle )
pla_error( "Unable to create a temporary file '$tmpfile' to create hashed password" );
function mhash( $hash_id, $password_clear ) {
switch( $hash_id ) {
case MHASH_MD5:
$emuhash = openssl_hash( MHASH_MD5, $password_clear );
break;
case MHASH_SHA1:
$emuhash = openssl_hash( MHASH_SHA1, $password_clear );
break;
case MHASH_RIPEMD160:
$emuhash = openssl_hash( MHASH_RIPEMD160, $password_clear );
break;
default:
$emuhash = FALSE;
}
fwrite( $pwhandle, $password_clear );
fclose( $pwhandle );
$cmd = $emuhash_openssl . ' ' . $openssl_hash_id . ' -binary < ' . $tmpfile;
$prog = popen( $cmd, "r" );
$pass = fread( $prog, 1024 );
pclose( $prog );
unlink( $tmpfile );
set_magic_quotes_runtime( $current_magic_quotes );
return $emuhash;
}
return $pass;
}
function mhash_keygen_s2k( $hash_id, $password_clear, $salt, $bytes ) {
return substr(pack("H*", bin2hex(mhash($hash_id, ($salt . $password_clear)))), 0, $bytes);
}
function mhash( $hash_id, $password_clear ) {
switch( $hash_id ) {
case MHASH_MD5:
$emuhash = openssl_hash( MHASH_MD5, $password_clear );
break;
case MHASH_SHA1:
$emuhash = openssl_hash( MHASH_SHA1, $password_clear );
break;
case MHASH_RIPEMD160:
$emuhash = openssl_hash( MHASH_RIPEMD160, $password_clear );
break;
default:
$emuhash = FALSE;
}
return $emuhash;
}
function mhash_keygen_s2k( $hash_id, $password_clear, $salt, $bytes ) {
return substr(pack("H*", bin2hex(mhash($hash_id, ($salt . $password_clear)))), 0, $bytes);
}
/******************************************************************************/
}
}
?>

View File

@@ -1,7 +1,7 @@
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.js,v 1.2 2004/03/19 20:18:41 i18phpldapadmin Exp $
function dnChooserPopup( form_element )
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.js,v 1.3 2005/02/10 12:34:26 wurley Exp $
function dnChooserPopup(form_element,rdn)
{
mywindow=open('entry_chooser.php','myname','resizable=no,width=600,height=370,scrollbars=1');
mywindow.location.href = 'entry_chooser.php?form_element=' + form_element;
mywindow.location.href = 'entry_chooser.php?form_element=' + form_element + '&rdn=' + rdn;
if (mywindow.opener == null) mywindow.opener = self;
}

View File

@@ -1,90 +1,100 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.php,v 1.16 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.php,v 1.23 2005/03/25 16:30:21 wurley Exp $
/**
* Display a selection (popup window) to pick a DN.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false;
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false;
$return_form_element = isset( $_GET['form_element'] ) ? htmlspecialchars( $_GET['form_element'] ) : null;
$rdn = isset( $_GET['rdn'] ) ? htmlspecialchars( $_GET['rdn'] ) : null;
include "header.php";
include "./header.php";
echo "<h3 class=\"subtitle\">" . $lang['entry_chooser_title'] . "</h3>\n";
flush();
?>
flush(); ?>
<script language="javascript">
function returnDN( dn )
{
function returnDN( dn ) {
opener.document.<?php echo $return_form_element; ?>.value = dn;
close();
}
</script>
<?php
if( $container ) {
echo $lang['server_colon_pare'] . "<b>" . htmlspecialchars( $servers[ $server_id ][ 'name' ] ) . "</b><br />\n";
<?php if( $container ) {
echo $lang['server_colon_pare'] . "<b>" . htmlspecialchars( $servers[ $server_id ][ 'name' ] ) . "</b><br />\n";
echo $lang['look_in'] . "<b>" . htmlspecialchars( $container ) . "</b><br />\n";
}
/* Has the use already begun to descend into a specific server tree? */
if( $server_id !== false && $container !== false )
{
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( $server_id !== false && $container !== false ) {
$ldapserver = new LDAPServer($server_id);
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn_list = get_container_contents( $server_id, $container, 0, '(objectClass=*)', get_tree_deref_setting() );
$dn_list = get_container_contents( $ldapserver, $container, 0, '(objectClass=*)', get_tree_deref_setting() );
sort( $dn_list );
$base_dn = $servers[ $server_id ][ 'base' ];
if( ! $base_dn )
$base_dn = try_to_get_root_dn( $server_id );
foreach ($ldapserver->getBaseDN() as $base_dn) {
debug_log(sprintf('%s: Comparing BaseDN [%s] with container [%s]','entry_chooser.php',$base_dn,$container),9);
if( 0 == pla_compare_dns( $container, $base_dn ) ) {
$parent_container = false;
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s',$return_form_element,$rdn);
break;
if( 0 == pla_compare_dns( $container, $base_dn ) ) {
$parent_container = false;
$up_href = "entry_chooser.php?form_element=$return_form_element";
} else {
$parent_container = get_container( $container );
$up_href = "entry_chooser.php?form_element=$return_form_element&amp;server_id=$server_id&amp;container=" .
rawurlencode( $parent_container );
} else {
$parent_container = get_container( $container );
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s&amp;server_id=%s&amp;container=%s',
$return_form_element,$rdn,$server_id,rawurlencode( $parent_container ));
}
}
echo "&nbsp;<a href=\"$up_href\" style=\"text-decoration:none\">" .
"<img src=\"images/up.png\"> ". $lang['back_up_p'] ."</a><br />\n";
if( count( $dn_list ) == 0 )
echo "&nbsp;&nbsp;&nbsp;(". $lang['no_entries'] .")<br />\n";
else
foreach( $dn_list as $dn ) {
$href = "javascript:returnDN( '$dn' )";
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=$return_form_element".
$href = sprintf("javascript:returnDN( '%s%s' )",($rdn ? "$rdn," : ''),$dn);
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=$return_form_element&rdn=$rdn".
"&amp;server_id=$server_id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
}
}
/* draw the root of the selection tree (ie, list all the servers) */
else
{
} else {
foreach( $servers as $id => $server ) {
if( $server['host'] ) {
echo "<b>" . htmlspecialchars( $server['name'] ) . "</b><br />\n";
if( ! have_auth_info( $id ) )
echo "<small>&nbsp;&nbsp;&nbsp;(" . $lang['not_logged_in'] . ")</small><br />";
$ldapserver = new LDAPServer($id);
if( $ldapserver->isVisible() ) {
if( ! $ldapserver->haveAuthInfo() )
continue;
else {
$dn = ( $server['base'] ? $server['base'] : try_to_get_root_dn( $id ) );
if( ! $dn ) {
echo "<small>&nbsp;&nbsp;&nbsp;(". $lang['could_not_det_base_dn'] .")</small><br />";
} else {
$href = "javascript:returnDN( '$dn' )";
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" .
"$return_form_element&amp;server_id=$id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
echo "<b>" . htmlspecialchars( $ldapserver->name ) . "</b><br />\n";
foreach ($ldapserver->getBaseDN() as $dn) {
if( ! $dn ) {
echo "<small>&nbsp;&nbsp;&nbsp;(". $lang['could_not_det_base_dn'] .")</small><br />";
} else {
$href = sprintf("javascript:returnDN( '%s%s' )",($rdn ? "$rdn," : ''),$dn);
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" .
"$return_form_element&rdn=$rdn&amp;server_id=$id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
}
}
}
}
@@ -102,5 +112,4 @@ $elmpart =substr($return_form_element,strpos($return_form_element,".")+1);
// rebuilt return value
$return_form_element = $formpart . ".elements[\"" . $elmpart . "\"]";
?>

View File

@@ -1,21 +1,29 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/expand.php,v 1.18 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/expand.php,v 1.20 2005/03/05 06:27:06 wurley Exp $
/*
* expand.php
/**
* This script alters the session variable 'tree', expanding it
* at the dn specified in the query string.
* at the dn specified in the query string.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* Note: this script is equal and opposite to collapse.php
* @package phpLDAPadmin
* @see collapse.php
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
// no expire header stuff
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
@@ -30,17 +38,12 @@ $dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
initialize_session_tree();
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$contents = get_container_contents( $server_id, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
$contents = get_container_contents( $ldapserver, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
usort( $contents, 'pla_compare_dns' );
$tree[$server_id][$dn] = $contents;
@@ -50,7 +53,7 @@ $tree[$server_id][$dn] = $contents;
//exit;
foreach( $contents as $dn )
$tree_icons[$server_id][$dn] = get_icon( $server_id, $dn );
$tree_icons[$server_id][$dn] = get_icon( $ldapserver, $dn );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
@@ -64,9 +67,8 @@ $random_junk = md5( strtotime( 'now' ) . $time['usec'] );
// If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect
$id_session_param="";
if( SID != "" ){
if( SID != "" )
$id_session_param = "&".session_name()."=".session_id();
}
session_write_close();

View File

@@ -1,30 +1,39 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export.php,v 1.11 2004/10/23 21:13:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export.php,v 1.13 2005/03/05 04:26:25 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require 'export_functions.php';
// get the POST parameters
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$base_dn = isset($_POST['dn']) ? $_POST['dn']:NULL;
$server_id = isset($_POST['server_id']) ? $_POST['server_id']:NULL;
$format = isset( $_POST['format'] ) ? $_POST['format'] : "unix";
$scope = isset($_POST['scope']) ? $_POST['scope'] : 'base';
$filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*';
$target = isset($_POST['target']) ? $_POST['target'] : 'display';
$save_as_file = isset( $_POST['save_as_file'] ) && $_POST['save_as_file'] == 'on';
$attributes = array();
// add system attributes if needed
$attributes = array();
if( isset( $_POST['sys_attr'] ) ){
array_push($attributes,'*');
array_push($attributes,'+');
}
isset($_POST['exporter_id']) or pla_error( $lang['must_choose_export_format'] );
$exporter_id = $_POST['exporter_id'];
isset($exporters[$exporter_id]) or pla_error( $lang['invalid_export_format'] );
// do some check
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// Initialisation of other variables
$rdn = get_rdn( $base_dn );
$friendly_rdn = get_rdn( $base_dn, 1 );

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_form.php,v 1.19 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_form.php,v 1.20 2005/02/25 13:44:06 wurley Exp $
/**
* export_form.php
@@ -7,6 +7,9 @@
*
* Html form to choose an export format(ldif,...)
*
* @package phpLDAPadmin
*/
/**
*/
require 'export_functions.php';

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_functions.php,v 1.20 2004/11/03 22:00:52 xrenard Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_functions.php,v 1.26 2005/03/21 12:43:17 wurley Exp $
/**
* Fuctions and classes for exporting ldap entries to others formats
@@ -9,31 +9,38 @@
* @author The phpLDAPadmin development team
* @see export.php and export_form.php
*/
/**
*/
// include common configuration definitions
include('common.php');
include('./common.php');
// registry for the exporters
$exporters = array();
$exporters[] = array('output_type'=>'ldif',
'desc' => 'LDIF',
'extension' => 'ldif'
);
$exporters[] = array(
'output_type'=>'ldif',
'desc' => 'LDIF',
'extension' => 'ldif'
);
$exporters[] = array('output_type'=>'dsml',
'desc' => 'DSML V.1',
'extension' => 'xml'
);
$exporters[] = array(
'output_type'=>'dsml',
'desc' => 'DSML V.1',
'extension' => 'xml'
);
$exporters[] = array('output_type'=>'vcard',
'desc' => 'VCARD 2.1',
'extension' => 'vcf'
);
$exporters[] = array('output_type'=>'csv',
'desc' => $lang['csv_spreadsheet'],
'extension' => 'csv'
);
$exporters[] = array(
'output_type'=>'vcard',
'desc' => 'VCARD 2.1',
'extension' => 'vcf'
);
$exporters[] = array(
'output_type'=>'csv',
'desc' => $lang['csv_spreadsheet'],
'extension' => 'csv'
);
/**
* This class encapsulate informations about the ldap server
@@ -47,36 +54,33 @@ $exporters[] = array('output_type'=>'csv',
* it indicates the query filter for the search.
* $scope: if the source of the export is the ldap server,
* it indicates the scope of the search.
* $server_host: the host name of the server.
* $server_name: the name of the server.
*
* @package phpLDAPadmin
*/
class LdapInfo{
class LdapExportInfo extends LDAPServer{
var $base_dn;
var $query_filter;
var $scope;
var $server_host = NULL;
var $server_name = NULL;
var $server_id = NULL;
/**
* Create a new LdapInfo object
* Create a new LdapExportInfo object
*
* @param int $server_id the server id
* @param String $base_dn the base_dn for the search in a ldap server
* @param String $query_filter the query filter for the search
* @param String scope the scope of the search in a ldap server
* @param String $scope the scope of the search in a ldap server
*/
function LdapInfo($server_id,$base_dn = NULL,$query_filter = NULL,$scope = NULL){
global $servers;
function LdapExportInfo($server_id,$base_dn = NULL,$query_filter = NULL,$scope = NULL){
// Call our parent to initialise.
parent::LDAPServer($server_id);
// global $servers;
$this->base_dn = $base_dn;
$this->query_filter = $query_filter;
$this->scope = $scope;
$this->server_name = $servers[ $server_id ][ 'name' ];
$this->server_host = $servers[ $server_id ][ 'host' ];
$this->server_id = $server_id;
}
}
@@ -91,6 +95,7 @@ class LdapInfo{
* the PlaExporter
*
* @see PlaExporter
* @package phpLDAPadmin
*/
class PlaAbstractExporter{
@@ -139,6 +144,8 @@ class PlaAbstractExporter{
/**
* PlaExporter acts a wrapper around another exporter.
* In other words, it will act as a decorator for another decorator
*
* @package phpLDAPadmin
*/
class PlaExporter extends PlaAbstractExporter{
@@ -238,6 +245,7 @@ class PlaExporter extends PlaAbstractExporter{
/**
* Export data from a ldap server
* @extends PlaAbstractExporter
* @package phpLDAPadmin
*/
class PlaLdapExporter extends PlaAbstractExporter{
@@ -250,7 +258,6 @@ class PlaLdapExporter extends PlaAbstractExporter{
var $ldap_info;
var $queryFilter;
var $hasNext;
var $connection_open_state;
var $attributes;
/**
* Create a PlaLdapExporter object.
@@ -266,17 +273,16 @@ class PlaLdapExporter extends PlaAbstractExporter{
$this->server_id = $server_id;
$this->queryFilter = $queryFilter;
// infos for the server
$this->ldap_info = new LdapInfo($server_id,$base_dn,$queryFilter,$scope);
$this->ldap_info = new LdapExportInfo($server_id,$base_dn,$queryFilter,$scope);
// boolean to check if there is more entries
$this->hasNext = 0;
// boolean to check the state of the connection
$this->connection_open_state = 0;
$this->attributes = $attributes;
// connect to the server
$this->ds = @pla_ldap_connect( $this->server_id );
pla_ldap_connection_is_error( $this->ds );
$this->connection_open_state = 1;
$this->ds = $this->ldap_info->connect();
// @todo test whether we need to call pla_ldap_connection_is_error here.
//pla_ldap_connection_is_error( $this->ds );
// get the data to be exported
if( $this->scope == 'base' )
@@ -349,7 +355,7 @@ class PlaLdapExporter extends PlaAbstractExporter{
//iterate over the attributes
while( $attr ){
if( is_attr_binary( $this->server_id,$attr ) ){
if( is_attr_binary( $this,$attr ) ){
$this->entry_array[$attr] = @ldap_get_values_len( $this->ds,$this->entry_id,$attr );
}
else{
@@ -375,20 +381,22 @@ class PlaLdapExporter extends PlaAbstractExporter{
* May be call when the processing is finished
* and to free some ressources.
* @return bool true or false if any errors is encountered
* @todo This could break something, so need to add a method to LDAPServer to close connection and reset $connected.
*/
function pla_close(){
if($this->connection_open_state){
return @ldap_close( $this->ds );
}
else{
return true;
}
// if($this->ldap_info->connected){
// return @ldap_close( $this->ds );
// }
// else{
// return true;
// }
}
} // end PlaLdapExporter
/**
* Export entries to ldif format
* @extends PlaExporter
* @package phpLDAPadmin
*/
class PlaLdifExporter extends PlaExporter{
@@ -428,7 +436,7 @@ class PlaLdifExporter extends PlaExporter{
// display dn
if( $this->is_safe_ascii( $entry['dn'] ))
$this->multi_lines_display("dn:". $entry['dn']);
$this->multi_lines_display("dn: ". $entry['dn']);
else
$this->multi_lines_display("dn:: " . base64_encode( $entry['dn'] ));
array_shift($entry);
@@ -436,7 +444,7 @@ class PlaLdifExporter extends PlaExporter{
// display the attributes
foreach( $entry as $key => $attr ){
foreach( $attr as $value ){
if( !$this->is_safe_ascii($value) || is_attr_binary($pla_ldap_info->server_id,$key ) ){
if( !$this->is_safe_ascii($value) || is_attr_binary($pla_ldap_info,$key ) ){
$this->multi_lines_display( $key.":: " . base64_encode( $value ) );
}
else{
@@ -458,8 +466,9 @@ class PlaLdifExporter extends PlaExporter{
echo "version: 1$this->br$this->br";
echo "# " . sprintf( $lang['ldif_export_for_dn'], $pla_ldap_info->base_dn ) . $this->br;
echo "# " . sprintf( $lang['generated_on_date'], date("F j, Y g:i a") ) . $this->br;
echo "# " . $lang['server'] . ": " .$pla_ldap_info->server_name . " (" . $pla_ldap_info->server_host . ")" . $this->br;
echo "# " . $lang['server'] . ": " .$pla_ldap_info->name . " (" . $pla_ldap_info->host . ")" . $this->br;
echo "# " . $lang['search_scope'] . ": " . $pla_ldap_info->scope . $this->br;
echo "# " . $lang['search_filter'] . ": " . $pla_ldap_info->query_filter . $this->br;
echo "# " . $lang['total_entries'] . ": " . $this->pla_num_entries() . $this->br;
echo $this->br;
}
@@ -491,6 +500,7 @@ class PlaLdifExporter extends PlaExporter{
/**
* Export entries to DSML v.1
* @extends PlaExporter
* @package phpLDAPadmin
*/
class PlaDsmlExporter extends PlaExporter{
@@ -529,8 +539,9 @@ class PlaDsmlExporter extends PlaExporter{
echo "<!-- " . $this->br;
echo "# " . sprintf( $lang['dsml_export_for_dn'], $pla_ldap_info->base_dn ) . $this->br;
echo "# " . sprintf( $lang['generated_on_date'], date("F j, Y g:i a") ) . $this->br;
echo "# " . $lang['server'] . ": " . $pla_ldap_info->server_name . " (" . $pla_ldap_info->server_host . ")" . $this->br;
echo "# " . $lang['server'] . ": " . $pla_ldap_info->name . " (" . $pla_ldap_info->host . ")" . $this->br;
echo "# " . $lang['search_scope'] . ": " . $pla_ldap_info->scope . $this->br;
echo "# " . $lang['search_filter'] . ": " . $pla_ldap_info->query_filter . $this->br;
echo "# " . $lang['total_entries'] . ": " . $this->pla_num_entries() . $this->br;
echo "-->" . $this->br;
@@ -560,7 +571,7 @@ class PlaDsmlExporter extends PlaExporter{
echo $attr_indent."<attr name=\"$key\">".$this->br;
// if the attribute is binary, set the flag $binary_mode to true
$binary_mode = is_attr_binary($pla_ldap_info->server_id,$key)?1:0;
$binary_mode = is_attr_binary($pla_ldap_info,$key)?1:0;
foreach($attr as $value){
echo $attr_value_indent."<value>".($binary_mode?base64_encode( $value): htmlspecialchars( $value ) )."</value>".$this->br;
@@ -579,6 +590,9 @@ class PlaDsmlExporter extends PlaExporter{
}
/**
* @package phpLDAPadmin
*/
class PlaVcardExporter extends PlaExporter{
// mappping one to one attribute
@@ -621,8 +635,8 @@ class PlaVcardExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
while( $this->pla_has_entry() ){
$entry = $this->pla_fetch_entry_array();
@@ -696,6 +710,7 @@ class PlaVcardExporter extends PlaExporter{
* Export to cvs format
*
* @author Glen Ogilvie
* @package phpLDAPadmin
*/
class PlaCSVExporter extends PlaExporter{
@@ -723,8 +738,8 @@ class PlaCSVExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
$entries = array();
$headers = array();
@@ -769,7 +784,7 @@ class PlaCSVExporter extends PlaExporter{
echo $this->qualifier;
if (key_exists($attr_name, $entry)) {
$binary_attribute = is_attr_binary( $server_id, $attr_name )?1:0;
$binary_attribute = is_attr_binary( $ldap_info, $attr_name )?1:0;
$attr_values = $entry[$attr_name];
@@ -803,6 +818,9 @@ class PlaCSVExporter extends PlaExporter{
/**
* @package phpLDAPadmin
*/
class MyCustomExporter extends PlaExporter{
@@ -825,8 +843,8 @@ class MyCustomExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
// Just a simple loop. For each entry

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,20 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.14 2004/10/24 23:51:49 uugdave Exp $
// We want to get $language into scope in case we were included
// from within a function
global $language;
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.15 2005/02/25 13:44:06 wurley Exp $
// text/xml won't work with MSIE, but is very useful for debugging xhtml code.
//@header( "Content-type: text/xml; charset=\"UTF-8\"" );
@header( "Content-type: text/html; charset=\"UTF-8\"" );
/**
* @package phpLDAPadmin
*/
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
// We want to get $language into scope in case we were included
// from within a function
global $language;
// text/xml won't work with MSIE, but is very useful for debugging xhtml code.
//@header( "Content-type: text/xml; charset=\"UTF-8\"" );
@header( "Content-type: text/html; charset=\"UTF-8\"" );
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
@@ -19,12 +23,14 @@
<head>
<title>phpLDAPadmin</title>
<link rel="stylesheet" href="style.css" media="screen" />
<?php
if( isset( $server_id ) ) {
<?php if( isset( $server_id ) ) {
$custom_file = get_custom_file( $server_id, 'style.css' );
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
<link rel="stylesheet" href="<?php echo $custom_file ?>" media="screen" />
<?php } } ?>
<?php }
} ?>
<script src="entry_chooser.js" type="text/javascript"></script>
<script src="ie_png_work_around.js" type="text/javascript"></script>
<script src="search_util.js" type="text/javascript"></script>

View File

@@ -1,8 +1,16 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/help.php,v 1.5 2005/02/26 12:35:05 wurley Exp $
include 'common.php';
include 'header.php';
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
$forum_href = get_href( 'forum' );
?>
<body>
@@ -12,9 +20,8 @@ include 'header.php';
<center>
<p>Do you have a problem or question?</p>
<p>Perhaps you are new to LDAP and need a little guidance?</p>
<p>Help is only one click away. Visit the online <a href="http://www.phpldapadmin.com/forum">phpLDAPadmin support forum</a>.</p>
<p>Help is only one click away. Visit the online <a href="<?php echo $forum_href; ?>">phpLDAPadmin support forum</a>.</p>
<br />
<p>(Note that paying members will receive priority support, so <a target="new" href="https://www.phpldapadmin.com/product_info.php/products_id/28">buy your membership</a> today.)</p>
</center>
</body>

190
hooks.php Normal file
View File

@@ -0,0 +1,190 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/hooks.php,v 1.5 2005/04/05 07:34:24 wurley Exp $
/**
* Functions related to hooks management.
*
* @author Benjamin Drieu <benjamin.drieu@fr.alcove.com> and Alcôve
* @package phpLDAPadmin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
if ( ! isset($hooks) ) {
/** This variable contains all hooks that are defined. */
$hooks = array();
}
/**
* Compares two arrays by numerically comparing their 'prority'
* value. Standard `cmp-like' function.
*
* @param a First element to compare.
* @param b Second element to compare.
*
* @return -1 if priority of first element is smaller than second
* element priority. 1 otherwise.
*/
function sort_array_by_priority ( $a, $b ) {
return ( ( $a['priority'] < $b['priority'] ) ? -1 : 1 );
}
/**
* Runs procedures attached to a hook.
*
* @param hook_name Name of hook to run.
* @param args Array of optional arguments set by
* phpldapadmin. It is normally in a form known
* by call_user_func_array() :
* <pre>[ 'server_id' => 0,
* 'dn' => 'uid=epoussa,ou=tech,o=corp,o=fr' ]</pre>
*
* @return true if all procedures returned true, false otherwise.
*/
function run_hook ( $hook_name, $args ) {
global $hooks;
$debug = 0;
if ($debug)
syslog_msg ( LOG_DEBUG, "Running hook $hook_name." );
if ( ! array_key_exists ( $hook_name, $hooks ) ) {
syslog_msg ( LOG_NOTICE,"Hook '$hook_name' not defined !\n" );
return true;
}
unset ( $rollbacks );
$rollbacks = array ();
reset ( $hooks[$hook_name] );
/** Execution of procedures attached is done using a numeric order
* since all procedures have been attached to the hook with a
* numerical weight. */
while ( list ( $key, $hook ) = each ( $hooks[$hook_name] ) ) {
array_push ( $rollbacks, $hook['rollback_function'] );
if ($debug)
syslog_msg ( LOG_DEBUG,"Calling " . $hook['hook_function'] . "\n" );
$result = call_user_func_array ( $hook['hook_function'], $args );
syslog_msg ( "Called " . $hook['hook_function'] . "\n" );
/** If a procedure fails, its optional rollback is executed with
* the same arguments. After that, all rollbacks from
* previously executed procedures are executed in the reverse
* order. */
if ( $result != true ) {
if ($debug)
syslog_msg ( LOG_DEBUG, "Function " . $hook['hook_function'] . " returned $result\n" );
while ( $rollbacks ) {
$rollback = array_pop ( $rollbacks );
if ( $rollback != false ) {
if ($debug)
syslog_msg ( LOG_DEBUG,"Executing rollback $rollback\n" );
call_user_func_array ( $rollback, $args );
}
}
return false;
}
}
return true;
}
/**
* Adds a procedure to a hook for later execution.
*
* @param hook_name Name of the hook.
* @param priority Numeric priority. Lowest means
* procedure will be executed before.
* @param hook_function Name of the php function called upon
* hook trigger.
* @param rollback_function Name of the php rollback function
* called upon failure.
*/
function add_hook ( $hook_name, $priority, $hook_function, $rollback_function ) {
global $hooks;
if ( ! array_key_exists ( $hook_name, $hooks ) ) {
$hooks[$hook_name] = array();
}
array_push ( $hooks[$hook_name], array ( 'priority' => $priority, 'hook_function' => $hook_function,
'rollback_function' => $rollback_function ) );
uasort ( $hooks[$hook_name], "sort_array_by_priority" );
}
/**
* Removes a procedure from a hook, based on a filter.
*
* @param hook_name Name of the hook.
* @param priority Numeric priority. If set, all
* procedures of that priority will be
* removed.
* @param hook_function Name of the procedure function. If
* set, all procedures that call this
* function will be removed.
* @param rollback_function Name of the php rollback function
* called upon failure. If set, all
* procedures that call this function
* as a rollback will be removed.
*/
function remove_hook ( $hook_name, $priority, $hook_function, $rollback_function ) {
global $hooks;
if ( array_key_exists ( $hook_name, $hooks ) ) {
reset ( $hooks[$hook_name] );
while ( list ( $key, $hook ) = each ( $hooks[$hook_name] ) ) {
if ( ( $priority >= 0 && $priority == $hook['priority'] ) ||
( $hook_function && $hook_function == $hook['hook_function'] ) ||
( $rollback_function && $rollback_function == $hook['rollback_function'] ) ) {
unset ( $hooks[$hook_name][$key] );
}
}
}
}
/**
* Removes all procedures from a hook.
*
* @param hook_name Name of hook to clear.
*/
function clear_hooks ( $hook_name ) {
global $hooks;
if ( array_key_exists ( $hook_name, $hooks ) ) {
unset ( $hooks[$hook_name] );
}
}
/* Evaluating user-made hooks */
if ( is_dir('hooks') ) {
$dir = dir ('hooks');
while (false !== ($entry = $dir -> read() ) ) {
if ( is_file ("hooks/$entry") and eregi ('php[0-9]?$', $entry) ) {
require_once "hooks/$entry";
}
}
$dir -> close();
}
?>

BIN
images/compare.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@@ -1,6 +1,15 @@
<?php
require_once '../header.php';
/**
* This will show a nice table of all the icons used by phpLDAPadmin.
* @package phpLDAPadmin
*/
/**
*/
?>
<html>
<head>
<link rel="stylesheet" href="../style.css" media="screen" />
</head>
<body>
<h3 class="title">phpLDAPadmin icons</h3>
<br />
@@ -9,7 +18,6 @@
$dir = opendir( '.' );
while( ( $file = readdir( $dir ) ) !== false ) {
$counter++;
if( $file == '.' || $file == '..' )
continue;
if( ! preg_match( '/\.png$/', $file ) )
@@ -19,15 +27,22 @@ while( ( $file = readdir( $dir ) ) !== false ) {
$files[ filesize( $file ) . '_' . $file ] = $file;
}
ksort( $files );
sort( $files );
$cell_style = "color: #888; text-align:center; padding: 10px; padding-bottom: 20px; vertical-align: bottom;";
$counter = 0;
print "<center><b>The " . count( $files ) . " icons used by phpLDAPadmin</b></center>";
echo "<table style=\"font-family: arial; font-size: 12px;\">";
echo "<tr>";
foreach( $files as $file ) {
if( $counter % 6 == 0 ) {
echo "</tr>\n";
flush();
echo "<tr>";
}
$counter++;
echo '<img title="' . htmlspecialchars( $file ) . '" src="' . htmlspecialchars( $file ) . '" />&nbsp;&nbsp;';
if( $counter % 15 == 0 )
echo '<br /><br />';
flush();
echo '<td style="' . $cell_style . '"><img title="' . htmlspecialchars( $file ) . '" src="' . htmlspecialchars( $file ) . '" /><br />';
echo "$file</td>\n";
}
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/timeout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

151
index.php
View File

@@ -1,6 +1,9 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/index.php,v 1.30 2004/08/19 13:26:28 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/index.php,v 1.32 2005/02/26 12:35:05 wurley Exp $
/**
* @package phpLDAPadmin
*/
/*******************************************
<pre>
@@ -14,36 +17,36 @@ PHP is not installed on your web server!!!
require './common.php';
if( ! file_exists(realpath( 'config.php' )) ) {
?>
<html>
<head>
<title>phpLDAPadmin - <?php echo pla_version(); ?></title>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h3 class="title">Configure phpLDAPadmin</h1>
<br />
<br />
<center>
<?php echo $lang['need_to_configure']; ?>
</center>
</body>
</html>
<?php } elseif( check_config() ) {
<?php } elseif( check_config() ) {
require 'config.php';
require './config.php';
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">
<head><title>phpLDAPadmin - <?php echo pla_version(); ?></title></head>
<frameset cols="<?php echo $tree_width; ?>,*">
@@ -53,12 +56,7 @@ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
</html>
<?php } else { ?>
<?php } ?>
<?php
<?php }
/*
* Makes sure that the config file is properly setup and
@@ -66,24 +64,22 @@ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
* TODO: Check ALL config elements for correctness in syntax
* TODO: Make sure all required config stuff is defined.
*/
function check_config()
{
global $lang;
function check_config() {
global $lang;
/* Make sure their PHP version is current enough */
if( strcmp( phpversion(), REQUIRED_PHP_VERSION ) < 0 ) {
pla_error( "phpLDAPadmin requires PHP version 4.1.0 or greater. You are using " . phpversion() );
}
/* Make sure this PHP install has LDAP support */
if( ! extension_loaded( 'ldap' ) )
{
if( ! extension_loaded( 'ldap' ) ) {
pla_error( "Your install of PHP appears to be missing LDAP support. Please install " .
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)" );
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)" );
return false;
}
/* Make sure the config file is readable */
//if( ! is_readable( 'config.php' ) )
if( ! is_readable( realpath( 'config.php' ) ) ) {
pla_error( "The config file 'config.php' is not readable. Please check its permissions." );
return false;
@@ -91,69 +87,75 @@ function check_config()
// Make sure their session save path is writable, if they are using a file system session module, that is.
if( 0 == strcasecmp( "Files", session_module_name() && ! is_writable( realpath( session_save_path() ) ) ) ) {
pla_error( "Your PHP session configuration is incorrect. Please check the value of session.save_path
in your php.ini to ensure that the directory specified there exists and is writable.
The current setting of \"". session_save_path() . "\" is un-writable by the web server." );
return false;
pla_error( "Your PHP session configuration is incorrect. Please check the value of session.save_path
in your php.ini to ensure that the directory specified there exists and is writable.
The current setting of \"". session_save_path() . "\" is un-writable by the web server." );
return false;
}
/* check for syntax errors in config.php */
// capture the result of including the file with output buffering
ob_start();
include 'config.php';
include './config.php';
$str = ob_get_contents();
ob_end_clean();
if( $str && false !== strpos( $str, 'error' ) ) {
if( $str && false !== strpos( $str, 'error' ) ) {
$str = strip_tags( $str );
$matches = array();
preg_match( "/on line (\d+)/", $str, $matches );
$line_num = $matches[1];
$file = file( 'config.php' );
?>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<center>
Looks like your config file has a syntax error on line <?php echo $line_num; ?>.
Here is a snippet around that line
<br />
<br />
<div style="text-align: left; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">
<tt>
<?php
for( $i=$line_num-9; $i<$line_num+5; $i++ ) {
if( $i+1 == $line_num )
echo "<div style=\"color:red;background:#fdd\">";
if( $i < 0 )
continue;
echo "<b>" . ($i+1) . "</b>: " . htmlspecialchars($file[ $i ]) . "<br />";
if( $i+1 == $line_num )
echo "</div>";
}
?>
</tt>
</div>
<br />
Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.
</body>
</html>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<?php
return false;
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<center>
Looks like your config file has a syntax error on line <?php echo $line_num; ?>.
Here is a snippet around that line
<br />
<br />
<div style="text-align: left; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">
<tt>
<?php for( $i=$line_num-9; $i<$line_num+5; $i++ ) {
if( $i+1 == $line_num )
echo "<div style=\"color:red;background:#fdd\">";
if( $i < 0 )
continue;
echo "<b>" . ($i+1) . "</b>: " . htmlspecialchars($file[ $i ]) . "<br />";
if( $i+1 == $line_num )
echo "</div>";
}
?>
</tt>
</div>
<br />
Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.
</body>
</html>
<?php return false;
}
/* check the existence of the servers array */
require 'config.php';
require './config.php';
if( ! isset( $servers ) || ! is_array( $servers ) || count( $servers ) == 0 ) {
pla_error( "Your config.php is missing the \$servers array or the \$servers array is empty.
Please see the sample file config.php.example ", false );
Please see the sample file config.php.example ", false );
return false;
}
@@ -162,6 +164,7 @@ function check_config()
foreach( $servers as $i => $server )
if( isset( $server['host'] ) )
$count++;
if( $count == 0 ) {
pla_error( "None of the " . count($servers) . " servers in your \$servers configuration is
active in config.php. At least one of your servers must set the 'host' directive.
@@ -170,13 +173,14 @@ function check_config()
return false;
}
// Check that 'base' is present on all serve entries
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) && isset( $server['name'] ) )
isset( $server['base'] ) or pla_error ( "Your configuration has an error. You omitted the 'base' directive
on server number $id. Your server entry must have a 'base' directive
even if it's empty ('')." );
}
// Check that 'base' is present on all serve entries
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) && isset( $server['name'] ) )
isset( $server['base'] )
or pla_error ( "Your configuration has an error. You omitted the 'base' directive
on server number $id. Your server entry must have a 'base' directive
even if it's empty ('')." );
}
// Check each of the servers in the servers array
foreach( $servers as $id => $server ) {
@@ -184,7 +188,7 @@ function check_config()
// Make sure they specified an auth_type
if( ! isset( $server['auth_type'] ) ) {
pla_error( "Your configuratoin has an error. You omitted the 'auth_type' directive on server number $id
pla_error( "Your configuration has an error. You omitted the 'auth_type' directive on server number $id
'auth_type' must be set, and it must be one of 'config', 'cookie', or 'session'.", false );
return false;
}
@@ -200,5 +204,4 @@ function check_config()
return true;
}
?>

View File

@@ -1,7 +1,7 @@
#
# This Makefile (lang/Makefile) converts the source lang files to UTF8
# coding. You need iconv installed to use it.
# $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/Makefile,v 1.24 2004/12/09 14:12:16 uugdave Exp $
# $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/Makefile,v 1.25 2005/02/06 00:21:30 wurley Exp $
# ToDo: detect the encoding in the "source"
#
# posible detect of the language
@@ -34,10 +34,10 @@ TARGETS=${DESTDIR}/auto.php \
${DESTDIR}/pt-br.php \
${DESTDIR}/ru.php \
${DESTDIR}/sv.php \
${DESTDIR}/zh-cn.php \
${DESTDIR}/zh-tw.php \
${DESTDIR}/zz.php \
${DESTDIR}/zzz.php
# OFF zh-tw.php
# ${DESTDIR}/zh-tw.php \
default:
@echo "usage:"
@@ -129,11 +129,16 @@ ${DESTDIR}/ru.php: ru.php
@echo "Fixing encoding ru.php to UTF8 "${DESTDIR}/ru.php
@iconv -f utf8 -t utf8 ru.php > ${DESTDIR}/ru.php
#${DESTDIR}/zh-tw.php: zh-tw.php
# @echo "Copying only the zh-tw.php"
# @iconv -f utf8 -t utf8 zh-tw.php ${DESTDIR}/zh-tw.php
${DESTDIR}/zh-cn.php: zh-cn.php
@echo "Copying only the zh-cn.php"
@cp zh-cn.php ${DESTDIR}/zh-cn.php
${DESTDIR}/zh-tw.php: zh-tw.php
@echo "Copying only the zh-tw.php"
@cp zh-tw.php ${DESTDIR}/zh-tw.php
# @iconv -f utf8 -t utf8 zh-tw.php ${DESTDIR}/zh-tw.php
# INTERNAL BUG COULDN CONVERT IT, SO WE COPY IT
# cp zh-tw.php ${DESTDIR}/zh-tw.php
${DESTDIR}/zz.php: zz.php
@echo "Copying only the zz.php"
@cp zz.php ${DESTDIR}/.

View File

@@ -1,8 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/auto.php,v 1.9 2004/12/09 14:02:24 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/auto.php,v 1.10 2005/02/06 00:21:30 wurley Exp $
// Language for auto-detect
// phpldapadmin/lang/auto.php in $Revision: 1.9 $
// phpldapadmin/lang/auto.php in $Revision: 1.10 $
$useLang="en"; // default use english encoding, a Option in Config would be nice
// keep the beginning and ending spaces, they are used for finding the best language
@@ -30,6 +30,8 @@ $langSupport=array(" ca "=>"ca" // catalan
," ru-"=>"ru" // ru- exits?
," sv "=>"sv" //swedish
," sv-"=>"sv" // swedisch to
," zh-cn"=>"zh-cn" // simplified chinese
," zh-tw"=>"zh-tw" // taiwan?
);// all supported languages in this array
// test

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/en.php,v 1.107 2005/01/07 04:06:27 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/en.php,v 1.121 2005/03/26 01:18:28 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@@ -31,7 +31,6 @@ $lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['show_attributes'] = 'Show Attributtes';
$lang['attributes'] = 'Attributes';
$lang['Search'] = 'Search';
$lang['predefined_search_str'] = 'Select a predefined search';
$lang['predefined_searches'] = 'Predefined Searches';
@@ -74,13 +73,13 @@ $lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'The base entry does not exist.';
$lang['base_entry_does_not_exist'] = 'This base entry does not exist.';
$lang['create_it'] = 'Create it?';
// Entry display
$lang['delete_this_entry'] = 'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Copy this entry';
$lang['copy_this_entry'] = 'Copy or move this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Export';
$lang['export_lcase'] = 'export';
@@ -118,6 +117,7 @@ $lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add new binary attribute';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['required_for'] = 'Required attribute for objectClass(es) %s';
$lang['required_by_entry'] = 'This attribute is required for the RDN.';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
@@ -127,13 +127,10 @@ $lang['really_delete_attribute'] = 'Really delete attribute';
$lang['add_new_value'] = 'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'The following objectClasses are supported by this LDAP server.';
$lang['the_following_attributes'] = 'The following attributeTypes are supported by this LDAP server.';
$lang['the_following_matching'] = 'The following matching rules are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'The following syntaxes are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_3']='phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_4']='Or lastly, your LDAP server doesnt provide this information.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute type';
@@ -233,19 +230,15 @@ $lang['not_enough_login_info'] = 'Not enough information to login to server. Ple
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['home'] = 'Home';
$lang['help'] = 'Help';
$lang['success'] = 'Success';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = 'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'No DN specified in query string!';
$lang['back_up_p'] = 'Back Up...';
$lang['no_entries'] = 'no entries';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='Please report this as a bug.';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='Yes';
$lang['no']='No';
@@ -254,13 +247,16 @@ $lang['delete']='Delete';
$lang['back']='Back';
$lang['object']='object';
$lang['delete_all']='Delete all';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'hint';
$lang['bug'] = 'bug';
$lang['warning'] = 'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceed &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin cannot safely encrypt & decrypt your sensitive information, because $blowfish_secret is not set in config.php. You need to edit config.php and set $blowfish_secret to some secret string now.';
$lang['jpeg_dir_not_writable'] = 'Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php';
$lang['jpeg_dir_not_writable_error'] = 'Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.';
$lang['jpeg_unable_toget'] = 'Could not fetch jpeg data from LDAP server for attribute %s.';
$lang['jpeg_delete'] = 'Delete photo';
// Add value form
$lang['add_new'] = 'Add new';
@@ -294,8 +290,8 @@ $lang['must_choose_template'] = 'You must choose a template';
$lang['invalid_template'] = '%s is an invalid template';
$lang['using_template'] = 'using template';
$lang['go_to_dn'] = 'Go to %s';
+$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
+$lang['structural'] = 'structural';
$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
$lang['structural'] = 'structural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
@@ -307,8 +303,9 @@ $lang['copyf_note'] = 'Hint: Copying between different servers only works if the
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Recursive copy';
$lang['filter'] = 'Filter';
$lang['search_filter'] = 'Search Filter';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['delete_after_copy'] = 'Delete after copy (move):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
@@ -356,10 +353,8 @@ $lang['scope_base'] = 'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Search for entries whose:';
$lang['equals'] = 'equals';
$lang['starts with'] = 'starts with';
$lang['contains'] = 'contains';
@@ -386,6 +381,7 @@ $lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
$lang['unable_create_samba_pass'] = 'Unable to create samba password. Please check your configuration in template_config.php';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
@@ -397,8 +393,6 @@ $lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'To donate funds to the phpLDAPadmin project, use one of the PayPal buttons below.';
$lang['donate_amount'] = 'Donate %s';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'View Dave\'s phpLDAPadmin wish list';
$lang['purge_cache'] = 'Purge caches';
$lang['no_cache_to_purge'] = 'No cache to purge.';
@@ -437,15 +431,15 @@ $lang['could_not_bind_anon'] = 'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Could not set cookie.';
$lang['ldap_said'] = 'LDAP said: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'browse';
$lang['delete_photo'] = 'Delete Photo';
$lang['install_not_support_blowfish'] = 'Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your PHP install does not support md5crypt encryption.';
$lang['install_not_support_ext_des'] = 'Your system crypt library does not support extended DES encryption.';
$lang['install_not_support_blowfish'] = 'Your system crypt library does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your system crypt library does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Error number: %s (%s)';
@@ -457,8 +451,10 @@ $lang['ferror_unrecognized_num'] = 'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
@@ -514,16 +510,14 @@ $lang['searching'] = 'Searching...';
$lang['size_limit_exceeded'] = 'Notice, search size limit exceeded.';
$lang['entry'] = 'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export for: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://www.phpldapadmin.com/ ) on %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['total_entries'] = 'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Include system attributes';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
$lang['could_not_find_user'] = 'Could not find a user "%s"';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'Login cancelled.';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'Could not logout.';
$lang['unknown_auth_type'] = 'Unknown auth_type: %s';
@@ -535,6 +529,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'User name';
$lang['password'] = 'Password';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.';
// Entry browser
$lang['entry_chooser_title'] = 'Entry Chooser';
@@ -565,7 +560,6 @@ $lang['invalid_rdn'] = 'Invalid RDN value';
$lang['could_not_rename'] = 'Could not rename the entry';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin does not yet support PHP 5. You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = 'Your configuration has an error. $search_attributes must have the same number of attributes as $search_attributes_display.';
// Password checker
@@ -577,7 +571,6 @@ $lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@@ -671,4 +664,22 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
// compare form
$lang['compare'] = 'Compare';
$lang['comparing'] = 'Comparing the following DNs';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = 'Source DN';
$lang['compf_dn_tooltip'] = 'Compare this DN with another';
$lang['switch_entry'] = 'Switch Entry';
$lang['no_value'] = 'No Value';
$lang['compare_with'] = 'Compare with another entry';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Your Session timed out after';
$lang['session_timed_out_2'] = 'min. of inactivity. You have been automatically logged out.';
$lang['log_back_in'] = 'To log back in please click on the following link:';
$lang['session_timed_out_tree'] = '(Session timed out. Automatically logged out.)';
$lang['timeout_at'] = 'Inactivity will log you off at %s';
?>

View File

@@ -1,28 +1,37 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/es.php,v 1.19 2004/06/07 13:01:28 uugdave Exp $
/*
* Spanish (es_ES) translation file for phpLDAPadmin
*
* Date: 02/05/2005
* Source: CVS snapshot of en.php as of 02/05/2005
* Translator: Miguelanxo Otero Salgueiro <miguelanxo@telefonica.net>
*/
// Search form
$lang['simple_search_form_str'] = 'Formulario de b<>squeda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de b<>squeda avanzada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objetos los cuales';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Alcance de la b<>squeda';
$lang['search_ filter'] = 'Filtro de B<>squeda';
$lang['search_for_entries_whose'] = 'Buscar objetos que';
$lang['base_dn'] = 'DN base';
$lang['search_scope'] = '<EFBFBD>mbito de b<>squeda';
$lang['show_attributes'] = 'Mostrar atributos';
$lang['attributes'] = 'Atributos';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'comienza con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'termina con';
$lang['sounds_like'] = 'suena como';
$lang['predefined_search_str'] = 'Seleccionar una b<>squeda predefinida';
$lang['predefined_searches'] = 'B<>squedas predefinidas';
$lang['no_predefined_queries'] = 'No hay ninguna b<>squeda predefinida en config.php.';
$lang['export_results'] = 'exportar resultados';
$lang['unrecoginzed_search_result_format'] = 'Formato de resultado de b<>squeda no reconocido: %s';
$lang['format'] = 'Formato';
$lang['list'] = 'lista';
$lang['table'] = 'tabla';
$lang['bad_search_display'] = 'Su config.php especifica un valor no v<>lido para $default_search_display: %s. Por favor, arr<72>glelo';
$lang['page_n'] = 'P<>gina %d';
$lang['no_results'] = 'La b<>squeda no ha encontrado resultados.';
// Tree browser
$lang['request_new_feature'] = 'Pedir funcionalidad';
$lang['see_open_requests'] = 'Ver las peticiones';
$lang['report_bug'] = 'Reportar un error';
$lang['see_open_bugs'] = 'Ver los errores';
$lang['request_new_feature'] = 'Solicitar una nueva funcionalidad';
$lang['report_bug'] = 'Informar de un error';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
@@ -30,313 +39,617 @@ $lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'salir';
$lang['create_new'] = 'Crear Nuevo Objeto';
$lang['view_schema_for'] = 'Ver esquema para';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos para';
$lang['create_new_entry_on'] = 'Crear nuevo objeto en';
$lang['view_server_info'] = 'Ver informaci<63>n del servidor';
$lang['import_from_ldif'] = 'Importar objetos de archivo LDIF';
$lang['logout_of_this_server'] = 'Salir de este servidor';
$lang['create_new'] = 'Crear nuevo objeto';
$lang['view_schema_for'] = 'Ver el esquema del';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos del';
$lang['create_new_entry_on'] = 'Crear un nuevo objeto en el';
$lang['new'] = 'nuevo';
$lang['view_server_info'] = 'Ver la informaci<63>n enviada por el servidor';
$lang['import_from_ldif'] = 'Importar desde un fichero LDIF';
$lang['logout_of_this_server'] = 'Desconectar del servidor';
$lang['logged_in_as'] = 'Conectado como: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raiz del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece ser que el servidor LDAP se ha configurado para no revelar su raiz.';
$lang['please_specify_in_config'] = 'Por favor especif<69>cala en el archivo config.php';
$lang['create_new_entry_in'] = 'Crear un nuevo objeto en';
$lang['login_link'] = 'Autenticaci<63>n...';
$lang['this_base_dn_is_not_valid'] = 'Esta DN base no es v<>lida.';
$lang['this_base_dn_does_not_exist'] = 'Este objeto no existe.';
$lang['read_only'] = 's<>lo lectura';
$lang['read_only_tooltip'] = 'Este atributo ha sido marcado como de s<>lo lectura por el administrador de phpLDAPadmin';
$lang['could_not_determine_root'] = 'No se ha podido determinar la ra<72>z de su <20>rbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su ra<72>z.';
$lang['please_specify_in_config'] = 'Por fav<61>r, especif<69>quela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificaci<63>n';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '<27>Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendr<EFBFBD> que confirmar esta decision';
$lang['delete_this_entry_tooltip'] = 'Se le pedir<69> confirmaci<63>n';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto para otra localizaci<63>n, DN nuevo, o para otro servidor.';
$lang['export_to_ldif'] = 'Exportar archivo LDIF';
$lang['export_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto';
$lang['export_subtree_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto i todos sus objetos hijos';
$lang['export_subtree_to_ldif'] = 'Exportar archivo LDIF de sub-estructura';
$lang['export_mac'] = 'Avance de l<>nea de Macintosh';
$lang['export_win'] = 'Avance de l<>nea de Windows';
$lang['export_unix'] = 'Avance de l<>nea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto en otro sitio: un nuevo DN u otro servidor';
$lang['export'] = 'Exportar';
$lang['export_lcase'] = 'exportar';
$lang['export_tooltip'] = 'Exportar este objeto';
$lang['export_subtree_tooltip'] = 'Exportar este objeto y todos sus hijos';
$lang['export_subtree'] = 'Exportar sub<75>rbol';
$lang['create_a_child_entry'] = 'Crear un objeto hijo';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$lang['add'] = 'A<EFBFBD>adir';
$lang['view'] = 'Ver';
$lang['add_new_attribute'] = 'Agregar nuevo atributo';
$lang['add_new_attribute_tooltip'] = 'Agregar nuevo atributo/valor a este objeto';
$lang['internal_attributes'] = 'Atributos Internos';
$lang['hide_internal_attrs'] = 'ocultar los atributos internos';
$lang['show_internal_attrs'] = 'mostrar els atributos internos';
$lang['internal_attrs_tooltip'] = 'Los atributos fijos automaticamente para el servidor';
$lang['entry_attributes'] = 'Atributos del objeto';
$lang['attr_name_tooltip'] = 'Haz click para ver la definicion del esquema para tipos de atributo \'%s\'';
$lang['click_to_display'] = 'Haz click para mostrar';
$lang['hidden'] = 'ocultado';
$lang['view_one_child'] = 'Ver 1 hijo';
$lang['view_children'] = 'Ver %s hijos';
$lang['add_new_attribute'] = 'A<EFBFBD>adir atributo';
$lang['add_new_objectclass'] = 'A<>adir ObjectClass';
$lang['hide_internal_attrs'] = 'Ocultar atributos internos';
$lang['show_internal_attrs'] = 'Mostrar atributos internos';
$lang['attr_name_tooltip'] = 'Haga click para ver el esquema del atributo de tipo \'%s\'';
$lang['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los cambios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$lang['no_internal_attributes'] = 'No hay atributos internos';
$lang['no_attributes'] = 'Este objeto no tiene atributos';
$lang['save_changes'] = 'Guardar cambios';
$lang['add_value'] = 'a<>adir valor';
$lang['add_value_tooltip'] = 'A<>adir un valor al atributo \'%s\'';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Pista: <b>Para borrar un atributo</b>, vac<61>a el formulario de texto y haz click en Guardar.';
$lang['attr_schema_hint'] = 'Pista: <b>Para ver el esquema de un atributo</b>, haz click en el nombre del atributo.';
$lang['attrs_modified'] = 'Algunos atributos (%s) fueron modificados y estan remarcados m<EFBFBD>s abajo.';
$lang['attr_modified'] = 'Un atributo (%s) fu<66> modificado y est<73> remarcado m<>s abajo.';
$lang['viewing_read_only'] = 'Mostrando el objeto en modo de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN de este objeto';
$lang['no_new_attrs_available'] = 'No hay atributos nuevos disponibles para este objeto';
$lang['delete_hint'] = 'Nota: para borrar un atributo, borre su atributo y haga click en guardar.';
$lang['attr_schema_hint'] = 'Nota: Para ver el esquema de un atributo, haga click en su nombre.';
$lang['attrs_modified'] = 'Se han modificado algunos atributos (%s) que se encuentran destacados mas abajo.';
$lang['attr_modified'] = 'Se ha modificado alg<6C>n atributo (%s) que se encuentra destacado m<>s abajo.';
$lang['viewing_read_only'] = 'Nota: Modo de s<>lo lectura.';
$lang['no_new_attrs_available'] = 'no hay nuevos atributos en este objeto';
$lang['no_new_binary_attrs_available'] = 'no hay nuevos atributos binarios en este objeto';
$lang['binary_value'] = 'Valor binario';
$lang['add_new_binary_attr'] = 'Agregar valor binario';
$lang['add_new_binary_attr_tooltip'] = 'Agregar atributo/valor binario de un archivo';
$lang['alias_for'] = '%s es sin<69>nimo para %s';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['add_new_binary_attr'] = 'A<EFBFBD>adir atributo binario';
$lang['alias_for'] = 'Nota: \'%s\' es un alias de \'%s\'';
$lang['required_for'] = 'Atributo requerido para la(s) clase(s) de objeto %s';
$lang['download_value'] = 'descargar valor';
$lang['delete_attribute'] = 'borrar atributo';
$lang['true'] = 'verdadero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
$lang['none_remove_value'] = 'ninguno, borrar valor';
$lang['really_delete_attribute'] = '<EFBFBD>Borrar realmente el atributo';
$lang['add_new_value'] = 'A<>adir valor';
// Schema browser
$lang['the_following_objectclasses'] = 'Los siguientes <b>ObjectClass</b> est<73>n presentes en este servidor LDAP.';
$lang['the_following_attributes'] = 'Los siguientes <b>attributeTypes</b> est<73>n presentes en este servidor LDAP.';
$lang['the_following_matching'] = 'Los siguientes <b>matching rules</b> est<73>n presentes en este servidor LDAP.';
$lang['the_following_syntaxes'] = 'Los siguientes <b>sintaxis</b> est<73>n presentes en este servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atributo';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributos Requeridos (MUST)';
$lang['optional_attrs'] = 'Atributos Opcionales (MAY)';
$lang['the_following_objectclasses'] = 'El servidor LDAP soporta las siguientes clases de objeto:';
$lang['the_following_attributes'] = 'El servidor LDAP soporta los siguientes tipos de atributo:';
$lang['the_following_matching'] = 'El servidor LDAP soporta las siguientes reglas de coincidencia:';
$lang['the_following_syntaxes'] = 'El servidor LDAP soporta las siguientes sintaxis:';
$lang['schema_retrieve_error_1']='El servidor LDAP no soporta el protocolo LDAP en su totalidad.';
$lang['schema_retrieve_error_2']='Su versi<73>n de PHP no realiza la petici<63>n correctamente.';
$lang['schema_retrieve_error_3']='O el phpLDAPadmin no sabe como obtener el esquema del servidor.';
$lang['jump_to_objectclass'] = 'Ir a la clase de objeto';
$lang['view_schema_for_oclass'] = 'Ver la descripci<63>n del esquema para esta clase de objeto.';
$lang['jump_to_attr'] = 'Ir al tipo de atributo';
$lang['jump_to_matching_rule'] = 'Ir a la regla de coincidencia';
$lang['schema_for_server'] = 'Esquema del servidor';
$lang['required_attrs'] = 'Atributos requeridos';
$lang['required'] = 'requerido';
$lang['optional_attrs'] = 'Atributos opcionales';
$lang['optional_binary_attrs'] = 'Atributos binarios opcionales';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Descripci<63>n';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Esta ObjectClass es <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a esta ObjectClass';
$lang['matching_rule_oid'] = 'OID de Matching Rule';
$lang['syntax_oid'] = 'OID de Sintaxi';
$lang['not_applicable'] = 'no es aplicable';
$lang['not_specified'] = 'no especificada';
$lang['no_description']='sin descripci<63>n';
$lang['name'] = 'Nombre';
$lang['equality']='Igualdad';
$lang['is_obsolete'] = 'Esta clase de objeto es obsoleta.';
$lang['inherits'] = 'Hereda de';
$lang['inherited_from'] = 'Heredado de';
$lang['parent_to'] = 'Padre de';
$lang['jump_to_this_oclass'] = 'Ir a la definici<63>n de esta clase de objeto';
$lang['matching_rule_oid'] = 'OID de la regla de coincidencia';
$lang['syntax_oid'] = 'OID de sintaxis';
$lang['not_applicable'] = 'no aplicable';
$lang['not_specified'] = 'no especificado';
$lang['character'] = 'car<61>cter';
$lang['characters'] = 'caracteres';
$lang['used_by_objectclasses'] = 'Usado por la clase de objeto';
$lang['used_by_attributes'] = 'Usado por los atributos';
$lang['maximum_length'] = 'Longitud m<>xima';
$lang['attribute_types']='Tipos de atributo';
$lang['syntaxes'] = 'Sintaxis';
$lang['matchingrules'] = 'Reglas de coincidencia';
$lang['oid'] = 'OID';
$lang['obsolete'] = 'Obsoleto';
$lang['ordering'] = 'Ordenaci<63>n';
$lang['substring_rule'] = 'Regla de subcadena';
$lang['single_valued'] = 'Univaludado';
$lang['collective'] = 'Colectivo';
$lang['user_modification'] = 'Modificado por el usuario';
$lang['usage'] = 'Uso';
$lang['could_not_retrieve_schema_from'] = 'No se ha podido obtener el esquema de';
$lang['type'] = 'Tipo';
$lang['no_such_schema_item'] = 'No hay tal <20>tem en el esquema: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' borrada correctamente.';
$lang['you_must_specify_a_dn'] = 'Tienes que especificar un DN';
$lang['could_not_delete_entry'] = 'No he podido borrar la entrada: %s';
$lang['entry_deleted_successfully'] = 'Objeto %s borrado correctamente.';
$lang['you_must_specify_a_dn'] = 'Debe especificar un DN';
$lang['could_not_delete_entry'] = 'No se ha podido borrar el objeto %s';
$lang['no_such_entry'] = 'No hay tal objeto %s';
$lang['delete_dn'] = 'Borrar %s';
$lang['permanently_delete_children'] = '<27>Borrar tambi<62>n todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la ra<72>z de un sub<75>rbol que contiene %s objetos.';
$lang['view_entries'] = 'ver objetos';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin puede borrar recursivamente este objeto y sus %s hijos. Vea m<>s abajo la lista de objetos que se borrar<61>n ahora. <20>Todav<61>a quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operaci<63>n NO puede deshacerse. Tome en consideraci<63>n alias, referencias y otras cosas que puedan causar problemas.';
$lang['delete_all_x_objects'] = 'Borrar los %s objetos';
$lang['recursive_delete_progress'] = 'Progreso de la borraci<63>n recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su sub<75>rbol borrado correctamente.';
$lang['failed_to_delete_entry'] = 'Error al borrar el objeto %s';
$lang['list_of_entries_to_be_deleted'] = 'Lista de objetos a borrar:';
$lang['sure_permanent_delete_object']='<27>Est<73> seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" est<73> marcado como de s<>lo lectura en la configuraci<63>n de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ning<6E>n nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ning<6E>n DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['failed_to_add_attr'] = 'Error al a<>adir atributo.';
$lang['file_empty'] = 'El fichero que ha escogido no existe o est<73> vac<61>o. Por favor vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que est<73> enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuraci<63>n del PHP ha desactivado la recepci<63>n de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que est<73> enviando es demasiado grande. Por favor revise el ajuste "upload_max_size" en php.ini.';
$lang['uploaded_file_partial'] = 'El fichero que ha seleccionado s<>lo se ha recibido parcialmente debido a un error de red.';
$lang['max_file_size'] = 'Tama<6D>o m<>ximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '<27>Modificaci<63>n realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contrase<73>a, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acci<63>n exige que se agreguen';
$lang['requires_to_add'] = 'Esta acci<63>n requiere que a<>ada';
$lang['new_attributes'] = 'nuevos atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para agregar esta ObjectClass a este objeto, se tiene que especificar';
$lang['that_this_oclass_requires'] = 'que este ObjectClass requiere. Se puede hacer con este formulario.';
$lang['add_oclass_and_attrs'] = 'Agregar ObjectClass y Atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para poder a<>adir esta clase a este objeto, debe especificar';
$lang['that_this_oclass_requires'] = 'que esta clase requiere. Puede hacerlo en este formulario.';
$lang['add_oclass_and_attrs'] = 'A<EFBFBD>adir clase de objeto y atributos';
$lang['objectclasses'] = 'Clases de objeto';
// General
$lang['chooser_link_tooltip'] = 'Haz click para seleccionar un objeto graficamente';
$lang['no_updates_in_read_only_mode'] = 'No se puede modificar el objeto si el servidor est<73> operando en modo inalterable.';
$lang['bad_server_id'] = 'El identificador de servidor est<EFBFBD> mal';
$lang['not_enough_login_info'] = 'No tengo suficiente informaci<63>n para conectar al servidor. Por favor configura correctamente el archivo config.php';
$lang['could_not_connect'] = 'No se ha podido conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido ejecutar la operaci<63>n del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'El identificador del servidor est<73> mal: ';
$lang['success'] = 'Exito';
$lang['chooser_link_tooltip'] = 'Haga click en el di<64>logo emergente para seleccionar un DN de forma gr<EFBFBD>fica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor est<73> funcionando en modo de s<>lo lectura';
$lang['bad_server_id'] = 'Identificador de servidor no v<>lido';
$lang['not_enough_login_info'] = 'No hay informaci<63>n suficiente para conectar con el servidor. Por favor, revise su configuraci<63>n.';
$lang['could_not_connect'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'No se ha podido conectar con "%s" en el puerto "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido realizar la operaci<63>n "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no v<>lido: ';
$lang['success'] = '<27>xito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = '<27>xito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando a: ';
$lang['missing_server_id_in_query_string'] = 'No est<EFBFBD> presente el identificador del servidor en la URL';
$lang['missing_dn_in_query_string'] = 'No est<EFBFBD> presente el DN en la URL';
$lang['back_up_p'] = 'Volver a...';
$lang['no_entries'] = 'no hay entradas';
$lang['not_logged_in'] = 'No est<73>s autenticado';
$lang['could_not_det_base_dn'] = 'No he podido determinar la base DN';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '<EFBFBD>No se ha especificado ning<6E>n servidor en la petici<EFBFBD>n!';
$lang['missing_dn_in_query_string'] = '<EFBFBD>No se ha especificado ning<6E>n DN en la petici<EFBFBD>n!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No est<73> conectado';
$lang['could_not_det_base_dn'] = 'No se puede determinar el DN base';
$lang['please_report_this_as_a_bug']='Por favor informe de este error.';
$lang['reasons_for_error']='Esto puede suceder por varias razones, las m<>s probables son:';
$lang['yes']='S<>';
$lang['no']='No';
$lang['go']='Ir';
$lang['delete']='Borrar';
$lang['back']='Atr<74>s';
$lang['object']='objeto';
$lang['delete_all']='Borrar todo';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'nota';
$lang['bug'] = 'error';
$lang['warning'] = 'aviso';
$lang['light'] = 'bombilla'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceder &gt;&gt;';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['add_new'] = 'A<EFBFBD>adir';
$lang['value_to'] = 'valor de';
$lang['distinguished_name'] = 'Nombre distinguido';
$lang['current_list_of'] = 'La lista actual de';
$lang['values_for_attribute'] = 'valores para el atributo';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurado una regla \'EQUALITY\' en el servidor LDAP, recibir<EFBFBD>s un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveer el valor para agregar: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que se requiera agregar nuevos atributos para satisfacer los requisitos de esta ObjectClass';
$lang['syntax'] = 'Sintaxi';
$lang['current_list_of'] = 'Lista actual de';
$lang['values_for_attribute'] = 'valores del atributo';
$lang['inappropriate_matching_note'] = 'Nota: Si no ha creado una regla de igualdad en el servidor LDAP para este atributo, obtendr<EFBFBD> un error de coincidencia inapropiada ("inappropriate matching").';
$lang['enter_value_to_add'] = 'Introduzca el valor a a<>adir:';
$lang['new_required_attrs_note'] = 'Nota: puede que tenga que introducir nuevos atributos que esta clase de objeto requiera';
$lang['syntax'] = 'Sintaxis';
//copy.php
$lang['copy_server_read_only'] = 'No se pueden realizar las modificaciones si el servidor est<73> operando en modo inalterable';
$lang['copy_dest_dn_blank'] = 'No se ha rellenado el formulario de DN.';
$lang['copy_dest_already_exists'] = 'La entrada de destino (%s) encara existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor de destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN de la fuente y el DN de destino son los mismos.';
$lang['copy_server_read_only'] = 'No puede realizar modificaciones cuando el servidor est<73> en modo de s<>lo lectura';
$lang['copy_dest_dn_blank'] = 'Ha dejado el campo DN en blanco.';
$lang['copy_dest_already_exists'] = 'El objeto destino (%s) ya existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN origen y destino son iguales.';
$lang['copy_copying'] = 'Copiando ';
$lang['copy_recursive_copy_progress'] = 'El progreso de la copia recurrente';
$lang['copy_building_snapshot'] = 'Construyendo la \'foto\' del arbol para copiar... ';
$lang['copy_successful_like_to'] = 'Exito! Deseas ';
$lang['copy_view_new_entry'] = 'Ver el nuevo objeto?';
$lang['copy_failed'] = 'Error al copiar DN: ';
$lang['copy_recursive_copy_progress'] = 'Progreso de la copia recursiva';
$lang['copy_building_snapshot'] = 'Creando imagen del <EFBFBD>rbol a copiar... ';
$lang['copy_successful_like_to'] = '<EFBFBD>Copia correcta! <20>Le gustar<61>a ';
$lang['copy_view_new_entry'] = 'ver el nuevo objeto';
$lang['copy_failed'] = 'Error al copiar el DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
$lang['missing_template_file'] = 'Aviso: falta el fichero de plantilla, ';
$lang['using_default'] = 'usando la plantilla por defecto.';
$lang['template'] = 'Plantilla';
$lang['must_choose_template'] = 'Debes escoger una plantilla';
$lang['invalid_template'] = '%s no es una plantilla v<>lida';
$lang['using_template'] = 'usando plantilla';
$lang['go_to_dn'] = 'Ir a %s';
$lang['structural_object_class_cannot_remove'] = 'Esta es una clase de objeto estructural y no se puede eliminar.';
$lang['structural'] = 'estructural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objeto nuevo';
$lang['copyf_dest_dn'] = 'DN de destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN entero de la nueva entrada a ser creada quan se copie la entrada fuente';
$lang['copyf_dest_server'] = 'Servidor de destino';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidores funciona solamente si no hay violaciones del esquema.';
$lang['copyf_recursive_copy'] = 'Borrar todos los hijos recurentemente tambi<62>n?';
$lang['copyf_dest_dn'] = 'DN destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN completo del objeto a crear';
$lang['copyf_dest_server'] = 'Servidor destino';
$lang['copyf_note'] = 'Nota: S<EFBFBD>lo se puede copiar entre servidores diferentes cuando no hay violaciones de esquema';
$lang['copyf_recursive_copy'] = 'Tambi<EFBFBD>n copiar recursivamente todos los hijos de este objeto.';
$lang['recursive_copy'] = 'Copia recursiva';
$lang['filter'] = 'Filtro';
$lang['search_filter'] = 'Filtro de b<>squeda';
$lang['filter_tooltip'] = 'Cuando se realice una copia recursiva, copiar s<>lo los objetos que superen el filtrado';
//create.php
$lang['create_required_attribute'] = 'Te has dejado el valor en blanco del atributo requerido <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigiendo';
$lang['create_here'] = 'aqu<71>';
$lang['create_could_not_add'] = 'No he podido agregar el objeto al servidor LDAP.';
$lang['create_required_attribute'] = 'Ha dejado el valor del atributo requerido (%s) en blanco.';
$lang['redirecting'] = 'Redirigiendo...';
$lang['here'] = 'aqu<71>';
$lang['create_could_not_add'] = 'No se ha podido a<EFBFBD>adir el objeto al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objeto';
$lang['createf_choose_temp'] = 'Escoge una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla para al proceso de creaci<63>n';
$lang['createf_proceed'] = 'Proceder';
$lang['createf_create_object'] = 'Crear objeto';
$lang['createf_choose_temp'] = 'Escoja una plantilla';
$lang['createf_select_temp'] = 'Seleccione una plantilla para el proceso de creaci<63>n';
$lang['save_as_file'] = 'Guardar como fichero';
$lang['rdn_field_blank'] = 'Ha dejado el campo RDN en blanco.';
$lang['container_does_not_exist'] = 'El contenedor que ha especificado (%s) no existe. Por favor int<6E>ntelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atr<74>s y h<>galo ahora.';
$lang['hint_structural_oclass'] = 'Nota: Debe escoger al menos una clase de objeto estructural';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables del POST.';
$lang['ctemplate_config_handler'] = 'Tu configuraci<63>n especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'para esta plantilla. Pero este manejador no existe en el directorio \'templates/creation\'.';
$lang['ctemplate_on_server'] = 'En el servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables POST.';
$lang['template_not_readable'] = 'Su configuraci<63>n especifica un fichero "%s" para esta plantilla pero dicho fichero no se puede leer debido a que sus permisos son demasiado restrictivos.';
$lang['template_does_not_exist'] = 'Su configuraci<63>n especifica un fichero "%s" para esta plantilla pero dicho fichero no existe en el directorio templates/creation.';
$lang['create_step1'] = 'Paso 1 de 2: Nombre y clase(s) de objeto';
$lang['create_step2'] = 'Paso 2 de 2: Especifique attributos y valores';
$lang['relative_distinguished_name'] = 'Nombre Distinguido Relativo (RDN)';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(ejemplo: cn=nuevaPersona)';
$lang['container'] = 'Contenedor';
// search.php
$lang['you_have_not_logged_into_server'] = 'A<EFBFBD>n no te has autenticado en ell servidor seleccionado, no puedes hacer ninguna b<>squeda.';
$lang['click_to_go_to_login_form'] = 'Hac click aqu<71> para ir al formulario de autenticaci<EFBFBD>n';
$lang['unrecognized_criteria_option'] = 'Opcion de criterio desconocida: ';
$lang['if_you_want_to_add_criteria'] = 'Si quieres agregar tu propio criterio en la lista. Estate seguro de editar search.php para manejarlo. Saliendo.';
$lang['entries_found'] = 'Entrades encontradas: ';
$lang['filter_performed'] = 'Filtro realitzado: ';
$lang['search_duration'] = 'B<>squeda realitzada para phpLDAPadmin a';
$lang['you_have_not_logged_into_server'] = 'Todav<EFBFBD>a no ha conectado con el servidor, as<61> que no puede realizar b<>squedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aqu<71> para ir al formulario de conexi<EFBFBD>n';
$lang['unrecognized_criteria_option'] = 'Criterio no reconocido: ';
$lang['if_you_want_to_add_criteria'] = 'Si quiere puede a<>adir su propios criterios a la lista. Aseg<EFBFBD>rese de editar search.php para manejarlos. Saliendo...';
$lang['entries_found'] = 'Objetos encontrados: ';
$lang['filter_performed'] = 'Filtrado realizado: ';
$lang['search_duration'] = 'B<>squeda realizada por phpLDAPadmin en';
$lang['seconds'] = 'segundos';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'El alcance en el que buscar';
$lang['scope_sub'] = 'Sub (todo el sub-arbol)';
$lang['scope_one'] = 'Uno (un nivel por debajo de la base)';
$lang['scope_base'] = 'Base (solo base dn)';
$lang['standard_ldap_search_filter'] = 'Filtro de b<>squeda est<73>ndar de LDAP. Ejemplo: (&(sn=Smith)(givenname=David))';
$lang['scope_in_which_to_search'] = '<EFBFBD>mbito de b<>squeda';
$lang['scope_sub'] = 'Sub (sub<EFBFBD>rbol completo)';
$lang['scope_one'] = 'One (un nivel bajo la base)';
$lang['scope_base'] = 'Base (s<EFBFBD>lo la base)';
$lang['standard_ldap_search_filter'] = 'Filtro de b<>squeda LDAP est<EFBFBD>ndar. Ejemplo: (&(sn=Picapiedra)(givenname=Pedro))';
$lang['search_filter'] = 'Filtro de b<>squeda';
$lang['list_of_attrs_to_display_in_results'] = 'Una lista de atributos para mostrar los resultados (separados por comas)';
$lang['list_of_attrs_to_display_in_results'] = 'Lista de atributos para mostrar en los resultados (separados por comas)';
$lang['show_attributes'] = 'Mostrar atributos';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entradas las cuales:';
$lang['equals'] = 'sea igual';
$lang['starts with'] = 'comience con';
$lang['search_for_entries_whose'] = 'Buscar entradas en las que';
$lang['equals'] = 'sea igual a';
$lang['starts with'] = 'comience por';
$lang['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['ends with'] = 'acabe en';
$lang['sounds like'] = 'suene como';
$lang['predefined_search_str'] = 'o seleccione uno de esta lista';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido sacar informaci<63>n LDAP del servidor';
$lang['server_info_for'] = 'Informaci<63>n del servidor para: ';
$lang['server_reports_following'] = 'El servidor muestra la siguiente informaci<63>n sobre el mismo';
$lang['nothing_to_report'] = 'Este servidor no tiene nada a mostrar.';
$lang['could_not_fetch_server_info'] = 'No se ha podido obtener ninguna informaci<63>n del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versi<73>n de PHP o quiz<69>s su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Informaci<63>n sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP env<6E>a la siguiente informaci<63>n:';
$lang['nothing_to_report'] = 'Este servidor no tiene nada sobre lo que informar.';
//update.php
$lang['update_array_malformed'] = 'el update_array est<73> mal formado. Esto podr<EFBFBD>a ser un error del phpLDAPadmin. Por favor reportalo.';
$lang['could_not_perform_ldap_modify'] = 'No he podido ejecutar la operaci<63>n ldap_modify.';
$lang['update_array_malformed'] = 'El array update_array no est<EFBFBD> bien formado. Esto puede indicar un error de phpLDAPadmin. Por favor, informe de ello.';
$lang['could_not_perform_ldap_modify'] = 'No se ha podido realizar la operaci<63>n "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?';
$lang['do_you_want_to_make_these_changes'] = '<EFBFBD>Quiere realizar estos cambios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['old_value'] = 'Valor anterior';
$lang['new_value'] = 'Nuevo valor';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ning<6E>n cambio';
$lang['you_made_no_changes'] = 'No ha realizado cambios';
$lang['go_back'] = 'Volver atr<74>s';
// welcome.php
$lang['welcome_note'] = 'Usa el men<65> de la izquierda para navegar';
$lang['credits'] = "Cr<EFBFBD>ditos";
$lang['changelog'] = "Hist<EFBFBD>rico de cambios";
$lang['documentation'] = "Documentaci<EFBFBD>n";
$lang['welcome_note'] = 'Use el men<65> de la izquierda para navegar';
$lang['credits'] = 'Creditos';
$lang['changelog'] = 'Lista de cambios';
$lang['donate'] = 'Donar';
$lang['pla_logo'] = 'logotipo de phpLDAPadmin';
// Donate.php
$lang['donation_instructions'] = 'Para donar fondos al proyecto phpLDAPadmin, use uno de los botones de abajo.';
$lang['donate_amount'] = 'Donar %s';
$lang['purge_cache'] = 'Borrar cach<63>s';
$lang['no_cache_to_purge'] = 'No hay que borrar ning<6E>n cach<63>.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de cach<63>.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el cach<63> de phpLDAPadmin, incluyendo los esquemas del servidor.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
$lang['unsafe_file_name'] = 'Nombre de fichero no seguro: ';
$lang['no_such_file'] = 'No hay tal fichero: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para <b>%s</b> en tu configuraci<63>n,
pero no has especificado el auto_uid_number_mechanism. Por favor soluciona
este problema.';
$lang['uidpool_not_set'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>uidpool</tt>
en tu configuraci<63>n para el servidor <b>%s</b>, pero no has especificado el
audo_uid_number_uid_pool_dn. Por favor especificalo antes de proceder.';
$lang['uidpool_not_exist'] = 'Parece ser que el uidPool que has especificado en tu configuraci<63>n (<tt>%s</tt>)
$lang['auto_update_not_setup'] = 'Ha activado "auto_uid_numbers" para <b>%s</b> en su configuraci<63>n,
pero no ha especificado el mecanismo "auto_uid_number_mechanism". Por favor, corrija este problema';
$lang['uidpool_not_set'] = 'Ha especificado el mecanismo "auto_uid_number_mechanism" como "uidpool"
en su configuraci<63>n para el servidor <b>%s</b>, pero no ha especificado
"audo_uid_number_uid_pool_dn". Por favor, verifiquelo antes de continuar.';
$lang['uidpool_not_exist'] = 'Parece ser que el "uidPool" que ha especificado en su configuraci<63>n ("%s")
no existe.';
$lang['specified_uidpool'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>search</tt> en tu
configuraci<63>n para el servidor <b>%s</b>, pero no has especificado el
<tt>auto_uid_number_search_base</tt>. Por favor especificalo antes de proceder.';
$lang['auto_uid_invalid_value'] = 'Has especificado un valor no v<>lido para el auto_uid_number_mechanism (<tt>%s</tt>)
en tu configuraci<63>n. Solo <tt>uidpool</tt> y <tt>search</tt> son v<>lidos.
Por favor soluciona este problema.';
$lang['error_auth_type_config'] = 'Error: Tienes un error en tu archivo de configuraci<EFBFBD>n. Los dos <20>nicos valores aceptados para
\'auth_type\' en la secci<63>n $servers son \'config\' y \'form\'. Tu has puesto \'%s\',
el cual no est<73> aceptado. ';
$lang['php_install_not_supports_tls'] = 'Tu instalaci<63>n de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he podido iniciar el TLS.<br />Revisa tu configuraci<63>n del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tienes un error en el archivo de configuraci<63>n. auth_type de %s no es v<>lido.';
$lang['ldap_said'] = '<b>LDAP dijo</b>: %s<br /><br />';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuraci<63>n del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especif<EFBFBD>quelo antes de continuar.';
$lang['auto_uid_invalid_credential'] = 'Imposible conectar con <b>%s</b> con sus credenciales "auto_uid". Por favor, verifique su fichero de configuraci<63>n.';
$lang['bad_auto_uid_search_base'] = 'Su configuraci<63>n de phpLDAPadmin especifica "auto_uid_search_base" como no v<>lida para el servidor %s';
$lang['auto_uid_invalid_value'] = 'Ha especificado un valor no v<>lido para el mecanismo "auto_uid_number_mechanism" ("%s")
en su configuraci<63>n. S<EFBFBD>lo son v<>lidos "uidpool" y "search". Por favor, corrija este problema.';
$lang['error_auth_type_config'] = 'Error: Tiene un error en su fichero de configurci<63>n. Los tres <20>nicos valores para "auth_type"
en la secci<63>n $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no est<73> permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuraci<63>n.';
$lang['unique_attr_failed'] = 'Su intento de a<>adir <b>%s</b> (<i>%s</i>) a <br><b>%s</b><br> NO se ha permitido. Tal atributo/valor pertenece a otro objeto.<p>Probablemente desee <a href=\'%s\'>buscar</a> tal objeto.';
$lang['php_install_not_supports_tls'] = 'Su instalaci<63>n de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuraci<63>n LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma an<61>nima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexi<78>n an<61>nima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contrase<73>a incorrectos. Por favor, int<6E>ntelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aqu<71> si no sucede nada.';
$lang['successfully_logged_in_to_server'] = 'Ha conectado con el servidor <b>%s</b>.';
$lang['could_not_set_cookie'] = 'No se ha podido guardar la cookie.';
$lang['ldap_said'] = 'LDAP ha dicho: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['fbrowse'] = 'seleccionar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Tu instalaci<63>n de PHP no soporta los tipos de encriptaci<EFBFBD>n blowfish.';
$lang['install_no_mash'] = 'Tu instalaci<63>n de PHP no tiene la funcion mhash(). No puedo hacer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contiene errores<br />';
$lang['ferror_number'] = '<b>Error n<>mero</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripci<63>n</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error n<>mero</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripci<63>n</b>: (no hay descripci<63>n)<br />';
$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si as<61> es, por favor <a href=\'%s\'>d<>noslo</a>.';
$lang['ferror_unrecognized_num'] = 'N<>mero de error desconocido: ';
$lang['install_not_support_blowfish'] = 'Su instalaci<63>n de PHP no soporta encriptaci<63>n blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalaci<63>n de PHP no soporta encriptaci<EFBFBD>n md5crypt.';
$lang['install_no_mash'] = 'Su instalaci<63>n de PHP no posee la funci<63>n mhash(). No se pueden realizar hashes SHA.';
$lang['jpeg_contains_errors'] = 'La foto jpegPhoto contiene errores<br />';
$lang['ferror_number'] = 'Error n<>mero: %s (%s)';
$lang['ferror_discription'] = 'Descripci<63>n: %s <br /><br />';
$lang['ferror_number_short'] = 'Error n<>mero: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripci<63>n: (no existe descripci<63>n disponible)<br />';
$lang['ferror_submit_bug'] = '<27>Es <20>ste un error de phpLDAPadmin? Si es as<61>, por favor <a href=\'%s\'>informe sobre ello</a>.';
$lang['ferror_unrecognized_num'] = 'N<>mero de error no reconocido: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has encontrado un error menor del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</td>
<b><EFBFBD>Ha encontrado un error no fatal en phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichero:</td>
<td><b>%s</b> l<>nea <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versiones:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Env<EFBFBD>a este error haciendo click aqu<71></a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el phpLDAPadmin.<br /><br />
</td></tr><tr><td>Servidor web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Por favor, informe de este error pulsando aqu<71></a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '<EFBFBD>Felicidades! Ha encontrado un error en phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivel:</td><td><b>%s</b></td></tr>
<tr><td>Archivo:</td><td><b>%s</b></td></tr>
<tr><td>Fichero:</td><td><b>%s</b></td></tr>
<tr><td>L<>nea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versi<EFBFBD>n PLA:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Veris<EFBFBD>n PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versi<73>n PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor Web:</td><td><b>%s</b></td></tr>
<tr><td>Servidor web:</td><td><b>%s</b></td></tr>
</table>
<br />
Por favor env<6E>a este error haciendo click abajo!';
Por favor, informe sobre este error haciendo click m<EFBFBD>s abajo!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar archivo LDIF';
$lang['select_ldif_file'] = 'Selecciona un archivo LDIF:';
$lang['select_ldif_file_proceed'] = 'Proceder &gt;&gt;';
$lang['import_ldif_file_title'] = 'Importar fichero LDIF';
$lang['select_ldif_file'] = 'Seleccione un fichero LDIF:';
$lang['dont_stop_on_errors'] = 'Ignorar errores';
//ldif_import
$lang['add_action'] = 'A<>adiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['warning_no_ldif_version_found'] = 'No se ha encontrado versi<73>n. Asumiendo 1.';
$lang['valid_dn_line_required'] = 'Se requiere una l<>nea v<>lida.';
$lang['missing_uploaded_file'] = 'Falta el fichero enviado.';
$lang['no_ldif_file_specified.'] = 'No se ha especificado un fichero LDIF. Por favor, int<6E>ntelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado est<73> vac<61>o.';
$lang['empty'] = 'vac<61>o';
$lang['file'] = 'Fichero';
$lang['number_bytes'] = '%s bytes';
$lang['failed'] = 'fallado';
$lang['ldif_parse_error'] = 'Error de parseado LDIF';
$lang['ldif_could_not_add_object'] = 'No he podido a<>adir el objeto:';
$lang['ldif_could_not_rename_object'] = 'No he podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No he podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No he podido modificar el objeto:';
$lang['ldif_line_number'] = 'Linea N<EFBFBD>mero:';
$lang['ldif_line'] = 'Linea:';
$lang['failed'] = 'Error';
$lang['ldif_parse_error'] = 'Error al parsear LDIF';
$lang['ldif_could_not_add_object'] = 'No se ha podido a<>adir objeto:';
$lang['ldif_could_not_rename_object'] = 'No se ha podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No se ha podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No se ha podido modificar el objeto:';
$lang['ldif_line_number'] = 'N<>mero de l<>nea:';
$lang['ldif_line'] = 'L<EFBFBD>nea:';
// Exports
$lang['export_format'] = 'Formato de exportaci<63>n';
$lang['line_ends'] = 'Fin de l<>nea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportaci<63>n.';
$lang['invalid_export_format'] = 'Formato de exportaci<63>n no v<>lido';
$lang['no_exporter_found'] = 'No se ha encontrado ning<6E>n exportador v<>lido.';
$lang['error_performing_search'] = 'Se ha encontrado un error al realizar la b<>squeda.';
$lang['showing_results_x_through_y'] = 'Mostrando los resultados de %s a %s.';
$lang['searching'] = 'Buscando...';
$lang['size_limit_exceeded'] = 'Nota: se ha excedido el tiempo de b<>squeda.';
$lang['entry'] = 'Objeto';
$lang['ldif_export_for_dn'] = 'Exportaci<63>n LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportaci<63>n DSLM de: %s';
$lang['include_system_attrs'] = 'Incluir atributos de sistema';
$lang['csv_spreadsheet'] = 'CSV (Hoja de c<>lculo)';
// logins
$lang['could_not_find_user'] = 'No se ha podido encontrar el usuario "%s"';
$lang['password_blank'] = 'Ha dejado la contrase<73>a en blanco.';
$lang['login_cancelled'] = 'Conexi<78>n cancelada.';
$lang['no_one_logged_in'] = 'No hay nadie conectado con el servidor.';
$lang['could_not_logout'] = 'No se ha podido desconectar.';
$lang['unknown_auth_type'] = 'Tipo de autentificaci<63>n "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificaci<63>n del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexi<78>n no est<73> encriptada.';
$lang['not_using_https'] = 'No est<73> usando \'https\'. El navegador web enviar<61> su informaci<63>n sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contrase<73>a';
$lang['authenticate'] = 'Entrar';
// Entry browser
$lang['entry_chooser_title'] = 'Selector de objetos';
// Index page
$lang['need_to_configure'] = 'Debe configurar phpLDAPadmin, editando el fichero \'config.php\'. Se proporciona un fichero de configuraci<63>n de ejemplo en \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'No se permiten borrados en modo de s<>lo lectura.';
$lang['error_calling_mass_delete'] = 'Error al llamar a "mass_delete.php". Falta la variable POST "mass_delete".';
$lang['mass_delete_not_array'] = 'La variable POST "mass_delete" no es un array.';
$lang['mass_delete_not_enabled'] = 'No est<73> activado el borrado masivo. Por favor, act<63>velo en config.php antes de continuar.';
$lang['search_attrs_wrong_count'] = 'Su config.php tiene un error. El n<>mero de atributos en $search_attributes y $search_attributes_display es diferente';
$lang['mass_deleting'] = 'Efectuando borrado masivo';
$lang['mass_delete_progress'] = 'Borrado en progreso en el servidor "%s"';
$lang['malformed_mass_delete_array'] = 'Array de borrado masivo mal formado.';
$lang['no_entries_to_delete'] = 'No ha seleccionado objetos para borrar.';
$lang['deleting_dn'] = 'Borrando %s';
$lang['total_entries_failed'] = 'No han podido borrarse %s de %s objetos.';
$lang['all_entries_successful'] = 'Todos los objetos han sido borrados.';
$lang['confirm_mass_delete'] = 'Confirmar borrado masivo de %s objetos en el servidor %s';
$lang['yes_delete'] = '<27>S<EFBFBD>, borrar!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'No puede renombrar un objeto que tenga hijos';
$lang['no_rdn_change'] = 'No ha cambiado el RDN';
$lang['invalid_rdn'] = 'Valor RDN no v<>lido';
$lang['could_not_rename'] = 'No se ha podido renombrar el objeto';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin no soporta todav<61>a PHP 5. Si contin<69>a encontrar<61> probablemente extra<72>os errores.';
$lang['mismatched_search_attr_config'] = 'Su configuraci<63>n tiene un error. $search_attributes debe tener el mismo n<>mero de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '<27>Las contrase<73>as coinciden!';
$lang['passwords_do_not_match'] = '<27>Las contrase<73>as no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobaci<63>n de contrase<73>as';
$lang['compare'] = 'Comparar';
$lang['to'] = 'con';
// Templates
$lang['using'] = 'Usando la';
$lang['template'] = 'plantilla';
$lang['switch_to'] = 'Puede cambair a la ';
$lang['default_template'] = 'plantilla por defecto';
// template_config
$lang['user_account'] = 'Cuenta de Usuario (posixAccount)';
$lang['address_book_inet'] = 'Entrada del libro de direcciones (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrada del libro de direcciones (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrada de Usuario Kolab';
$lang['organizational_unit'] = 'Unidad Organizativa';
$lang['organizational_role'] = 'Rol Organizativo';
$lang['posix_group'] = 'Grupo Posix';
$lang['samba_machine'] = 'Ordenador con Samba NT';
$lang['samba3_machine'] = 'Ordenador con Samba 3 NT';
$lang['samba_user'] = 'Usuario de Samba';
$lang['samba3_user'] = 'Usuario de Samba 3';
$lang['samba3_group'] = 'Mapeo de Grupo de Samba 3';
$lang['dns_entry'] = 'Entrada DNS';
$lang['simple_sec_object'] = 'Objeto de Seguridad Simple';
$lang['courier_mail_account'] = 'Cuenta de Correo Courier';
$lang['courier_mail_alias'] = 'Alias de Correo Courier';
$lang['ldap_alias'] = 'Alias de LDAP';
$lang['sendmail_cluster'] = 'Cluster de Sendmail';
$lang['sendmail_domain'] = 'Dominio de Sendmail';
$lang['sendmail_alias'] = 'Alias de Sendmail';
$lang['sendmail_virt_dom'] = 'Dominio Virtual de Sendmail';
$lang['sendmail_virt_users'] = 'Usuarios Virtuales de Sendmail';
$lang['sendmail_relays'] = 'Rel<65>s de Sendmail';
$lang['custom'] = 'A medida';
$lang['samba_domain_name'] = 'Mi Nombre de Dominio de Samba';
$lang['administrators'] = 'Administradores';
$lang['users'] = 'Usuarios';
$lang['guests'] = 'Invitados';
$lang['power_users'] = 'Usuarios Privilegiados';
$lang['account_ops'] = 'Administradores de Cuentas';
$lang['server_ops'] = 'Administradores de Servidor';
$lang['print_ops'] = 'Administradores de Impresi<73>n';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contrase<73>as de Samba. Por favor, revise la configuraci<63>n en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuraci<63>n de Samba.';
$lang['err_smb_no_name_sid'] = 'Error: Necesita indicar el nombre y el sid de su dominio Samba.';
$lang['err_smb_no_name'] = 'Error: No se ha indicado el nombre del dominio Samba.';
$lang['err_smb_no_sid'] = 'Error: No se ha indicado el sid del dominio Samba.';
// Samba Account Template
$lang['samba_account'] = 'Cuenta Samba';
$lang['samba_account_lcase'] = 'cuenta samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nueva cuenta de usuario';
$lang['t_hint_customize'] = 'Nota: Para modificar esta plantilla, edite el fichero templates/creation/new_user_template.php';
$lang['t_name'] = 'Nombre';
$lang['t_first_name'] = 'Nombre propio';
$lang['t_last_name'] = 'Apellido';
$lang['t_first'] = 'nombre propio';
$lang['t_last'] = 'apellido';
$lang['t_common_name'] = 'Nombre com<6F>n';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contrase<73>a';
$lang['t_encryption'] = 'Encriptaci<63>n';
$lang['t_login_shell'] = 'Shell de entrada';
$lang['t_home_dir'] = 'Directorio de usuario';
$lang['t_uid_number'] = 'N<>mero UID';
$lang['t_auto_det'] = '(determinado autom<6F>ticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'N<>mero GID';
$lang['t_err_passwords'] = 'Sus contrase<73>as no coinciden. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_err_field_num'] = 'S<>lo puede introducir valores num<75>ricos en el campo %s. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creaci<63>n de cuenta';
$lang['t_secret'] = '[secreta]';
$lang['t_create_account'] = 'Crear cuenta';
// New Address Template
$lang['t_new_address'] = 'Nueva entrada en el libro de direcciones';
$lang['t_organization'] = 'Organizaci<63>n';
$lang['t_address'] = 'Direcci<63>n';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'C<>digo postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Tel<65>fono de trabajo';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'M<>vil';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Contenedor';
$lang['t_err_cn_blank'] = 'No puede dejar el campo "Nombre Com<6F>n" en blanco. Por favor, vuelva atr<74>s e int<6E>ntelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creaci<63>n de entrada:';
$lang['t_create_address'] = 'Crear direcci<63>n';
// default template
$lang['t_check_pass'] = 'Compruebe la contrase<73>a...';
?>

View File

@@ -11,7 +11,7 @@
*
* Thank you!
*
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/fr.php,v 1.25 2004/05/29 04:07:02 uugdave Exp $
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/fr.php,v 1.29 2005/04/01 22:40:23 xrenard Exp $
*/
/*
@@ -34,6 +34,14 @@ $lang['contains'] = 'contient';
$lang['predefined_search_str'] = 'Selectionner une recherche pr<70>d<EFBFBD>finie';
$lang['predefined_searches'] = 'Recherches pr<70>d<EFBFBD>finies';
$lang['no_predefined_queries'] = 'Aucune requ<71>te n\' a <20>t<EFBFBD> d<>finie dans config.php.';
$lang['export_results'] = 'exporter le resultat';
$lang['unrecoginzed_search_result_format'] = 'Le format du r<>sultat de la recherche est non reconnu: %s';
$lang['format'] = 'Format';
$lang['list'] = 'liste';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Le fichier config.php contient une valeur invalide pour $default_search_display: %s. Veuillez le corriger';
$lang['page_n'] = 'Page %d';
$lang['no_results'] = 'Aucun r<>sultat pour cette recherche.';
// Tree browser
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalit<69>';
@@ -54,20 +62,25 @@ $lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entr<74>es <20> partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se d<>connecter de ce serveur';
$lang['logged_in_as'] = 'Connect<63> en tant que: ';
$lang['this_base_dn_is_not_valid'] = 'Ceci n\'est pas un DN valide.';
$lang['this_base_dn_does_not_exist'] = 'Cette entr<74>e n\'existe pas.';
$lang['read_only'] = 'Lecture seule';
$lang['read_only_tooltip'] = 'Cet attribut a <20>t<EFBFBD> mis en lecture seule par l\'administrateur de phpLDAPAdmin';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu <20>tre d<>termin<69>e.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a <20>t<EFBFBD> configur<75> de telle sorte que la racine ne soit pas r<>vel<65>e.';
$lang['please_specify_in_config'] = 'Veuillez le sp<73>cifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Cr<43>er une nouvelle entr<74>e dans';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'L\'entr<74>e racine n\'existe pas.';
$lang['create_it'] = 'La cr<63>er?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entr<74>e';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demand<6E> confirmation';
$lang['copy_this_entry'] = 'Copier cette entr<74>e';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export'] = 'Exporter';
$lang['export_lcase'] = 'exporter';
$lang['export_tooltip'] = 'Sauvegarder cet objet';
$lang['export_subtree_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets';
$lang['export_subtree'] = 'Exporter l\'arborescence';
@@ -84,7 +97,9 @@ $lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la d<>finition de sch<63>ma pour l\'attribut de type \'%s\'';
$lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications';
$lang['no_internal_attributes'] = 'Aucun attributs internes.';
$lang['no_attributes'] = 'Cette entr<74>e n\a aucun attributs.';
$lang['save_changes'] = 'Sauvegarder les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur suppl<70>mentaire <20> cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
@@ -99,6 +114,8 @@ $lang['no_new_binary_attrs_available'] = 'plus d\' attributs binaires disponible
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['alias_for'] = 'Alias pour';
$lang['required_for'] = 'Attribut requis par le(s) objectClass(es) %s';
$lang['required_by_entry'] = 'Cet attribut est requis par le RDN.';
$lang['download_value'] = 'T<>l<EFBFBD>charger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
@@ -108,18 +125,17 @@ $lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
$lang['add_new_value'] = 'Ajouter une nouvelle valeur';
// Schema browser
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont support<72>s par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont support<72>s par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les op<6F>rateurs (matching rules) suivants sont support<72>s par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont support<72>s par ce serveur LDAP.';
$lang['schema_retrieve_error_1']='Le serveur ne supporte pas enti<74>rement le protocol LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'ex<65>cute correctement la requ<71>te.';
$lang['schema_retrieve_error_3']='Ou tout du moins, phpLDAPadmin ne sait pas comment r<>cup<75>rer le sch<63>ma pour votre serveur.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'ex<65>cuter correctement la requ<71>te.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sait pas comment r<>cup<75>rer le sch<63>ma pour votre serveur.';
$lang['schema_retrieve_error_4']='Ou tout du moins, votre serveur LDAP ne procure pas cette information.';
$lang['jump_to_objectclass'] = 'Aller <20> une classe d\'objet';
$lang['view_schema_for_oclass'] = 'Voir la description du schema pour cette objectClass';
$lang['jump_to_attr'] = 'Aller <20> un attribut';
$lang['jump_to_matching_rule'] = 'Aller <20> une r<>gle d\'<27>galit<69>';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['required'] = 'requis';
$lang['optional_attrs'] = 'Attributs optionnels';
$lang['optional_binary_attrs'] = 'Attributs binaires optionnels';
$lang['OID'] = 'OID';
@@ -131,6 +147,7 @@ $lang['equality']='Egalit
$lang['is_obsolete'] = 'Cette classe d\'objet est obsolete';
$lang['inherits'] = 'h<>rite';
$lang['inherited_from']='h<>rite de';
$lang['parent_to'] = 'Parent de';
$lang['jump_to_this_oclass'] = 'Aller <20> la d<>finition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'op<6F>rateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
@@ -140,8 +157,7 @@ $lang['character']='caract
$lang['characters']='caract<63>res';
$lang['used_by_objectclasses']='Utilis<69> par les objectClasses';
$lang['used_by_attributes']='Utilis<69> par les attributes';
$lang['maximum_length']='Maximum Length';
$lang['attributes']='Types d\'attribut';
$lang['attribute_types']='Types d\'attribut';
$lang['syntaxes']='Syntaxes';
$lang['objectclasses']='objectClasses';
$lang['matchingrules']='R<>gles d\'<27>galit<69>';
@@ -155,7 +171,12 @@ $lang['user_modification']='Modification Utilisateur';
$lang['usage']='Usage';
$lang['maximum_length']='Longueur maximale';
$lang['could_not_retrieve_schema_from']='Impossible de r<>cup<75>rer le sch<63>ma de';
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont support<72>s par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont support<72>s par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les op<6F>rateurs (matching rules) suivants sont support<72>s par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont support<72>s par ce serveur LDAP.';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entr<74>e \'%s\' r<>ussie.';
@@ -182,8 +203,14 @@ $lang['no_attr_specified'] = 'Aucun nom d\'attributs sp
$lang['no_dn_specified'] = 'Aucun DN specifi<66>';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laisser la valeur de l\'attribut vide. Veuillez s\'il vous pla<6C>t retourner <20> la page pr<70>c<EFBFBD>dente et recommencer.';
$lang['left_attr_blank'] = 'Vous avez laiss<EFBFBD> la valeur de l\'attribut vide. Veuillez s\'il vous pla<6C>t retourner <20> la page pr<70>c<EFBFBD>dente et recommencer.';
$lang['failed_to_add_attr'] = 'Echec lors de l\'ajout de l\'attribut.';
$lang['file_empty'] = 'Le fichier choisi soit est vide soit n\'existe pas. Veuillez recommencez.';
$lang['invalid_file'] = 'Erreur de s<>curit<69>: Le fichier upload<61> peut etre dangereux.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration PHP interdit l\'upload de fichiers. Veuillez v<>rifier votre fichier php.ini avant de continuer.';
$lang['uploaded_file_too_big'] = 'Le fichier <20> uploader est de trop grande taille. Veuillez v<>rifier votre fichier php.ini et particuli<6C>rement la directive upload_max_size setting';
$lang['uploaded_file_partial'] = 'Le fichier s<>lectionner a <20>t<EFBFBD> partiellement upload<61>, probablement du <20> une erreur r<>seau.';
$lang['max_file_size'] = 'Taille Maximum du fichier: %s';
// Updating values
$lang['modification_successful'] = 'Modification r<>ussie!';
@@ -201,10 +228,12 @@ $lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entr<74>(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises <20> jour si le serveur est en lecture seule';
$lang['bad_server_id'] = 'Id de serveur invalide';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous pla<6C>, v<>rifier votre configuration.';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous pla<6C>t, v<>rifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Impossible de se connecter <20> "%s" sur le port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'op<6F>ration ldap_mod_add.';
$lang['home'] = 'Home';
$lang['help'] = 'Aide';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succ<63>s';
$lang['server_colon_pare'] = 'Serveur: ';
@@ -230,6 +259,11 @@ $lang['bug'] = 'bogue';
$lang['warning'] = 'Avertissement';
$lang['light'] = 'lumi<6D>re'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Continuer &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut de fa<66>on sur encrypter et d<>crypter les informations du fait que $blowfish_secret n\'est pas d<>fini dans config.php. Vous devez d<>finir $blowfish_secret avec une chaine de caract<63>re de votre choix.';
$lang['jpeg_dir_not_writable'] = 'Veuillez assigner <20> la variable $jpeg_temp_dir le nom d\'un r<>pertoire accessible en <20>criture dans le fichier config.php';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'<27>crire dans le r<>pertoire %s d<>fini par la directive $jpeg_temp_dir. Veuillez v<>rifier que votre serveur web <20> les droits en <20>criture pour ce r<>pertoire.';
$lang['jpeg_unable_toget'] = 'Impossible de trouver la ressource jpeg du serveur LDAP pour l\'attribut %s.';
$lang['jpeg_delete'] = 'Supprimer la photo';
// Add value form
@@ -265,6 +299,8 @@ $lang['must_choose_template'] = 'Vous devez choisir un mod
$lang['invalid_template'] = '%s est un mod<6F>le non valide';
$lang['using_template'] = 'Utilisation du mod<6F>le';
$lang['go_to_dn'] = 'Aller <20> %s';
$lang['structural_object_class_cannot_remove'] = 'Ceci est une \'objectclass\' de type structurelle et ne peut etre supprim<69>.';
$lang['structural'] = 'structurelle';
@@ -280,13 +316,16 @@ $lang['copyf_recursive_copy'] = 'Copier r
$lang['recursive_copy'] = 'Copie r<>cursive';
$lang['filter'] = 'Filtre';
$lang['filter_tooltip'] = 'Lors d\'une copie r<>cursive, seuls les entr<74>es correspondant <20> ce filtre seront copi<70>s';
$lang['delete_after_copy'] = 'Suppresion apr<70>s copie (d<>placer):';
$lang['delete_after_copy_warn'] = 'Soyez certain que votre filtre (ci-dessus) selectionnera tous les enregistrements enfants.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas <20>t<EFBFBD> sp<73>cifi<66>e pour l\'attribut requis %s.';
$lang['redirecting'] = 'Redirection';
$lang['here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu <20>tre effectu<74>e.';
$lang['rdn_field_blank'] = 'Vous avez laisser le champ du RDN vide.';
$lang['rdn_field_blank'] = 'Vous avez laiss<EFBFBD> le champ du RDN vide.';
$lang['container_does_not_exist'] = 'Le containeur que vous avez sp<73>cifi<66> (%s) n\'existe pas. Veuillez, s\'il vous pla<6C>t recommencer.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez s<>lectionner aucun ObjectClasses pour cet objet. Veuillez s\'il vous pla<6C>t retourner <20> la page pr<70>c<EFBFBD>dente et le faire.';
$lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe d\'objet de type structural';
@@ -295,6 +334,7 @@ $lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un mod<6F>le';
$lang['createf_select_temp'] = 'Selectionner un mod<6F>le pour la proc<6F>dure de cr<63>ation';
$lang['save_as_file'] = 'Sauvegarder en tant que fichier';
$lang['createf_proceed'] = 'Continuer';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name';
$lang['rdn'] = 'RDN';
@@ -306,6 +346,8 @@ $lang['alias_for'] = 'Alias pour %s';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun mod<6F>le sp<73>cifi<66> dans les variables POST.';
$lang['template_not_readable'] = 'Votre fichier de configuration d<>finit un gestionnaire de "%s" pour ce \'template\' mais ce fichier ne poss<73>de pas les droits de lecture.';
$lang['template_does_not_exist'] = 'Votre fichier de configuration d<>finit un gestionnaire de "%s" pour ce \'template\' mais le gestionnaire n\'existe pas dans le r<>pertoire templates/creation.';
$lang['ctemplate_config_handler'] = 'Votre configuration sc<73>cifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce mod<6F>le. Cependant, ce gestionnaire n\'existe pas dans le r<>pertoire \'templates/creation\'.';
$lang['create_step1'] = 'Etape 1 de 2: Nom et classes d\'objet';
@@ -358,12 +400,23 @@ $lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a <20>t<EFBFBD> effectu<74>';
$lang['go_back'] = 'Retour';
$lang['unable_create_samba_pass'] = 'Impossible de cr<63>er le mot de passe samba. Veuillez v<>rifiez votre configuration dans le fichier template_config.php';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
$lang['credits'] = 'Cr<43>dits';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Pour effectuer une doantion au projet phpLDAadmin, veuillez utilisez un des boutons PayPal ci-dessous.';
$lang['donate_amount'] = 'Donner %s';
$lang['purge_cache'] = 'Vider la cache';
$lang['no_cache_to_purge'] = 'Aucune cache <20> vider.';
$lang['done_purging_caches'] = 'Suppression de %s octets de la cache.';
$lang['purge_cache_tooltip'] = 'Supprimer toutes les donn<6E>es en cache dans phpLDAPadmin, y compris les schemas serveur.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non s<>r: ';
@@ -521,6 +574,70 @@ $lang['non_leaf_nodes_cannot_be_renamed'] = 'Vous ne pouvez pas renommer une ent
$lang['no_rdn_change'] = 'Le RDN n\'a pas <20>t<EFBFBD> modifi<66>';
$lang['invalid_rdn'] = 'Valeur invalide du RDN';
$lang['could_not_rename'] = 'Impossible de renommer l\'entr<74>e';
$lang['csv_spreadsheet'] = 'CSV (tableur)';
// Samba Account Template
$lang['samba_account'] = 'Samba Account';
$lang['samba_account_lcase'] = 'samba account';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nouveau compte utilisateur';
$lang['t_hint_customize'] = 'Astuce: Pour personnaliser ce \'template\', <20>ditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Pr<50>nom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'Nom d\'utilisateur';
$lang['t_password'] = 'Mot de passe';
$lang['t_encryption'] = 'Encryption';
$lang['t_login_shell'] = 'Login Shell';
$lang['t_home_dir'] = 'Home Directory';
$lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(d<>termin<69> automatiquement)';
$lang['t_group'] = 'Groupe';
$lang['t_gid_number'] = 'GID Number';
$lang['t_err_passwords'] = 'Les mots de passe ne correspondent pas. Veuillez revenir en arri<72>re et recommencez.';
$lang['t_err_field_blank'] = 'Le champ %s ne peut etre vide. Veuillez revenir en arri<72>re et recommencez.';
$lang['t_err_field_num'] = 'Seuls des valeurs num<75>riques sont valides pour le champ %s. Veuillez revenir en arri<72>re et recommencez.';
$lang['t_err_bad_container'] = 'Le cont<6E>neur sp<73>cifi<66> (%s) n\'existe pas. Veuillez revenir en arri<72>re et recommencez.';
$lang['t_confirm_account_creation'] = 'Confirmation de la cr<63>ation du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Cr<43>er le compte';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Adresse';
$lang['t_city'] = 'Ville';
$lang['t_postal_code'] = 'Code postal';
$lang['t_street'] = 'rue';
$lang['t_work_phone'] = 'Work phone';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Cont<6E>neur';
$lang['t_err_cn_blank'] = 'Le champ \'Common Name\' ne peut etre vide. Veuillez revenir en arri<72>re et recommencer.';
$lang['t_confim_creation'] = 'Confirmation de la cr<63>ation de l\'entr<74>e:';
$lang['t_create_address'] = 'Create Address';
// compare form
$lang['compare'] = 'Comparer';
$lang['comparing'] = 'Comparaison des DNs suivant:';
$lang['compare_dn'] = 'Comparer un autre DN avec';
$lang['with'] = 'avec ';
$lang['compf_source_dn'] = 'DN Source';
$lang['compf_dn_tooltip'] = 'Comparer ce DN avec un autre';
$lang['switch_entry'] = 'Intervertir les entr<74>es';
$lang['no_value'] = 'Aucune Valeur';
$lang['compare_with'] = 'Comparer avec une autre entr<74>e';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Votre session a expir<69> apr<70>s';
$lang['session_timed_out_2'] = 'min. d\'inactivit<69>. Vous avez <20>t<EFBFBD> automatiquement d<>connect<63>.';
$lang['log_back_in'] = 'Pour vous connecter <20> nouveau, cliquez sur le lien suivant:';
$lang['session_timed_out_tree'] = '(Expiration de session. D<>connexion automatique.)';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ja.php,v 1.1 2004/12/09 14:02:37 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ja.php,v 1.4 2005/03/08 10:21:59 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@@ -37,7 +37,7 @@ $lang['predefined_search_str'] = '事前定義された検索を選択';
$lang['predefined_searches'] = '事前定義検索';
$lang['no_predefined_queries'] = 'config.php で定義された照会はありません。';
$lang['export_results'] = '結果エクスポート';
$lang['unrecoginzed_search_result_format'] = 'Unrecognized search result format: %s';
$lang['unrecoginzed_search_result_format'] = '認識できない書式の検索結果です: %s';
$lang['format'] = '書式';
$lang['list'] = '一覧';
$lang['table'] = 'テーブル';
@@ -56,14 +56,16 @@ $lang['import'] = 'インポート';
$lang['refresh'] = '再描画';
$lang['logout'] = 'ログアウト';
$lang['create_new'] = 'ここに新規エントリを追加';
$lang['view_schema_for'] = 'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Create a new entry on';
$lang['view_schema_for'] = 'スキーマを閲覧 対象:';
$lang['refresh_expanded_containers'] = '展開済みの内容を再描画 対象:';
$lang['create_new_entry_on'] = 'エントリを新規作成 対象:';
$lang['new'] = '新規';
$lang['view_server_info'] = 'サーバーが提供する情報を閲覧';
$lang['import_from_ldif'] = 'LDIF ファイルからのインポートエントリ';
$lang['logout_of_this_server'] = 'このサーバーのログアウト';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['logged_in_as'] = '次のコンテナでログイン: ';
$lang['this_base_dn_is_not_valid'] = 'これは有効な DN ではありません。';
$lang['this_base_dn_does_not_exist'] = 'このエントリは存在しません。';
$lang['read_only'] = '読み込み専用';
$lang['read_only_tooltip'] = 'この属性は phpLDAP 管理者により、読み込み専用で設定されています。';
$lang['could_not_determine_root'] = 'LDAP ツリーのルートが決定できません。';
@@ -73,7 +75,7 @@ $lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'ログイン...';
$lang['login'] = 'ログイン';
$lang['base_entry_does_not_exist'] = 'ベースエントリが存在しません。';
$lang['create_it'] = 'Create it?';
$lang['create_it'] = '作成しますか?';
// Entry display
$lang['delete_this_entry'] = 'このエントリを削除';
@@ -92,35 +94,35 @@ $lang['add'] = '追加';
$lang['view'] = 'View';
$lang['view_one_child'] = 'ひとつの子を閲覧';
$lang['view_children'] = '%s 個の子を閲覧';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加する';
$lang['hide_internal_attrs'] = '内部属性を隠す';
$lang['show_internal_attrs'] = '内部属性を表示';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['attr_name_tooltip'] = '属性タイプ \'%s\' のためのスキーマ定義を見るためにクリックしてください。';
$lang['none'] = 'なし';
$lang['no_internal_attributes'] = '内部属性がありません';
$lang['no_attributes'] = 'このエントリは属性を持っていません';
$lang['save_changes'] = '変更を保存';
$lang['add_value'] = '値追加';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['add_value_tooltip'] = '追加値を属性「%s」に追加する';
$lang['refresh_entry'] = '再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画する';
$lang['delete_hint'] = 'ヒント: 属性を削除するにはテキストフィールドを空にして保存をクリックします。';
$lang['attr_schema_hint'] = 'ヒント: 属性のスキーマを閲覧するには、属性名をクリックします。';
$lang['attrs_modified'] = 'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'no new binary attributes available for this entry';
$lang['attrs_modified'] = 'いくつかの属性 (%s) は修正され、下記でハイライトされました。';
$lang['attr_modified'] = 'ひとつの属性 (%s) は修正され、下記でハイライトされました。';
$lang['viewing_read_only'] = '読み込みモードでエントリを閲覧中。';
$lang['no_new_attrs_available'] = 'このエントリに利用可能な新規属性はありません。';
$lang['no_new_binary_attrs_available'] = 'このエントリに利用可能な新規バイナリ属性はありません。';
$lang['binary_value'] = 'バイナリ値';
$lang['add_new_binary_attr'] = '新規バイナリ属性を追加';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['alias_for'] = ': \'%s\' は \'%s\' のエイリアスです。';
$lang['required_for'] = 'objectClass %s の必須属性';
$lang['download_value'] = 'ダウンロード値';
$lang['delete_attribute'] = '属性削除';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['none_remove_value'] = 'いいえ、値を削除します';
$lang['really_delete_attribute'] = '本当に属性を削除';
$lang['add_new_value'] = '新規値追加';
@@ -132,6 +134,7 @@ $lang['the_following_syntaxes'] = '次の文法はこの LDAP サーバーでサ
$lang['schema_retrieve_error_1']='このサーバーはすべての LDAP プロトコルをサポートしていません。';
$lang['schema_retrieve_error_2']='この PHP のバージョンは正確に照会を行えません。';
$lang['schema_retrieve_error_3']='あるいは、phpLDAPadmin は、あなたのサーバーからスキーマを取得する方法を知りません。';
$lang['schema_retrieve_error_4']='Or lastly, LDAP サーバーはこの情報を提供していません。';
$lang['jump_to_objectclass'] = 'objectClass に移動';
$lang['view_schema_for_oclass'] = 'この objectClass のスキーマ説明を閲覧';
$lang['jump_to_attr'] = '属性タイプに移動';
@@ -153,16 +156,16 @@ $lang['inherited_from'] = '派生元';
$lang['parent_to'] = '派生先';
$lang['jump_to_this_oclass'] = 'この objectClass 定義に移動';
$lang['matching_rule_oid'] = '適用ルール OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['syntax_oid'] = '文法 OID';
$lang['not_applicable'] = '適用可能ではありません';
$lang['not_specified'] = '指定されていません';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='Used by objectClasses';
$lang['used_by_attributes']='Used by Attributes';
$lang['used_by_objectclasses']='objectClass を使する';
$lang['used_by_attributes']='Attributes で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
@@ -182,16 +185,16 @@ $lang['you_must_specify_a_dn'] = 'DN を指定しなければなりません';
$lang['could_not_delete_entry'] = 'エントリを削除できませんでした: %s';
$lang['no_such_entry'] = 'エントリがありません: %s';
$lang['delete_dn'] = '%s 削除';
$lang['permanently_delete_children'] = 'Permanently delete all children also?';
$lang['permanently_delete_children'] = 'さらに永久にすべての子を削除しますか?';
$lang['entry_is_root_sub_tree'] = 'このエントリは %s エントリを含むサブツリーのルートです。';
$lang['view_entries'] = 'エントリ閲覧';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin は再帰的に、このエントリとその子のすべての %s を削除できます。このアクションが削除するすべてのエントリの一覧は、下記を参照してください。本当に本当に削除しますか?';
$lang['confirm_recursive_delete_note'] = '注: これは潜在的に非常に危険です。また、自己責任でこれをします。このオペレーションは取り消せません。エイリアス・referralとその他の問題を考察を持ってください。';
$lang['delete_all_x_objects'] = '%s オブジェクトをすべて削除';
$lang['recursive_delete_progress'] = '再帰削除進行';
$lang['entry_and_sub_tree_deleted_successfully'] = 'エントリ %s とサブツリーの削除に成功しました。';
$lang['failed_to_delete_entry'] = 'エントリ %s のふぁ駆除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'List of entries to be deleted:';
$lang['failed_to_delete_entry'] = 'エントリ %s の除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'エントリの一覧を削除しました:';
$lang['sure_permanent_delete_object']='本当にこのオブジェクトを永続的に削除しますか?';
$lang['dn'] = 'DN';
@@ -201,13 +204,13 @@ $lang['no_attr_specified'] = '属性名が指定されていません。';
$lang['no_dn_specified'] = 'DN が指定されていません';
// Adding attributes
$lang['left_attr_blank'] = 'You left the attribute value blank. Please go back and try again.';
$lang['left_attr_blank'] = '属性値が空です。戻ってからもう一度試してください。';
$lang['failed_to_add_attr'] = '属性の追加に失敗しました。';
$lang['file_empty'] = 'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を調べてください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。The file you selected was only partially uploaded, likley due to a network error.';
$lang['file_empty'] = 'あなたの選んだファイルは空か存在しないかのいずれかです。戻ってからもう一度試してください。';
$lang['invalid_file'] = 'セキュリティエラー: アップロードされたファイルは悪意のあるものかもしれません。';
$lang['warning_file_uploads_disabled'] = 'PHP の設定でファイルのアップロードが無効です。続行する前に、php.ini を確認してください。';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を確認してください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。likley due to a network error.';
$lang['max_file_size'] = '最大ファイルサイズ: %s';
// Updating values
@@ -217,22 +220,23 @@ $lang['change_password_new_login'] = 'パスワードを変更したので、今
// Adding objectClass form
$lang['new_required_attrs'] = '新規必須属性';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = '新貴族性';
$lang['new_attributes'] = '新規属性';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['that_this_oclass_requires'] = 'それは objectClass に必要です。このフォームでそうすることができます。';
$lang['add_oclass_and_attrs'] = 'ObjectClass と属性を追加';
$lang['objectclasses'] = 'ObjectClasses';
$lang['objectclasses'] = 'ObjectClass 一覧';
// General
$lang['chooser_link_tooltip'] = 'Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'You cannot perform updates while server is in read-only mode';
$lang['no_updates_in_read_only_mode'] = 'サーバーは読み込みモードなので、更新を実行できません。';
$lang['bad_server_id'] = '間違ったサーバー ID';
$lang['not_enough_login_info'] = 'サーバーにログインする情報が不足しています。設定を確認してください。';
$lang['could_not_connect'] = 'LDAP サーバーに接続できませんでした。';
$lang['could_not_connect_to_host_on_port'] = '"%s" のポート "%s" に接続できませんでした';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['could_not_perform_ldap_mod_add'] = 'ldap_mod_add 操作を実行できませんでした。';
$lang['bad_server_id_underline'] = '間違った server_id: ';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
@@ -240,8 +244,8 @@ $lang['missing_server_id_in_query_string'] = '照会文字列にサーバー ID
$lang['missing_dn_in_query_string'] = '照会文字列に DN が指定されていません!';
$lang['back_up_p'] = 'バックアップ...';
$lang['no_entries'] = 'エントリがありません';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['not_logged_in'] = 'ログインしていません';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
@@ -257,7 +261,11 @@ $lang['bug'] = '不都合';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = '進む &gt;&gt;';
$lang['no_blowfish_secret'] = '$blowfish_secret が config.php で設定されていないので、phpLDAPadmin は安全に機密情報を暗号化と解読をすることができません。config.php を編集し、秘密文字列を $blowfish_secret に設定するする必要があります。';
$lang['jpeg_dir_not_writable'] = 'phpLDAPadmin の設定ファイル config.php で、書き込み可能なディレクトリを $jpeg_temp_dir に設定してください。';
$lang['jpeg_dir_not_writable_error'] = '$jpeg_temp_dir で指定したディレクトリ %s に書き込みできません。ウェブサーバーがそこにファイルを書き込みできることを確認してください。';
$lang['jpeg_unable_toget'] = '属性 %s 用に LDAP サーバーから jpeg データを取得できませんでした。';
$lang['jpeg_delete'] = '写真を削除';
// Add value form
$lang['add_new'] = '新規追加';
@@ -265,14 +273,14 @@ $lang['value_to'] = 'value to';
$lang['distinguished_name'] = '関連名';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = '属性の値';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Syntax';
$lang['syntax'] = '文法';
//copy.php
$lang['copy_server_read_only'] = 'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'You left the destination DN blank.';
$lang['copy_server_read_only'] = 'サーバーが読み込みモードなので、更新を行うことができません。';
$lang['copy_dest_dn_blank'] = '対象 DN がブランクで残されました。';
$lang['copy_dest_already_exists'] = '対象エントリ (%s) は既に存在します。';
$lang['copy_dest_container_does_not_exist'] = '対象先コンテナー (%s) は存在しません。';
$lang['copy_source_dest_dn_same'] = '対象元と対象先 DN が同じです。';
@@ -291,8 +299,8 @@ $lang['must_choose_template'] = 'テンプレートを選ばなければなり
$lang['invalid_template'] = '%s は無効なテンプレート';
$lang['using_template'] = '使用中のテンプレート';
$lang['go_to_dn'] = '%s に移動';
+$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
+$lang['structural'] = '構造';
$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
$lang['structural'] = '構造';
//copy_form.php
$lang['copyf_title_copy'] = 'コピー ';
@@ -300,16 +308,18 @@ $lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = '対象 DN';
$lang['copyf_dest_dn_tooltip'] = 'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = '対象サーバー';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_note'] = 'Hint: スキーマ違反がなければ、異なるサーバー間のコピー処理のみ行います。';
$lang['copyf_recursive_copy'] = '同様にこのオブジェクトのすべての子を再帰コピーします。';
$lang['recursive_copy'] = '再帰コピー';
$lang['filter'] = 'Filter';
$lang['filter'] = 'フィルター';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['filter_tooltip'] = '再帰的なコピーを行なう場合、このフィルタと一致するエントリのみコピーしてください。';
$lang['delete_after_copy'] = 'コピーの後に削除 (移動):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Redirecting...';
$lang['redirecting'] = 'リダイレクト中...';
$lang['here'] = 'ここ';
$lang['create_could_not_add'] = 'LDAP サーバーにオブジェクトを追加できませんでした。';
@@ -318,10 +328,10 @@ $lang['createf_create_object'] = 'オブジェクト作成';
$lang['createf_choose_temp'] = 'テンプレート選択';
$lang['createf_select_temp'] = '作成処理のテンプレートを選択';
$lang['save_as_file'] = 'ファイルに保存';
$lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['rdn_field_blank'] = 'RDN フィールドが空です。';
$lang['container_does_not_exist'] = '指定したコンテナー(%s)が存在しません。もう一度行ってください。';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'ヒント: You must choose exactly one structural objectClass (shown in bold above)';
$lang['no_objectclasses_selected'] = 'このオブジェクトのためのいくつかの ObjectClass を選択しませんでした。戻ってそのように実行してください。';
$lang['hint_structural_oclass'] = 'ヒント: ひとつの構造 objectClass を選択しなければなりません (上で強調表示されています)';
//creation_template.php
$lang['ctemplate_on_server'] = 'サーバー';
@@ -365,16 +375,16 @@ $lang['sounds like'] = 'に近い';
// server_info.php
$lang['could_not_fetch_server_info'] = 'サーバーから LDAP 情報を取得できませんでした。これはあなたの PHP バージョンの<a href="http://bugs.php.net/bug.php?id=29587">不都合</a>によるかもしれません。あるいは、あなたの LDAP サーバーは、LDAP クライアントが RootDSE にアクセスするのを防ぐアクセス制御指定をしています。';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['server_info_for'] = 'サーバー情報: ';
$lang['server_reports_following'] = 'サーバーは自分自身で次の情報を報告しました。';
$lang['nothing_to_report'] = 'このサーバーはなにも報告するものはありません。';
//update.php
$lang['update_array_malformed'] = 'update_array がオカシイです。This might be a phpLDAPadmin bug. Please report it.';
$lang['update_array_malformed'] = 'update_array がおかしいです。これは phpLDAPadmin のバグかもしれませんので、報告してください。';
$lang['could_not_perform_ldap_modify'] = 'ldap_modify 操作が実行できませんでした。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['do_you_want_to_make_these_changes'] = '変更をしたいですか?';
$lang['attribute'] = '属性';
$lang['old_value'] = '古い値';
$lang['new_value'] = '新しい値';
@@ -382,20 +392,19 @@ $lang['attr_deleted'] = '[属性を削除しました]';
$lang['commit'] = 'コミット';
$lang['cancel'] = '取り消し';
$lang['you_made_no_changes'] = '変更はありません';
$lang['go_back'] = 'Go back';
$lang['go_back'] = '戻る';
$lang['unable_create_samba_pass'] = 'samba パスワードを作成できませんでした。template_conf.php の設定を確認してください。';
// welcome.php
$lang['welcome_note'] = '左へのメニューを使用して捜査します';
$lang['welcome_note'] = '左へのメニューを使用して操作します';
$lang['credits'] = 'クレジット';
$lang['changelog'] = '変更履歴';
$lang['donate'] = '寄';
$lang['donate'] = '寄';
$lang['pla_logo'] = 'phpLDAPadmin ロゴ';
// Donate.php
$lang['donation_instructions'] = 'phpLDAPadmin プロジェクトに資金を寄贈するためには、PayPal ボタンのうちの 1 つを下に使用してください。';
$lang['donate_amount'] = '%s を寄贈';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'Dave\'s phpLDAPadmin のゐっ主リストを閲覧';
$lang['purge_cache'] = 'キャッシュ破棄';
$lang['no_cache_to_purge'] = '破棄するキャッシュはありませんでした。';
@@ -407,44 +416,44 @@ $lang['unsafe_file_name'] = '安全でないファイル名: ';
$lang['no_such_file'] = 'ファイルがありません: ';
//function.php
$lang['auto_update_not_setup'] = 'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
but you have not specified the auto_uid_number_mechanism. Please correct
this problem.';
$lang['uidpool_not_set'] = 'You specified the "auto_uid_number_mechanism" as "uidpool"
in your configuration for server <b>%s</b>, but you did not specify the
audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['auto_update_not_setup'] = '設定ファイルの <b>%s</b>You の auto_uid_numbers が有効ですが、
auto_uid_number_mechanism が指定されていません。
この問題を修正してください。.';
$lang['uidpool_not_set'] = 'サーバー <b>%s</b> の設定で、"auto_uid_number_mechanism" "uidpool" に指定していますが、
audo_uid_number_uid_pool_dn を指定していません。
続行する前にそれを指定してください';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'You specified the "auto_uid_number_mechanism" as "search" in your
configuration for server <b>%s</b>, but you did not specify the
"auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism ("%s")
in your configration. Only "uidpool" and "search" are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = 'Error: You have an error in your config file. The only three allowed values
for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\',
which is not allowed. ';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = 'Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.';
$lang['specified_uidpool'] = 'サーバー <b>%s</b> の設定で「search」に「auto_uid_number_mechanism」を指定しました。
しかし「auto_uid_number_search_base」が指定されていません。
これを実行前に指定してください。';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. 設定ファイルを確認してください。';
$lang['bad_auto_uid_search_base'] = 'phpLDAPadmin の設定で、サーバー %s に無効な auto_uid_search_base が指定されました';
$lang['auto_uid_invalid_value'] = '設定ファイルの auto_uid_number_mechanism の指定が間違った値("%s")です。
"uidpool" "search" のみ有効です。
この問題を修正してください。';
$lang['error_auth_type_config'] = 'エラー: 設定ファイルのにエラーがあります。$servers セクションの auth_type は
「session」「cookie」「config」のみっつの値のみ許可されていますが、
許可されない「%s」が入力されました。';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. 設定ファイルを確認してください。';
$lang['unique_attr_failed'] = '<b>%s</b> (<i>%s</i>) <b>%s</b> への追加の試みは許可<b>されていません</b>。<br />その属性/値は別のエントリが所有しています。<p>そのエントリを<a href=\'%s\'>検索</a>などするしょう。';
$lang['php_install_not_supports_tls'] = 'インストールされている PHP は TLS をサポートしていません。';
$lang['could_not_start_tls'] = 'TLS を開始できません。LDAP サーバーの設定を確認してください。';
$lang['could_not_bind_anon'] = 'サーバーに匿名接続できませんでした。';
$lang['could_not_bind'] = 'LDAP サーバーに接続できませんでした。';
$lang['anonymous_bind'] = '匿名接続';
$lang['bad_user_name_or_password'] = 'ユーザー名かパスワードがおかしいです。もう一度行ってください。';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b>へのログインに成功しました';
$lang['redirecting_click_if_nothing_happens'] = 'リダイレクト中... もし何も起こらなかったらここをクリックしてください。';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b> へのログインに成功しました';
$lang['could_not_set_cookie'] = 'cookie を設定できませんでした。';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ferror_error'] = 'エラー';
$lang['fbrowse'] = '閲覧';
$lang['delete_photo'] = '写真削除';
$lang['install_not_support_blowfish'] = 'インストールされた PHP は blowfish 暗号化をサポートしていません。';
$lang['install_not_support_md5crypt'] = 'インストールされた PHP は md5crypt 暗号化をサポートしていません。';
$lang['install_no_mash'] = 'インストールされた PHP は mhash() をサポートしていません。SHA ハッシュをすることができません。';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['jpeg_contains_errors'] = 'エラーを含む jpeg 写真<br />';
$lang['ferror_number'] = 'エラー番号: %s (%s)';
$lang['ferror_discription'] = '説明: %s <br /><br />';
$lang['ferror_number_short'] = 'エラー番号: %s<br /><br />';
@@ -511,7 +520,7 @@ $lang['searching'] = '検索中...';
$lang['size_limit_exceeded'] = '通知です。検索サイズが制限を越えました。';
$lang['entry'] = 'エントリ';
$lang['ldif_export_for_dn'] = 'LDIF エクスポート: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['generated_on_date'] = '%s に phpLDAPadmin ( http://www.phpldapadmin.com/ ) で生成しました。';
$lang['total_entries'] = '総エントリ';
$lang['dsml_export_for_dn'] = 'DSLM エクスポート: %s';
$lang['include_system_attrs'] = 'システム属性を含む';
@@ -519,19 +528,20 @@ $lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['password_blank'] = 'パスワードが空です。';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'ログアウトできませんでした。';
$lang['unknown_auth_type'] = '未知の auth_type: %s';
$lang['logged_out_successfully'] = 'サーバー <b>%s</b> からログアウトに成功しました';
$lang['authenticate_to_server'] = 'Authenticate to server %s';
$lang['authenticate_to_server'] = 'サーバー %s へ認証';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: このウェブ接続は暗号化されていません。';
$lang['not_using_https'] = 'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['not_using_https'] = 'あなたは \'https\' を使っていません。ログイン情報はブラウザからクリアテキストで送信されます、';
$lang['login_dn'] = 'ログイン DN';
$lang['user_name'] = 'ユーザー名';
$lang['password'] = 'パスワード';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'すみません、この LDAP サーバーと phpLDAPadmin を使用することを許可していません。';
// Entry browser
$lang['entry_chooser_title'] = 'エントリ選択';
@@ -563,7 +573,7 @@ $lang['could_not_rename'] = 'エントリの名称変更が出来ませんでし
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin は PHP 5 をサポートしていません。You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes must have the same number of attributes as $search_attributes_display.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes $search_attributes_display の属性と同じ数を持たなければいけません。';
// Password checker
$lang['passwords_match'] = 'パスワードが一致しました!';
@@ -572,4 +582,100 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'テンプレート';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'デフォルトテンプレート';
// template_config
$lang['user_account'] = 'ユーザーアカウント (posixAccount)';
$lang['address_book_inet'] = 'アドレス帳エントリ (inetOrgPerson)';
$lang['address_book_moz'] = 'アドレス帳エントリ (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab ユーザーエントリ';
$lang['organizational_unit'] = '所属組織';
$lang['organizational_role'] = '所属職務';
$lang['posix_group'] = 'Posix グループ';
$lang['samba_machine'] = 'Samba NT マシン';
$lang['samba3_machine'] = 'Samba 3 NT マシン';
$lang['samba_user'] = 'Samba ユーザー';
$lang['samba3_user'] = 'Samba 3 ユーザー';
$lang['samba3_group'] = 'Samba 3 グループマップ';
$lang['dns_entry'] = 'DNS エントリ';
$lang['simple_sec_object'] = '簡易セキュリティオブジェクト';
$lang['courier_mail_account'] = 'Courier メールアカウント';
$lang['courier_mail_alias'] = 'Courier メール別名';
$lang['ldap_alias'] = 'LDAP 別名';
$lang['sendmail_cluster'] = 'Sendmail クラスター';
$lang['sendmail_domain'] = 'Sendmail ドメイン';
$lang['sendmail_alias'] = 'Sendmail エイリアス';
$lang['sendmail_virt_dom'] = 'Sendmail 仮想ドメイン';
$lang['sendmail_virt_users'] = 'Sendmail 仮想ユーザー';
$lang['sendmail_relays'] = 'Sendmail リレー';
$lang['custom'] = 'カスタム';
$lang['samba_domain_name'] = '自分の Samba ドメイン名';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Samba のパスワードを作成できませんでした。template_config.php の設定を確認してください。';
$lang['err_smb_conf'] = 'エラー: samba の設定にエラーがあります。';
$lang['err_smb_no_name_sid'] = 'エラー: samba ドメインの名前および sid を提供する必要があります。';
$lang['err_smb_no_name'] = 'エラー: 名前は samba ドメインに提供されませんでした。';
$lang['err_smb_no_sid'] = 'エラー: sid は samba ドメインに提供されませんでした。';
// Samba Account Template
$lang['samba_account'] = 'Samba アカウント';
$lang['samba_account_lcase'] = 'samba アカウント';
// New User (Posix) Account
$lang['t_new_user_account'] = '新規ユーザーアカウント';
$lang['t_hint_customize'] = 'ヒント: このテンプレートをカスタマイズする場合、ファイル templates/creation/new_user_template.php を編集します。';
$lang['t_name'] = '名前';
$lang['t_first_name'] = '名前';
$lang['t_last_name'] = '苗字';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = '共通名';
$lang['t_user_name'] = 'ユーザー名';
$lang['t_password'] = 'パスワード';
$lang['t_encryption'] = '暗号化';
$lang['t_login_shell'] = 'ログインシェル';
$lang['t_home_dir'] = 'ホームディレクトリ';
$lang['t_uid_number'] = 'UID 番号';
$lang['t_auto_det'] = '(自動採決)';
$lang['t_group'] = 'グループ';
$lang['t_gid_number'] = 'GID 番号';
$lang['t_err_passwords'] = 'パスワードが一致しません。戻ってからもう一度試してください。';
$lang['t_err_field_blank'] = '%s ブランクを残すことはできません。戻ってからもう一度試してください。';
$lang['t_err_field_num'] = 'フィールド %s は数値のみ入力で出来ます。戻ってからもう一度試してください。';
$lang['t_err_bad_container'] = '指定した内容(%s)は存在しません。戻ってからもう一度試してください。';
$lang['t_confirm_account_creation'] = 'アカウント作成確認';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'アカウント作成';
// New Address Template
$lang['t_new_address'] = '新規アドレス帳エントリ';
$lang['t_organization'] = '組織';
$lang['t_address'] = '住所';
$lang['t_city'] = '都市';
$lang['t_postal_code'] = '郵便番号';
$lang['t_street'] = '築町村';
$lang['t_work_phone'] = '業務電話';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = '携帯電話';
$lang['t_email'] = '電子メール';
$lang['t_container'] = 'コンテナー';
$lang['t_err_cn_blank'] = '一般名を空にすることは出来ません。戻ってからもう一度試してください。';
$lang['t_confim_creation'] = 'エントリ作成の確認:';
$lang['t_create_address'] = 'アドレス作成';
// default template
$lang['t_check_pass'] = 'パスワード検査...';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
@@ -16,10 +16,10 @@
*
*/
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
* initial translation from Piotr (DrFugazi) Tarnowski on Version 0.9.3
*/
// Based on en.php version 1.80
// Based on en.php version 1.120
// Search form
$lang['simple_search_form_str'] = 'Wyszukiwanie proste';
@@ -29,7 +29,6 @@ $lang['search_for_entries_whose'] = 'Szukaj wpis
$lang['base_dn'] = 'Bazowa DN';
$lang['search_scope'] = 'Zakres przeszukiwania';
$lang['show_attributes'] = 'Poka<6B> atrybuty';
$lang['attributes'] = 'Atrybuty';
$lang['Search'] = 'Szukaj';
$lang['equals'] = 'r<>wna si<73>';
$lang['contains'] = 'zawiera';
@@ -42,10 +41,12 @@ $lang['format'] = 'Format';
$lang['list'] = 'lista';
$lang['table'] = 'tabela';
$lang['bad_search_display'] = 'W Twojej konfiguracji (config.php) okre<72>lona jest nieprawid<69>owa warto<74><6F> dla $default_search_display: %s. Prosz<73> to poprawi<77>';
$lang['page_n'] = 'Strona %d';
$lang['no_results'] = 'Wyszukiwanie nie przynios<6F>o <20>adnych rezultat<61>w.';
// Tree browser
$lang['request_new_feature'] = 'Zg<5A>o<EFBFBD> zapotrzebowanie na now<6F> funkcjonalno<6E><6F>';
$lang['report_bug'] = 'Zg<5A>o<EFBFBD> b<><62>d (report a bug)';
$lang['request_new_feature'] = 'Zg<5A>o<EFBFBD> zapotrzebowanie';
$lang['report_bug'] = 'Zg<5A>o<EFBFBD> b<><62>d';
$lang['schema'] = 'schemat';
$lang['search'] = 'szukaj';
$lang['create'] = 'utw<74>rz';
@@ -53,7 +54,7 @@ $lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'od<6F>wie<69>';
$lang['logout'] = 'wyloguj';
$lang['create_new'] = 'Utw<74>rz nowy';
$lang['create_new'] = 'Utw<74>rz nowy wpis';
$lang['view_schema_for'] = 'Poka<6B> schemat dla';
$lang['refresh_expanded_containers'] = 'Od<4F>wie<69> wszystkie otwarte kontenery dla';
$lang['create_new_entry_on'] = 'Utw<74>rz nowy wpis na';
@@ -62,6 +63,8 @@ $lang['view_server_info'] = 'Poka
$lang['import_from_ldif'] = 'Importuj wpisy z pliku LDIF';
$lang['logout_of_this_server'] = 'Wyloguj z tego serwera';
$lang['logged_in_as'] = 'Zalogowany/a jako: ';
$lang['this_base_dn_is_not_valid'] = 'To nie jest prawid<69>owa DN.';
$lang['this_base_dn_does_not_exist'] = 'Ten wpis nie istnieje';
$lang['read_only'] = 'tylko-do-odczytu';
$lang['read_only_tooltip'] = 'Ten atrybut zosta<74> oznaczony przez administratora phpLDAPadmin jako tylko-do-odczytu';
$lang['could_not_determine_root'] = 'Nie mo<6D>na ustali<6C> korzenia Twojego drzewa LDAP.';
@@ -70,11 +73,13 @@ $lang['please_specify_in_config'] = 'Prosz
$lang['create_new_entry_in'] = 'Utw<74>rz nowy wpis w';
$lang['login_link'] = 'Logowanie...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'Ten wpis bazowy nie istnieje';
$lang['create_it'] = 'Utworzy<7A> ?';
// Entry display
$lang['delete_this_entry'] = 'Usu<73> ten wpis';
$lang['delete_this_entry_tooltip'] = 'B<>dziesz poproszony/a o potwierdzenie tej decyzji';
$lang['copy_this_entry'] = 'Skopiuj ten wpis';
$lang['copy_this_entry'] = 'Skopiuj lub przenie<69> ten wpis';
$lang['copy_this_entry_tooltip'] = 'Skopiuj ten obiekt do innej lokalizacji, nowej DN, lub do innego serwera';
$lang['export'] = 'Eksportuj';
$lang['export_lcase'] = 'eksportuj';
@@ -112,6 +117,7 @@ $lang['binary_value'] = 'Warto
$lang['add_new_binary_attr'] = 'Dodaj nowy atrybut binarny';
$lang['alias_for'] = 'Uwaga: \'%s\' jest aliasem dla \'%s\'';
$lang['required_for'] = 'Atrybut wymagany dla klas(y) obiektu %s';
$lang['required_by_entry'] = 'Ten atrybut jest wymagany dla RDN';
$lang['download_value'] = 'pobierz (download) warto<74><6F>';
$lang['delete_attribute'] = 'usu<73> atrybut';
$lang['true'] = 'prawda';
@@ -121,13 +127,10 @@ $lang['really_delete_attribute'] = 'Definitywnie usu
$lang['add_new_value'] = 'Dodaj now<6F> warto<74><6F>';
// Schema browser
$lang['the_following_objectclasses'] = 'Nast<73>puj<75>ce klasy obiektu s<> wspierane przez ten serwer LDAP.';
$lang['the_following_attributes'] = 'Nast<73>puj<75>ce typy atrybut<75>w s<> wspierane przez ten serwer LDAP.';
$lang['the_following_matching'] = 'Nast<73>puj<75>ce regu<67>y dopasowania s<> wspierane przez ten serwer LDAP.';
$lang['the_following_syntaxes'] = 'Nast<73>puj<75>ce sk<73>adnie s<> wspierane przez ten serwer LDAP.';
$lang['schema_retrieve_error_1']='Serwer nie wspiera w pe<70>ni protoko<6B>u LDAP.';
$lang['schema_retrieve_error_2']='Twoja wersja PHP niepoprawnie wykonuje zapytanie.';
$lang['schema_retrieve_error_3']='Lub w ostateczno<6E>ci, phpLDAPadmin nie wie jak uzyska<6B> schemat dla Twojego serwera.';
$lang['schema_retrieve_error_3']='phpLDAPadmin nie wie jak uzyska<6B> schemat z Twojego serwera.';
$lang['schema_retrieve_error_4']='Lub w ostateczno<6E>ci, Tw<54>j serwer nie dostarcza tej informacji.';
$lang['jump_to_objectclass'] = 'Skocz do klasy obiektu';
$lang['view_schema_for_oclass'] = 'Poka<6B> opis schematu dla tej klasy obiektu';
$lang['jump_to_attr'] = 'Skocz do typu atrybutu';
@@ -224,17 +227,15 @@ $lang['not_enough_login_info'] = 'Brak wystarczaj
$lang['could_not_connect'] = 'Nie mo<6D>na pod<6F><64>czy<7A> si<73> do serwera LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Nie mo<6D>na pod<6F><64>czy<7A> si<73> do "%s" na port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nie mo<6D>na dokona<6E> operacji ldap_mod_add.';
$lang['bad_server_id_underline'] = 'Z<>y server_id: ';
$lang['home'] = 'Strona g<><67>wna';
$lang['help'] = 'Pomoc';
$lang['success'] = 'Sukces';
$lang['server_colon_pare'] = 'Serwer: ';
$lang['look_in'] = 'Szukam w: ';
$lang['missing_server_id_in_query_string'] = 'Nie okre<72>lono ID serwera w zapytaniu !';
$lang['missing_dn_in_query_string'] = 'Nie okre<72>lono DN w zapytaniu !';
$lang['back_up_p'] = 'Do g<>ry...';
$lang['no_entries'] = 'brak wpis<69>w';
$lang['not_logged_in'] = 'Nie zalogowany/a';
$lang['could_not_det_base_dn'] = 'Nie mo<6D>na okre<72>li<6C> bazowego DN';
$lang['please_report_this_as_a_bug']='Prosz<73> zg<7A>osi<73> to jako b<><62>d.';
$lang['reasons_for_error']='To mog<6F>o zdarzy<7A> si<73> z kilku powod<6F>w, z kt<6B>rych najbardziej prawdopodobne to:';
$lang['yes']='Tak';
$lang['no']='Nie';
@@ -243,12 +244,16 @@ $lang['delete']='Usu
$lang['back']='Powr<77>t';
$lang['object']='obiekt';
$lang['delete_all']='Usu<73> wszystko';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'wskaz<61>wka';
$lang['bug'] = 'b<><62>d (bug)';
$lang['warning'] = 'ostrze<7A>enie';
$lang['light'] = '<27>ar<61>wka'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Dalej &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin nie mo<6D>e bezpiecznie szyfrowa<77> danych, poniewa<77> zmienna $blowfish_secret nie jest ustawiona w config.php. Nale<6C>y wyedytowa<77> config.php i wpisa<73> jaki<6B> <20>a<EFBFBD>cuch znak<61>w do zmiennej $blowfish_secret';
$lang['jpeg_dir_not_writable'] = 'Prosz<73> ustawi<77> zmienn<6E> $jpeg_temp_dir w config.php na katalog z mo<6D>liwo<77>ci<63> zapisu plik<69>w';
$lang['jpeg_dir_not_writable_error'] = 'Nie mo<6D>na zapisa<73> do katalogu $jpeg_temp_dir %s. Sprawd<77> prosz<73> czy Tw<54>j serwer mo<6D>e zapisywa<77> pliki w tym katalogu.';
$lang['jpeg_unable_toget'] = 'Nie mo<6D>na pobra<72> danych jpeg z serwera LDAP dla atrybutu %s.';
$lang['jpeg_delete'] = 'Usu<73> zdj<64>cie';
// Add value form
$lang['add_new'] = 'Dodaj';
@@ -296,7 +301,9 @@ $lang['copyf_recursive_copy'] = 'Rekursywne kopiowanie wszystkich potomnych obie
$lang['recursive_copy'] = 'Kopia rekursywna';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'Podczas rekursywnego kopiowania, kopiowane s<> tylko wpisy pasuj<75>ce do filtra';
$lang['delete_after_copy'] = 'Usu<73> po skopiowaniu (przenie<69>):';
$lang['delete_after_copy_warn'] = 'Upewnij si<73>, <20>e ustawienia filtra (powy<77>ej) pozwalaj<61> na wybranie wszystkich rekord<72>w podrz<72>dnych.';
//create.php
$lang['create_required_attribute'] = 'Brak warto<74>ci dla wymaganego atrybutu (%s).';
$lang['redirecting'] = 'Przekierowuj<75>';
@@ -307,17 +314,17 @@ $lang['create_could_not_add'] = 'Nie mo
$lang['createf_create_object'] = 'Utw<74>rz obiekt';
$lang['createf_choose_temp'] = 'Wybierz szablon';
$lang['createf_select_temp'] = 'Wybierz szablon dla procesu tworzenia';
$lang['createf_proceed'] = 'Dalej';
$lang['save_as_file'] = 'Zapisz jako';
$lang['rdn_field_blank'] = 'Pozostawi<77>e<EFBFBD>/a<> puste pole RDN.';
$lang['container_does_not_exist'] = 'Kontener kt<6B>ry okre<72>li<6C>e<EFBFBD>/a<> (%s) nie istnieje. Spr<70>buj ponownie.';
$lang['no_objectclasses_selected'] = 'Nie wybra<72>e<EFBFBD>/a<> <20>adnych Klas Obiektu dla tego obiektu. Wr<57><72> prosz<73> i zr<7A>b to.';
$lang['hint_structural_oclass'] = 'Wskaz<61>wka: Musisz wybra<72> co najmniej jedn<64> strukturaln<6C> klas<61> obiektu (wyr<79><72>nion<6F> pogrubieniem)';
$lang['hint_structural_oclass'] = 'Wskaz<61>wka: Musisz wybra<72> dok<EFBFBD>adnie jedn<64> strukturaln<6C> klas<61> obiektu (wyr<79><72>nion<6F> pogrubieniem)';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serwerze';
$lang['ctemplate_no_template'] = 'Brak okre<72>lenia szablonu w zmiennych POST.';
$lang['ctemplate_config_handler'] = 'Twoja konfiguracja okre<72>la handler';
$lang['ctemplate_handler_does_not_exist'] = 'dla tego szablonu. Ale, ten handler nie istnieje w szablonach/tworzonym katalogu';
$lang['template_not_readable'] = 'Twoja konfiguracja okre<72>la obs<EFBFBD>ug<EFBFBD> "%s" dla tego szablonu, ale tego pliku nie da si<73> odczyta<74>, poniewa<77> uprawnienia s<> zbyt restrykcyjne.';
$lang['template_does_not_exist'] = 'Twoja konfiguracja okre<72>la obs<62>ug<75> "%s" dla tego szablonu, ale pliku obs<62>ugi nie ma w katalogu templates/creation.';
$lang['create_step1'] = 'Krok 1 z 2: Nazwa i klasa/y obiektu';
$lang['create_step2'] = 'Krok 2 z 2: Okre<72>lenie atrybut<75>w i warto<74>ci';
$lang['relative_distinguished_name'] = 'Relatywna Wyr<79><72>niona Nazwa (RDN)';
@@ -350,7 +357,7 @@ $lang['ends with'] = 'ko
$lang['sounds like'] = 'brzmi jak';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nie mo<6D>na uzyska<6B> informacji od serwera LDAP';
$lang['could_not_fetch_server_info'] = 'Nie mo<6D>na uzyska<6B> informacji od serwera LDAP. Mo<4D>e to by<62> spowodowane <a href="http://bugs.php.net/bug.php?id=29587">b<><62>dem</a> w Twojej wersji PHP albo na przyk<79>ad tym, <20>e Tw<54>j serwer LDAP posiada list<73> kontroli dost<73>pu nie zezwalaj<61>c<EFBFBD> na pobranie RootDSE klientom LDAP';
$lang['server_info_for'] = 'Informacja o serwerze: ';
$lang['server_reports_following'] = 'Serwer zwr<77>ci<63> nast<73>puj<75>ce informacje o sobie';
$lang['nothing_to_report'] = 'Ten serwer nie chce nic powiedzie<69> o sobie :).';
@@ -369,24 +376,30 @@ $lang['commit'] = 'Zatwierd
$lang['cancel'] = 'Anuluj';
$lang['you_made_no_changes'] = 'Nie dokonano <20>adnych zmian';
$lang['go_back'] = 'Powr<77>t';
$lang['unable_create_samba_pass'] = 'Nie mo<6D>na utworzy<7A> has<61>a dla samby. Sprawd<77> prosz<73> swoj<6F> konfiguracj<63> w template_config.php';
// welcome.php
$lang['welcome_note'] = 'U<>yj menu z lewej strony do nawigacji';
$lang['credits'] = 'Lista p<>ac';
$lang['changelog'] = 'Historia zmian';
$lang['donate'] = 'Wesprzyj projekt';
$lang['purge_cache'] = 'Wyczy<EFBFBD><EFBFBD> pami<6D><69> podr<64>czn<7A>';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Aby wesprze<7A> projekt phpLDAPadmin skorzystaj z jednego z przycisk<73>w PayPal umieszczonych poni<6E>ej';
$lang['donate_amount'] = 'Wesprzyj kwot<6F> %s';
$lang['purge_cache'] = 'Wyczy<7A><79> cache';
$lang['no_cache_to_purge'] = 'Nie ma czego czy<7A>ci<63>.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajt<6A>w pami<6D>ci podr<64>cznej.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajt<6A>w pami<6D>ci podr<64>cznej (cache).';
$lang['purge_cache_tooltip'] = 'Czy<7A>ci wszystkie dane podr<64>czne (cache) w phpLDAPadmin, <20><>cznie ze schematami serwera';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Niebezpieczna nazwa pliku: ';
$lang['no_such_file'] = 'Nie znaleziono pliku: ';
//function.php
$lang['auto_update_not_setup'] = 'Zezwoli<6C>e<EFBFBD>/a<> na automatyczne nadawanie uid (auto_uid_numbers)
dla <b>%s</b> w konfiguracji, ale nie okre<72>li<6C>e<EFBFBD>/a<> mechanizmu
(auto_uid_number_mechanism). Prosz<73> skorygowa<77> ten problem.';
$lang['auto_update_not_setup'] = 'Zezwoli<6C>e<EFBFBD>/a<> na automatyczne nadawanie uid (auto_uid_numbers) dla <b>%s</b> w konfiguracji, ale nie okre<72>li<6C>e<EFBFBD>/a<> mechanizmu (auto_uid_number_mechanism). Prosz<73> skorygowa<77> ten problem.';
$lang['uidpool_not_set'] = 'Okre<72>li<6C>e<EFBFBD>/a<> mechanizm autonumerowania uid "auto_uid_number_mechanism" jako "uidpool" w konfiguracji Twojego serwera <b>%s</b>, lecz nie okre<72>li<6C>e<EFBFBD>/a<> audo_uid_number_uid_pool_dn. Prosz<73> okre<72>l to zanim przejdziesz dalej.';
$lang['uidpool_not_exist'] = 'Wygl<67>da na to, <20>e uidPool, kt<6B>r<EFBFBD> okre<72>li<6C>e<EFBFBD>/a<> w Twojej konfiguracji ("%s") nie istnieje.';
$lang['specified_uidpool'] = 'Okre<72>li<6C>e<EFBFBD>/a<> "auto_uid_number_mechanism" jako "search" w konfiguracji Twojego serwera <b>%s</b>, ale nie okre<72>li<6C>e<EFBFBD>/a<> bazy "auto_uid_number_search_base". Zr<5A>b to zanim przejdziesz dalej.';
@@ -402,15 +415,15 @@ $lang['could_not_bind_anon'] = 'Nie mo
$lang['could_not_bind'] = 'Nie mo<6D>na pod<6F><64>czy<7A> si<73> do serwera LDAP.';
$lang['anonymous_bind'] = 'Pod<6F><64>czenie anonimowe';
$lang['bad_user_name_or_password'] = 'Z<>a nazwa u<>ytkownika lub has<61>o. Spr<70>buj ponownie.';
$lang['redirecting_click_if_nothing_happens'] = 'Przekierowuj<75>... Kliknij tutaj je<6A>li nic si<73> nie dzieje.';
$lang['successfully_logged_in_to_server'] = 'Pomy<6D>lnie zalogowano do serwera <b>%s</b>';
$lang['could_not_set_cookie'] = 'Nie mo<6D>na ustawi<77> ciasteczka (cookie).';
$lang['ldap_said'] = 'LDAP odpowiedzia<69>: %s';
$lang['ferror_error'] = 'B<><42>d';
$lang['fbrowse'] = 'przegl<67>daj';
$lang['delete_photo'] = 'Usu<73> fotografi<66>';
$lang['install_not_support_blowfish'] = 'Twoja instalacja PHP nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja instalacja PHP nie wspiera szyfrowania md5crypt.';
$lang['install_not_support_ext_des'] = 'Twoja systemowa biblioteka crypt nie wspiera rozszerzonego szyfrowania DES';
$lang['install_not_support_blowfish'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania md5crypt.';
$lang['install_no_mash'] = 'Twoja instalacja PHP nie posiada funkcji mhash(). Nie mog<6F> tworzy<7A> haszy SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto zawiera b<><62>dy<br />';
$lang['ferror_number'] = 'B<><42>d numer: %s (%s)';
@@ -442,7 +455,6 @@ $lang['ferror_congrats_found_bug'] = 'Gratulacje ! Znalaz
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importuj plik LDIF';
$lang['select_ldif_file'] = 'Wybierz plik LDIF:';
$lang['select_ldif_file_proceed'] = 'Dalej &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Nie zatrzymuj si<73> po napotkaniu b<><62>d<EFBFBD>w';
//ldif_import
@@ -453,7 +465,7 @@ $lang['modify_action'] = 'Modyfikowanie...';
$lang['warning_no_ldif_version_found'] = 'Nie znaleziono numeru wersji. Przyjmuj<75> 1.';
$lang['valid_dn_line_required'] = 'Wymagana jest poprawna linia DN.';
$lang['missing_uploaded_file'] = 'Brak wgrywanego pliku.';
$lang['no_ldif_file_specified.'] = 'Nie okre<72>lono pliku LDIF. Spr<70>buj ponownie.';
$lang['no_ldif_file_specified'] = 'Nie okre<72>lono pliku LDIF. Spr<70>buj ponownie.';
$lang['ldif_file_empty'] = 'Wgrany plik LDIF jest pusty.';
$lang['empty'] = 'pusty';
$lang['file'] = 'Plik';
@@ -489,11 +501,10 @@ $lang['generated_on_date'] = 'Wygenerowane przez phpLDAPadmin ( http://phpldapad
$lang['total_entries'] = '<27><>cznie wpis<69>w';
$lang['dsml_export_for_dn'] = 'Eksport DSLM dla: %s';
$lang['include_system_attrs'] = 'Zawiera atrybuty systemowe';
$lang['csv_spreadsheet'] = 'CVS (arkusz)';
// logins
$lang['could_not_find_user'] = 'Nie mo<6D>na znale<6C><65> u<>ytkownika "%s"';
$lang['password_blank'] = 'Pozostawi<77>e<EFBFBD>/a<> puste has<61>o.';
$lang['login_cancelled'] = 'Logowanie anulowane.';
$lang['no_one_logged_in'] = 'Nikt nie jest zalogowany do tego serwera.';
$lang['could_not_logout'] = 'Nie mo<6D>na wylogowa<77>.';
$lang['unknown_auth_type'] = 'Nieznany auth_type: %s';
@@ -505,6 +516,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Nazwa u<>ytkownika';
$lang['password'] = 'Has<61>o';
$lang['authenticate'] = 'Zaloguj';
$lang['login_not_allowed'] = 'Przykro mi, ale nie masz uprawnie<69> aby korzysta<74> z phpLDAPadmin na tym serwerze LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'Wyb<79>r wpisu';
@@ -534,15 +546,25 @@ $lang['no_rdn_change'] = 'Nie zmieni
$lang['invalid_rdn'] = 'B<><42>dna warto<74><6F> RDN';
$lang['could_not_rename'] = 'Nie mo<6D>na zmieni<6E> nazwy wpisu';
// General errors
$lang['mismatched_search_attr_config'] = 'Twoja konfiguracja zawiera b<><62>d. $search_attributes musi posiada<64> t<> sam<61> ilo<6C><6F> atrybut<75>w co $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Has<61>a zgodne !';
$lang['passwords_do_not_match'] = 'Has<61>a nie zgadzaj<61> si<73> !';
$lang['password_checker_tool'] = 'Narz<72>dzie do sprawdzania hase<73>';
$lang['compare'] = 'Por<6F>wnaj';
$lang['to'] = 'Do';
// Templates
$lang['using'] = 'U<>ywaj<61>c';
$lang['template'] = 'szablonu';
$lang['switch_to'] = 'Mo<4D>esz prze<7A><65>czy<7A> si<73> do ';
$lang['default_template'] = 'domy<6D>lnego szablonu';
// template_config
$lang['user_account'] = 'Konto U<>ytkownika (posixAccount)';
$lang['address_book'] = 'Wpis Ksi<73><69>ki Adresowej (inetOrgPerson)';
$lang['address_book_inet'] = 'Wpis Ksi<73><69>ki Adresowej (inetOrgPerson)';
$lang['address_book_moz'] = 'Wpis Ksi<73><69>ki Adresowej (mozillaOrgPerson)';
$lang['kolab_user'] = 'Wpis U<>ytkownika Kolab';
$lang['organizational_unit'] = 'Jednostka Organizacyjna';
$lang['organizational_role'] = 'Rola w Organizacji';
@@ -557,6 +579,12 @@ $lang['simple_sec_object'] = 'Prosty obiekt bezpiecze
$lang['courier_mail_account'] = 'Konto Pocztowe w Courier';
$lang['courier_mail_alias'] = 'Alias Pocztowy w Courier';
$lang['ldap_alias'] = 'Alias w LDAP';
$lang['sendmail_cluster'] = 'Klaster Sendmail';
$lang['sendmail_domain'] = 'Domena Sendmail';
$lang['sendmail_alias'] = 'Alias Sendmail';
$lang['sendmail_virt_dom'] = 'Wirtualna Domena Sendmail';
$lang['sendmail_virt_users'] = 'Wirtualni U<>ytkownicy Sendmail';
$lang['sendmail_relays'] = 'Sendmail Relays';
$lang['custom'] = 'Og<4F>lne';
$lang['samba_domain_name'] = 'Moja nazwa domeny w Samba';
$lang['administrators'] = 'Administratorzy';
@@ -569,6 +597,10 @@ $lang['print_ops'] = 'Operatorzy drukowania';
$lang['backup_ops'] = 'Operatorzy archiwizacji danych';
$lang['replicator'] = 'Replikator';
$lang['unable_smb_passwords'] = ' Nie mo<6D>na utworzy<7A> hase<73> Samba. Prosz<73> sprawdzi<7A> konfiguracj<63> w template_config.php';
$lang['err_smb_conf'] = 'B<><42>d: masz b<><62>d w konfiguracji samby';
$lang['err_smb_no_name_sid'] = 'B<><42>d: musisz wprowadzi<7A> nazw<7A> oraz sid dla Twojej domeny samby.';
$lang['err_smb_no_name'] = 'B<><42>d: brak nazwy dla domeny samby.';
$lang['err_smb_no_sid'] = 'B<><42>d: brak sid dla domeny samby';
// Samba Account Template
$lang['samba_account'] = 'Konto Samba';
@@ -580,6 +612,8 @@ $lang['t_hint_customize'] = 'Wskaz
$lang['t_name'] = 'Nazwa/Nazwisko';
$lang['t_first_name'] = 'Imi<6D>';
$lang['t_last_name'] = 'Nazwisko';
$lang['t_first'] = 'imi<6D>';
$lang['t_last'] = 'nazwisko';
$lang['t_common_name'] = 'Nazwa';
$lang['t_user_name'] = 'Nazwa u<>ytkownika';
$lang['t_password'] = 'Has<61>o';
@@ -614,4 +648,25 @@ $lang['t_err_cn_blank'] = 'Nie mo
$lang['t_confim_creation'] = 'Potwierd<72> utworzenie wpisu:';
$lang['t_create_address'] = 'Utw<74>rz adres';
// default template
$lang['t_check_pass'] = 'Sprawd<77> has<61>o';
// compare form
$lang['compare'] = 'Por<6F>wnaj';
$lang['comparing'] = 'Por<6F>wnuj<75> nast<73>puj<75>ce DN';
$lang['compare_dn'] = 'Por<6F>wnaj inny DN z';
$lang['with'] = 'z';
$lang['compf_source_dn'] = '<27>r<EFBFBD>d<EFBFBD>owa DN';
$lang['compf_dn_tooltip'] = 'Pr<50>wnaj t<> DN z inn<6E>';
$lang['switch_entry'] = 'Zamie<69> wpisy';
$lang['no_value'] = 'Brak warto<74>ci';
$lang['compare_with'] = 'Por<6F>wnaj z innym wpisem';
$lang['need_oclass'] = 'Musisz posiada<64> jedn<64> z nast<73>puj<75>cych klas obiekt<6B>w, aby doda<64> ten atrybut %s ';
// Time out page
$lang['session_timed_out_1'] = 'Twoja sesja wyga<67>nie po';
$lang['session_timed_out_2'] = 'min. nieaktywno<6E>ci. Zostaniesz automatycznie wylogowany/a.';
$lang['log_back_in'] = 'Aby si<73> zalogowa<77> ponownie kliknij w nast<73>puj<75>cy link:';
$lang['session_timed_out_tree'] = '(Sesja wygas<61>a. Automatycznie wylogowano)';
$lang['timeout_at'] = 'Brak aktywno<6E>ci wyloguje Ci<43> o %s';
?>

View File

@@ -1,8 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/auto.php,v 1.8 2004/12/09 14:02:37 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/auto.php,v 1.9 2005/02/06 00:21:31 wurley Exp $
// Language for auto-detect
// phpldapadmin/lang/auto.php in $Revision: 1.8 $
// phpldapadmin/lang/auto.php in $Revision: 1.9 $
$useLang="en"; // default use english encoding, a Option in Config would be nice
// keep the beginning and ending spaces, they are used for finding the best language
@@ -30,6 +30,8 @@ $langSupport=array(" ca "=>"ca" // catalan
," ru-"=>"ru" // ru- exits?
," sv "=>"sv" //swedish
," sv-"=>"sv" // swedisch to
," zh-cn"=>"zh-cn" // simplified chinese
," zh-tw"=>"zh-tw" // taiwan?
);// all supported languages in this array
// test

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/en.php,v 1.93 2005/01/07 04:06:27 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/en.php,v 1.107 2005/03/26 01:18:28 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@@ -31,7 +31,6 @@ $lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['show_attributes'] = 'Show Attributtes';
$lang['attributes'] = 'Attributes';
$lang['Search'] = 'Search';
$lang['predefined_search_str'] = 'Select a predefined search';
$lang['predefined_searches'] = 'Predefined Searches';
@@ -74,13 +73,13 @@ $lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'The base entry does not exist.';
$lang['base_entry_does_not_exist'] = 'This base entry does not exist.';
$lang['create_it'] = 'Create it?';
// Entry display
$lang['delete_this_entry'] = 'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Copy this entry';
$lang['copy_this_entry'] = 'Copy or move this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Export';
$lang['export_lcase'] = 'export';
@@ -118,6 +117,7 @@ $lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add new binary attribute';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['required_for'] = 'Required attribute for objectClass(es) %s';
$lang['required_by_entry'] = 'This attribute is required for the RDN.';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
@@ -127,13 +127,10 @@ $lang['really_delete_attribute'] = 'Really delete attribute';
$lang['add_new_value'] = 'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'The following objectClasses are supported by this LDAP server.';
$lang['the_following_attributes'] = 'The following attributeTypes are supported by this LDAP server.';
$lang['the_following_matching'] = 'The following matching rules are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'The following syntaxes are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_3']='phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_4']='Or lastly, your LDAP server doesnt provide this information.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute type';
@@ -233,19 +230,15 @@ $lang['not_enough_login_info'] = 'Not enough information to login to server. Ple
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['home'] = 'Home';
$lang['help'] = 'Help';
$lang['success'] = 'Success';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = 'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'No DN specified in query string!';
$lang['back_up_p'] = 'Back Up...';
$lang['no_entries'] = 'no entries';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='Please report this as a bug.';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='Yes';
$lang['no']='No';
@@ -254,13 +247,16 @@ $lang['delete']='Delete';
$lang['back']='Back';
$lang['object']='object';
$lang['delete_all']='Delete all';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'hint';
$lang['bug'] = 'bug';
$lang['warning'] = 'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceed &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin cannot safely encrypt & decrypt your sensitive information, because $blowfish_secret is not set in config.php. You need to edit config.php and set $blowfish_secret to some secret string now.';
$lang['jpeg_dir_not_writable'] = 'Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php';
$lang['jpeg_dir_not_writable_error'] = 'Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.';
$lang['jpeg_unable_toget'] = 'Could not fetch jpeg data from LDAP server for attribute %s.';
$lang['jpeg_delete'] = 'Delete photo';
// Add value form
$lang['add_new'] = 'Add new';
@@ -294,8 +290,8 @@ $lang['must_choose_template'] = 'You must choose a template';
$lang['invalid_template'] = '%s is an invalid template';
$lang['using_template'] = 'using template';
$lang['go_to_dn'] = 'Go to %s';
+$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
+$lang['structural'] = 'structural';
$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
$lang['structural'] = 'structural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
@@ -307,8 +303,9 @@ $lang['copyf_note'] = 'Hint: Copying between different servers only works if the
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Recursive copy';
$lang['filter'] = 'Filter';
$lang['search_filter'] = 'Search Filter';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['delete_after_copy'] = 'Delete after copy (move):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
@@ -356,10 +353,8 @@ $lang['scope_base'] = 'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Search for entries whose:';
$lang['equals'] = 'equals';
$lang['starts with'] = 'starts with';
$lang['contains'] = 'contains';
@@ -386,6 +381,7 @@ $lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
$lang['unable_create_samba_pass'] = 'Unable to create samba password. Please check your configuration in template_config.php';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
@@ -397,8 +393,6 @@ $lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'To donate funds to the phpLDAPadmin project, use one of the PayPal buttons below.';
$lang['donate_amount'] = 'Donate %s';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'View Dave\'s phpLDAPadmin wish list';
$lang['purge_cache'] = 'Purge caches';
$lang['no_cache_to_purge'] = 'No cache to purge.';
@@ -437,15 +431,15 @@ $lang['could_not_bind_anon'] = 'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Could not set cookie.';
$lang['ldap_said'] = 'LDAP said: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'browse';
$lang['delete_photo'] = 'Delete Photo';
$lang['install_not_support_blowfish'] = 'Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your PHP install does not support md5crypt encryption.';
$lang['install_not_support_ext_des'] = 'Your system crypt library does not support extended DES encryption.';
$lang['install_not_support_blowfish'] = 'Your system crypt library does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your system crypt library does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Error number: %s (%s)';
@@ -457,8 +451,10 @@ $lang['ferror_unrecognized_num'] = 'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
@@ -514,16 +510,14 @@ $lang['searching'] = 'Searching...';
$lang['size_limit_exceeded'] = 'Notice, search size limit exceeded.';
$lang['entry'] = 'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export for: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://www.phpldapadmin.com/ ) on %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['total_entries'] = 'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Include system attributes';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
$lang['could_not_find_user'] = 'Could not find a user "%s"';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'Login cancelled.';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'Could not logout.';
$lang['unknown_auth_type'] = 'Unknown auth_type: %s';
@@ -535,6 +529,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'User name';
$lang['password'] = 'Password';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.';
// Entry browser
$lang['entry_chooser_title'] = 'Entry Chooser';
@@ -565,7 +560,6 @@ $lang['invalid_rdn'] = 'Invalid RDN value';
$lang['could_not_rename'] = 'Could not rename the entry';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin does not yet support PHP 5. You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = 'Your configuration has an error. $search_attributes must have the same number of attributes as $search_attributes_display.';
// Password checker
@@ -577,7 +571,6 @@ $lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@@ -671,4 +664,22 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
// compare form
$lang['compare'] = 'Compare';
$lang['comparing'] = 'Comparing the following DNs';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = 'Source DN';
$lang['compf_dn_tooltip'] = 'Compare this DN with another';
$lang['switch_entry'] = 'Switch Entry';
$lang['no_value'] = 'No Value';
$lang['compare_with'] = 'Compare with another entry';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Your Session timed out after';
$lang['session_timed_out_2'] = 'min. of inactivity. You have been automatically logged out.';
$lang['log_back_in'] = 'To log back in please click on the following link:';
$lang['session_timed_out_tree'] = '(Session timed out. Automatically logged out.)';
$lang['timeout_at'] = 'Inactivity will log you off at %s';
?>

View File

@@ -1,28 +1,37 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/es.php,v 1.14 2004/06/07 13:01:29 uugdave Exp $
/*
* Spanish (es_ES) translation file for phpLDAPadmin
*
* Date: 02/05/2005
* Source: CVS snapshot of en.php as of 02/05/2005
* Translator: Miguelanxo Otero Salgueiro <miguelanxo@telefonica.net>
*/
// Search form
$lang['simple_search_form_str'] = 'Formulario de búsqueda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de búsqueda avanzada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objetos los cuales';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Alcance de la búsqueda';
$lang['search_ filter'] = 'Filtro de Búsqueda';
$lang['search_for_entries_whose'] = 'Buscar objetos que';
$lang['base_dn'] = 'DN base';
$lang['search_scope'] = 'Ámbito de búsqueda';
$lang['show_attributes'] = 'Mostrar atributos';
$lang['attributes'] = 'Atributos';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'comienza con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'termina con';
$lang['sounds_like'] = 'suena como';
$lang['predefined_search_str'] = 'Seleccionar una búsqueda predefinida';
$lang['predefined_searches'] = 'Búsquedas predefinidas';
$lang['no_predefined_queries'] = 'No hay ninguna búsqueda predefinida en config.php.';
$lang['export_results'] = 'exportar resultados';
$lang['unrecoginzed_search_result_format'] = 'Formato de resultado de búsqueda no reconocido: %s';
$lang['format'] = 'Formato';
$lang['list'] = 'lista';
$lang['table'] = 'tabla';
$lang['bad_search_display'] = 'Su config.php especifica un valor no válido para $default_search_display: %s. Por favor, arréglelo';
$lang['page_n'] = 'Página %d';
$lang['no_results'] = 'La búsqueda no ha encontrado resultados.';
// Tree browser
$lang['request_new_feature'] = 'Pedir funcionalidad';
$lang['see_open_requests'] = 'Ver las peticiones';
$lang['report_bug'] = 'Reportar un error';
$lang['see_open_bugs'] = 'Ver los errores';
$lang['request_new_feature'] = 'Solicitar una nueva funcionalidad';
$lang['report_bug'] = 'Informar de un error';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
@@ -30,313 +39,617 @@ $lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'salir';
$lang['create_new'] = 'Crear Nuevo Objeto';
$lang['view_schema_for'] = 'Ver esquema para';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos para';
$lang['create_new_entry_on'] = 'Crear nuevo objeto en';
$lang['view_server_info'] = 'Ver información del servidor';
$lang['import_from_ldif'] = 'Importar objetos de archivo LDIF';
$lang['logout_of_this_server'] = 'Salir de este servidor';
$lang['create_new'] = 'Crear nuevo objeto';
$lang['view_schema_for'] = 'Ver el esquema del';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos del';
$lang['create_new_entry_on'] = 'Crear un nuevo objeto en el';
$lang['new'] = 'nuevo';
$lang['view_server_info'] = 'Ver la información enviada por el servidor';
$lang['import_from_ldif'] = 'Importar desde un fichero LDIF';
$lang['logout_of_this_server'] = 'Desconectar del servidor';
$lang['logged_in_as'] = 'Conectado como: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raiz del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece ser que el servidor LDAP se ha configurado para no revelar su raiz.';
$lang['please_specify_in_config'] = 'Por favor especifícala en el archivo config.php';
$lang['create_new_entry_in'] = 'Crear un nuevo objeto en';
$lang['login_link'] = 'Autenticación...';
$lang['this_base_dn_is_not_valid'] = 'Esta DN base no es válida.';
$lang['this_base_dn_does_not_exist'] = 'Este objeto no existe.';
$lang['read_only'] = 'sólo lectura';
$lang['read_only_tooltip'] = 'Este atributo ha sido marcado como de sólo lectura por el administrador de phpLDAPadmin';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raíz de su árbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su raíz.';
$lang['please_specify_in_config'] = 'Por favór, especifíquela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificación';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '¿Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendrá que confirmar esta decision';
$lang['delete_this_entry_tooltip'] = 'Se le pedirá confirmación';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto para otra localización, DN nuevo, o para otro servidor.';
$lang['export_to_ldif'] = 'Exportar archivo LDIF';
$lang['export_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto';
$lang['export_subtree_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto i todos sus objetos hijos';
$lang['export_subtree_to_ldif'] = 'Exportar archivo LDIF de sub-estructura';
$lang['export_mac'] = 'Avance de línea de Macintosh';
$lang['export_win'] = 'Avance de línea de Windows';
$lang['export_unix'] = 'Avance de línea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto en otro sitio: un nuevo DN u otro servidor';
$lang['export'] = 'Exportar';
$lang['export_lcase'] = 'exportar';
$lang['export_tooltip'] = 'Exportar este objeto';
$lang['export_subtree_tooltip'] = 'Exportar este objeto y todos sus hijos';
$lang['export_subtree'] = 'Exportar subárbol';
$lang['create_a_child_entry'] = 'Crear un objeto hijo';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$lang['add'] = 'Añadir';
$lang['view'] = 'Ver';
$lang['add_new_attribute'] = 'Agregar nuevo atributo';
$lang['add_new_attribute_tooltip'] = 'Agregar nuevo atributo/valor a este objeto';
$lang['internal_attributes'] = 'Atributos Internos';
$lang['hide_internal_attrs'] = 'ocultar los atributos internos';
$lang['show_internal_attrs'] = 'mostrar els atributos internos';
$lang['internal_attrs_tooltip'] = 'Los atributos fijos automaticamente para el servidor';
$lang['entry_attributes'] = 'Atributos del objeto';
$lang['attr_name_tooltip'] = 'Haz click para ver la definicion del esquema para tipos de atributo \'%s\'';
$lang['click_to_display'] = 'Haz click para mostrar';
$lang['hidden'] = 'ocultado';
$lang['view_one_child'] = 'Ver 1 hijo';
$lang['view_children'] = 'Ver %s hijos';
$lang['add_new_attribute'] = 'Añadir atributo';
$lang['add_new_objectclass'] = 'Añadir ObjectClass';
$lang['hide_internal_attrs'] = 'Ocultar atributos internos';
$lang['show_internal_attrs'] = 'Mostrar atributos internos';
$lang['attr_name_tooltip'] = 'Haga click para ver el esquema del atributo de tipo \'%s\'';
$lang['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los cambios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$lang['no_internal_attributes'] = 'No hay atributos internos';
$lang['no_attributes'] = 'Este objeto no tiene atributos';
$lang['save_changes'] = 'Guardar cambios';
$lang['add_value'] = 'añadir valor';
$lang['add_value_tooltip'] = 'Añadir un valor al atributo \'%s\'';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Pista: <b>Para borrar un atributo</b>, vacía el formulario de texto y haz click en Guardar.';
$lang['attr_schema_hint'] = 'Pista: <b>Para ver el esquema de un atributo</b>, haz click en el nombre del atributo.';
$lang['attrs_modified'] = 'Algunos atributos (%s) fueron modificados y estan remarcados más abajo.';
$lang['attr_modified'] = 'Un atributo (%s) fué modificado y está remarcado más abajo.';
$lang['viewing_read_only'] = 'Mostrando el objeto en modo de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN de este objeto';
$lang['no_new_attrs_available'] = 'No hay atributos nuevos disponibles para este objeto';
$lang['delete_hint'] = 'Nota: para borrar un atributo, borre su atributo y haga click en guardar.';
$lang['attr_schema_hint'] = 'Nota: Para ver el esquema de un atributo, haga click en su nombre.';
$lang['attrs_modified'] = 'Se han modificado algunos atributos (%s) que se encuentran destacados mas abajo.';
$lang['attr_modified'] = 'Se ha modificado algún atributo (%s) que se encuentra destacado más abajo.';
$lang['viewing_read_only'] = 'Nota: Modo de sólo lectura.';
$lang['no_new_attrs_available'] = 'no hay nuevos atributos en este objeto';
$lang['no_new_binary_attrs_available'] = 'no hay nuevos atributos binarios en este objeto';
$lang['binary_value'] = 'Valor binario';
$lang['add_new_binary_attr'] = 'Agregar valor binario';
$lang['add_new_binary_attr_tooltip'] = 'Agregar atributo/valor binario de un archivo';
$lang['alias_for'] = '%s es sinónimo para %s';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['add_new_binary_attr'] = 'Añadir atributo binario';
$lang['alias_for'] = 'Nota: \'%s\' es un alias de \'%s\'';
$lang['required_for'] = 'Atributo requerido para la(s) clase(s) de objeto %s';
$lang['download_value'] = 'descargar valor';
$lang['delete_attribute'] = 'borrar atributo';
$lang['true'] = 'verdadero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
$lang['none_remove_value'] = 'ninguno, borrar valor';
$lang['really_delete_attribute'] = '¿Borrar realmente el atributo';
$lang['add_new_value'] = 'Añadir valor';
// Schema browser
$lang['the_following_objectclasses'] = 'Los siguientes <b>ObjectClass</b> están presentes en este servidor LDAP.';
$lang['the_following_attributes'] = 'Los siguientes <b>attributeTypes</b> están presentes en este servidor LDAP.';
$lang['the_following_matching'] = 'Los siguientes <b>matching rules</b> están presentes en este servidor LDAP.';
$lang['the_following_syntaxes'] = 'Los siguientes <b>sintaxis</b> están presentes en este servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atributo';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributos Requeridos (MUST)';
$lang['optional_attrs'] = 'Atributos Opcionales (MAY)';
$lang['the_following_objectclasses'] = 'El servidor LDAP soporta las siguientes clases de objeto:';
$lang['the_following_attributes'] = 'El servidor LDAP soporta los siguientes tipos de atributo:';
$lang['the_following_matching'] = 'El servidor LDAP soporta las siguientes reglas de coincidencia:';
$lang['the_following_syntaxes'] = 'El servidor LDAP soporta las siguientes sintaxis:';
$lang['schema_retrieve_error_1']='El servidor LDAP no soporta el protocolo LDAP en su totalidad.';
$lang['schema_retrieve_error_2']='Su versión de PHP no realiza la petición correctamente.';
$lang['schema_retrieve_error_3']='O el phpLDAPadmin no sabe como obtener el esquema del servidor.';
$lang['jump_to_objectclass'] = 'Ir a la clase de objeto';
$lang['view_schema_for_oclass'] = 'Ver la descripción del esquema para esta clase de objeto.';
$lang['jump_to_attr'] = 'Ir al tipo de atributo';
$lang['jump_to_matching_rule'] = 'Ir a la regla de coincidencia';
$lang['schema_for_server'] = 'Esquema del servidor';
$lang['required_attrs'] = 'Atributos requeridos';
$lang['required'] = 'requerido';
$lang['optional_attrs'] = 'Atributos opcionales';
$lang['optional_binary_attrs'] = 'Atributos binarios opcionales';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Descripción';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Esta ObjectClass es <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a esta ObjectClass';
$lang['matching_rule_oid'] = 'OID de Matching Rule';
$lang['syntax_oid'] = 'OID de Sintaxi';
$lang['not_applicable'] = 'no es aplicable';
$lang['not_specified'] = 'no especificada';
$lang['no_description']='sin descripción';
$lang['name'] = 'Nombre';
$lang['equality']='Igualdad';
$lang['is_obsolete'] = 'Esta clase de objeto es obsoleta.';
$lang['inherits'] = 'Hereda de';
$lang['inherited_from'] = 'Heredado de';
$lang['parent_to'] = 'Padre de';
$lang['jump_to_this_oclass'] = 'Ir a la definición de esta clase de objeto';
$lang['matching_rule_oid'] = 'OID de la regla de coincidencia';
$lang['syntax_oid'] = 'OID de sintaxis';
$lang['not_applicable'] = 'no aplicable';
$lang['not_specified'] = 'no especificado';
$lang['character'] = 'carácter';
$lang['characters'] = 'caracteres';
$lang['used_by_objectclasses'] = 'Usado por la clase de objeto';
$lang['used_by_attributes'] = 'Usado por los atributos';
$lang['maximum_length'] = 'Longitud máxima';
$lang['attribute_types']='Tipos de atributo';
$lang['syntaxes'] = 'Sintaxis';
$lang['matchingrules'] = 'Reglas de coincidencia';
$lang['oid'] = 'OID';
$lang['obsolete'] = 'Obsoleto';
$lang['ordering'] = 'Ordenación';
$lang['substring_rule'] = 'Regla de subcadena';
$lang['single_valued'] = 'Univaludado';
$lang['collective'] = 'Colectivo';
$lang['user_modification'] = 'Modificado por el usuario';
$lang['usage'] = 'Uso';
$lang['could_not_retrieve_schema_from'] = 'No se ha podido obtener el esquema de';
$lang['type'] = 'Tipo';
$lang['no_such_schema_item'] = 'No hay tal ítem en el esquema: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' borrada correctamente.';
$lang['you_must_specify_a_dn'] = 'Tienes que especificar un DN';
$lang['could_not_delete_entry'] = 'No he podido borrar la entrada: %s';
$lang['entry_deleted_successfully'] = 'Objeto %s borrado correctamente.';
$lang['you_must_specify_a_dn'] = 'Debe especificar un DN';
$lang['could_not_delete_entry'] = 'No se ha podido borrar el objeto %s';
$lang['no_such_entry'] = 'No hay tal objeto %s';
$lang['delete_dn'] = 'Borrar %s';
$lang['permanently_delete_children'] = '¿Borrar también todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la raíz de un subárbol que contiene %s objetos.';
$lang['view_entries'] = 'ver objetos';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin puede borrar recursivamente este objeto y sus %s hijos. Vea más abajo la lista de objetos que se borrarán ahora. ¿Todavía quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operación NO puede deshacerse. Tome en consideración alias, referencias y otras cosas que puedan causar problemas.';
$lang['delete_all_x_objects'] = 'Borrar los %s objetos';
$lang['recursive_delete_progress'] = 'Progreso de la borración recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su subárbol borrado correctamente.';
$lang['failed_to_delete_entry'] = 'Error al borrar el objeto %s';
$lang['list_of_entries_to_be_deleted'] = 'Lista de objetos a borrar:';
$lang['sure_permanent_delete_object']='¿Está seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" está marcado como de sólo lectura en la configuración de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ningún nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ningún DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['failed_to_add_attr'] = 'Error al añadir atributo.';
$lang['file_empty'] = 'El fichero que ha escogido no existe o está vacío. Por favor vuelva atrás e inténtelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que está enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuración del PHP ha desactivado la recepción de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que está enviando es demasiado grande. Por favor revise el ajuste "upload_max_size" en php.ini.';
$lang['uploaded_file_partial'] = 'El fichero que ha seleccionado sólo se ha recibido parcialmente debido a un error de red.';
$lang['max_file_size'] = 'Tamaño máximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '¡Modificación realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contraseña, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acción exige que se agreguen';
$lang['requires_to_add'] = 'Esta acción requiere que añada';
$lang['new_attributes'] = 'nuevos atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para agregar esta ObjectClass a este objeto, se tiene que especificar';
$lang['that_this_oclass_requires'] = 'que este ObjectClass requiere. Se puede hacer con este formulario.';
$lang['add_oclass_and_attrs'] = 'Agregar ObjectClass y Atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para poder añadir esta clase a este objeto, debe especificar';
$lang['that_this_oclass_requires'] = 'que esta clase requiere. Puede hacerlo en este formulario.';
$lang['add_oclass_and_attrs'] = 'Añadir clase de objeto y atributos';
$lang['objectclasses'] = 'Clases de objeto';
// General
$lang['chooser_link_tooltip'] = 'Haz click para seleccionar un objeto graficamente';
$lang['no_updates_in_read_only_mode'] = 'No se puede modificar el objeto si el servidor está operando en modo inalterable.';
$lang['bad_server_id'] = 'El identificador de servidor está mal';
$lang['not_enough_login_info'] = 'No tengo suficiente información para conectar al servidor. Por favor configura correctamente el archivo config.php';
$lang['could_not_connect'] = 'No se ha podido conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido ejecutar la operación del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'El identificador del servidor está mal: ';
$lang['success'] = 'Exito';
$lang['chooser_link_tooltip'] = 'Haga click en el diálogo emergente para seleccionar un DN de forma gráfica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor está funcionando en modo de sólo lectura';
$lang['bad_server_id'] = 'Identificador de servidor no válido';
$lang['not_enough_login_info'] = 'No hay información suficiente para conectar con el servidor. Por favor, revise su configuración.';
$lang['could_not_connect'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'No se ha podido conectar con "%s" en el puerto "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido realizar la operación "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no válido: ';
$lang['success'] = 'Éxito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = 'Éxito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando a: ';
$lang['missing_server_id_in_query_string'] = 'No está presente el identificador del servidor en la URL';
$lang['missing_dn_in_query_string'] = 'No está presente el DN en la URL';
$lang['back_up_p'] = 'Volver a...';
$lang['no_entries'] = 'no hay entradas';
$lang['not_logged_in'] = 'No estás autenticado';
$lang['could_not_det_base_dn'] = 'No he podido determinar la base DN';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '¡No se ha especificado ningún servidor en la petición!';
$lang['missing_dn_in_query_string'] = '¡No se ha especificado ningún DN en la petición!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No está conectado';
$lang['could_not_det_base_dn'] = 'No se puede determinar el DN base';
$lang['please_report_this_as_a_bug']='Por favor informe de este error.';
$lang['reasons_for_error']='Esto puede suceder por varias razones, las más probables son:';
$lang['yes']='Sí';
$lang['no']='No';
$lang['go']='Ir';
$lang['delete']='Borrar';
$lang['back']='Atrás';
$lang['object']='objeto';
$lang['delete_all']='Borrar todo';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'nota';
$lang['bug'] = 'error';
$lang['warning'] = 'aviso';
$lang['light'] = 'bombilla'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceder &gt;&gt;';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['add_new'] = 'Añadir';
$lang['value_to'] = 'valor de';
$lang['distinguished_name'] = 'Nombre distinguido';
$lang['current_list_of'] = 'La lista actual de';
$lang['values_for_attribute'] = 'valores para el atributo';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurado una regla \'EQUALITY\' en el servidor LDAP, recibis un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveer el valor para agregar: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que se requiera agregar nuevos atributos para satisfacer los requisitos de esta ObjectClass';
$lang['syntax'] = 'Sintaxi';
$lang['current_list_of'] = 'Lista actual de';
$lang['values_for_attribute'] = 'valores del atributo';
$lang['inappropriate_matching_note'] = 'Nota: Si no ha creado una regla de igualdad en el servidor LDAP para este atributo, obtendrá un error de coincidencia inapropiada ("inappropriate matching").';
$lang['enter_value_to_add'] = 'Introduzca el valor a añadir:';
$lang['new_required_attrs_note'] = 'Nota: puede que tenga que introducir nuevos atributos que esta clase de objeto requiera';
$lang['syntax'] = 'Sintaxis';
//copy.php
$lang['copy_server_read_only'] = 'No se pueden realizar las modificaciones si el servidor está operando en modo inalterable';
$lang['copy_dest_dn_blank'] = 'No se ha rellenado el formulario de DN.';
$lang['copy_dest_already_exists'] = 'La entrada de destino (%s) encara existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor de destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN de la fuente y el DN de destino son los mismos.';
$lang['copy_server_read_only'] = 'No puede realizar modificaciones cuando el servidor está en modo de sólo lectura';
$lang['copy_dest_dn_blank'] = 'Ha dejado el campo DN en blanco.';
$lang['copy_dest_already_exists'] = 'El objeto destino (%s) ya existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN origen y destino son iguales.';
$lang['copy_copying'] = 'Copiando ';
$lang['copy_recursive_copy_progress'] = 'El progreso de la copia recurrente';
$lang['copy_building_snapshot'] = 'Construyendo la \'foto\' del arbol para copiar... ';
$lang['copy_successful_like_to'] = 'Exito! Deseas ';
$lang['copy_view_new_entry'] = 'Ver el nuevo objeto?';
$lang['copy_failed'] = 'Error al copiar DN: ';
$lang['copy_recursive_copy_progress'] = 'Progreso de la copia recursiva';
$lang['copy_building_snapshot'] = 'Creando imagen del árbol a copiar... ';
$lang['copy_successful_like_to'] = '¡Copia correcta! ¿Le gustaría ';
$lang['copy_view_new_entry'] = 'ver el nuevo objeto';
$lang['copy_failed'] = 'Error al copiar el DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
$lang['missing_template_file'] = 'Aviso: falta el fichero de plantilla, ';
$lang['using_default'] = 'usando la plantilla por defecto.';
$lang['template'] = 'Plantilla';
$lang['must_choose_template'] = 'Debes escoger una plantilla';
$lang['invalid_template'] = '%s no es una plantilla válida';
$lang['using_template'] = 'usando plantilla';
$lang['go_to_dn'] = 'Ir a %s';
$lang['structural_object_class_cannot_remove'] = 'Esta es una clase de objeto estructural y no se puede eliminar.';
$lang['structural'] = 'estructural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objeto nuevo';
$lang['copyf_dest_dn'] = 'DN de destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN entero de la nueva entrada a ser creada quan se copie la entrada fuente';
$lang['copyf_dest_server'] = 'Servidor de destino';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidores funciona solamente si no hay violaciones del esquema.';
$lang['copyf_recursive_copy'] = 'Borrar todos los hijos recurentemente también?';
$lang['copyf_dest_dn'] = 'DN destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN completo del objeto a crear';
$lang['copyf_dest_server'] = 'Servidor destino';
$lang['copyf_note'] = 'Nota: Sólo se puede copiar entre servidores diferentes cuando no hay violaciones de esquema';
$lang['copyf_recursive_copy'] = 'También copiar recursivamente todos los hijos de este objeto.';
$lang['recursive_copy'] = 'Copia recursiva';
$lang['filter'] = 'Filtro';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['filter_tooltip'] = 'Cuando se realice una copia recursiva, copiar sólo los objetos que superen el filtrado';
//create.php
$lang['create_required_attribute'] = 'Te has dejado el valor en blanco del atributo requerido <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigiendo';
$lang['create_here'] = 'aquí';
$lang['create_could_not_add'] = 'No he podido agregar el objeto al servidor LDAP.';
$lang['create_required_attribute'] = 'Ha dejado el valor del atributo requerido (%s) en blanco.';
$lang['redirecting'] = 'Redirigiendo...';
$lang['here'] = 'aquí';
$lang['create_could_not_add'] = 'No se ha podido añadir el objeto al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objeto';
$lang['createf_choose_temp'] = 'Escoge una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla para al proceso de creación';
$lang['createf_proceed'] = 'Proceder';
$lang['createf_create_object'] = 'Crear objeto';
$lang['createf_choose_temp'] = 'Escoja una plantilla';
$lang['createf_select_temp'] = 'Seleccione una plantilla para el proceso de creación';
$lang['save_as_file'] = 'Guardar como fichero';
$lang['rdn_field_blank'] = 'Ha dejado el campo RDN en blanco.';
$lang['container_does_not_exist'] = 'El contenedor que ha especificado (%s) no existe. Por favor inténtelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atrás y hágalo ahora.';
$lang['hint_structural_oclass'] = 'Nota: Debe escoger al menos una clase de objeto estructural';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables del POST.';
$lang['ctemplate_config_handler'] = 'Tu configuración especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'para esta plantilla. Pero este manejador no existe en el directorio \'templates/creation\'.';
$lang['ctemplate_on_server'] = 'En el servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables POST.';
$lang['template_not_readable'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no se puede leer debido a que sus permisos son demasiado restrictivos.';
$lang['template_does_not_exist'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no existe en el directorio templates/creation.';
$lang['create_step1'] = 'Paso 1 de 2: Nombre y clase(s) de objeto';
$lang['create_step2'] = 'Paso 2 de 2: Especifique attributos y valores';
$lang['relative_distinguished_name'] = 'Nombre Distinguido Relativo (RDN)';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(ejemplo: cn=nuevaPersona)';
$lang['container'] = 'Contenedor';
// search.php
$lang['you_have_not_logged_into_server'] = 'Aún no te has autenticado en ell servidor seleccionado, no puedes hacer ninguna búsqueda.';
$lang['click_to_go_to_login_form'] = 'Hac click aquí para ir al formulario de autenticación';
$lang['unrecognized_criteria_option'] = 'Opcion de criterio desconocida: ';
$lang['if_you_want_to_add_criteria'] = 'Si quieres agregar tu propio criterio en la lista. Estate seguro de editar search.php para manejarlo. Saliendo.';
$lang['entries_found'] = 'Entrades encontradas: ';
$lang['filter_performed'] = 'Filtro realitzado: ';
$lang['search_duration'] = 'Búsqueda realitzada para phpLDAPadmin a';
$lang['you_have_not_logged_into_server'] = 'Todavía no ha conectado con el servidor, así que no puede realizar búsquedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aquí para ir al formulario de conexión';
$lang['unrecognized_criteria_option'] = 'Criterio no reconocido: ';
$lang['if_you_want_to_add_criteria'] = 'Si quiere puede añadir su propios criterios a la lista. Asegúrese de editar search.php para manejarlos. Saliendo...';
$lang['entries_found'] = 'Objetos encontrados: ';
$lang['filter_performed'] = 'Filtrado realizado: ';
$lang['search_duration'] = 'Búsqueda realizada por phpLDAPadmin en';
$lang['seconds'] = 'segundos';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'El alcance en el que buscar';
$lang['scope_sub'] = 'Sub (todo el sub-arbol)';
$lang['scope_one'] = 'Uno (un nivel por debajo de la base)';
$lang['scope_base'] = 'Base (solo base dn)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda estándar de LDAP. Ejemplo: (&(sn=Smith)(givenname=David))';
$lang['scope_in_which_to_search'] = 'Ámbito de búsqueda';
$lang['scope_sub'] = 'Sub (subárbol completo)';
$lang['scope_one'] = 'One (un nivel bajo la base)';
$lang['scope_base'] = 'Base (sólo la base)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda LDAP estándar. Ejemplo: (&(sn=Picapiedra)(givenname=Pedro))';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['list_of_attrs_to_display_in_results'] = 'Una lista de atributos para mostrar los resultados (separados por comas)';
$lang['list_of_attrs_to_display_in_results'] = 'Lista de atributos para mostrar en los resultados (separados por comas)';
$lang['show_attributes'] = 'Mostrar atributos';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entradas las cuales:';
$lang['equals'] = 'sea igual';
$lang['starts with'] = 'comience con';
$lang['search_for_entries_whose'] = 'Buscar entradas en las que';
$lang['equals'] = 'sea igual a';
$lang['starts with'] = 'comience por';
$lang['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['ends with'] = 'acabe en';
$lang['sounds like'] = 'suene como';
$lang['predefined_search_str'] = 'o seleccione uno de esta lista';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido sacar información LDAP del servidor';
$lang['server_info_for'] = 'Información del servidor para: ';
$lang['server_reports_following'] = 'El servidor muestra la siguiente información sobre el mismo';
$lang['nothing_to_report'] = 'Este servidor no tiene nada a mostrar.';
$lang['could_not_fetch_server_info'] = 'No se ha podido obtener ninguna información del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versión de PHP o quizás su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Información sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP envía la siguiente información:';
$lang['nothing_to_report'] = 'Este servidor no tiene nada sobre lo que informar.';
//update.php
$lang['update_array_malformed'] = 'el update_array está mal formado. Esto podría ser un error del phpLDAPadmin. Por favor reportalo.';
$lang['could_not_perform_ldap_modify'] = 'No he podido ejecutar la operación ldap_modify.';
$lang['update_array_malformed'] = 'El array update_array no está bien formado. Esto puede indicar un error de phpLDAPadmin. Por favor, informe de ello.';
$lang['could_not_perform_ldap_modify'] = 'No se ha podido realizar la operación "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?';
$lang['do_you_want_to_make_these_changes'] = '¿Quiere realizar estos cambios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['old_value'] = 'Valor anterior';
$lang['new_value'] = 'Nuevo valor';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ningún cambio';
$lang['you_made_no_changes'] = 'No ha realizado cambios';
$lang['go_back'] = 'Volver atrás';
// welcome.php
$lang['welcome_note'] = 'Usa el menú de la izquierda para navegar';
$lang['credits'] = "Créditos";
$lang['changelog'] = "Histórico de cambios";
$lang['documentation'] = "Documentación";
$lang['welcome_note'] = 'Use el menú de la izquierda para navegar';
$lang['credits'] = 'Creditos';
$lang['changelog'] = 'Lista de cambios';
$lang['donate'] = 'Donar';
$lang['pla_logo'] = 'logotipo de phpLDAPadmin';
// Donate.php
$lang['donation_instructions'] = 'Para donar fondos al proyecto phpLDAPadmin, use uno de los botones de abajo.';
$lang['donate_amount'] = 'Donar %s';
$lang['purge_cache'] = 'Borrar cachés';
$lang['no_cache_to_purge'] = 'No hay que borrar ningún caché.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de caché.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el caché de phpLDAPadmin, incluyendo los esquemas del servidor.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
$lang['unsafe_file_name'] = 'Nombre de fichero no seguro: ';
$lang['no_such_file'] = 'No hay tal fichero: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para <b>%s</b> en tu configuración,
pero no has especificado el auto_uid_number_mechanism. Por favor soluciona
este problema.';
$lang['uidpool_not_set'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>uidpool</tt>
en tu configuración para el servidor <b>%s</b>, pero no has especificado el
audo_uid_number_uid_pool_dn. Por favor especificalo antes de proceder.';
$lang['uidpool_not_exist'] = 'Parece ser que el uidPool que has especificado en tu configuración (<tt>%s</tt>)
$lang['auto_update_not_setup'] = 'Ha activado "auto_uid_numbers" para <b>%s</b> en su configuración,
pero no ha especificado el mecanismo "auto_uid_number_mechanism". Por favor, corrija este problema';
$lang['uidpool_not_set'] = 'Ha especificado el mecanismo "auto_uid_number_mechanism" como "uidpool"
en su configuración para el servidor <b>%s</b>, pero no ha especificado
"audo_uid_number_uid_pool_dn". Por favor, verifiquelo antes de continuar.';
$lang['uidpool_not_exist'] = 'Parece ser que el "uidPool" que ha especificado en su configuración ("%s")
no existe.';
$lang['specified_uidpool'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>search</tt> en tu
configuración para el servidor <b>%s</b>, pero no has especificado el
<tt>auto_uid_number_search_base</tt>. Por favor especificalo antes de proceder.';
$lang['auto_uid_invalid_value'] = 'Has especificado un valor no válido para el auto_uid_number_mechanism (<tt>%s</tt>)
en tu configuración. Solo <tt>uidpool</tt> y <tt>search</tt> son válidos.
Por favor soluciona este problema.';
$lang['error_auth_type_config'] = 'Error: Tienes un error en tu archivo de configuración. Los dos únicos valores aceptados para
\'auth_type\' en la sección $servers son \'config\' y \'form\'. Tu has puesto \'%s\',
el cual no está aceptado. ';
$lang['php_install_not_supports_tls'] = 'Tu instalación de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he podido iniciar el TLS.<br />Revisa tu configuración del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tienes un error en el archivo de configuración. auth_type de %s no es válido.';
$lang['ldap_said'] = '<b>LDAP dijo</b>: %s<br /><br />';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuración del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especifíquelo antes de continuar.';
$lang['auto_uid_invalid_credential'] = 'Imposible conectar con <b>%s</b> con sus credenciales "auto_uid". Por favor, verifique su fichero de configuración.';
$lang['bad_auto_uid_search_base'] = 'Su configuración de phpLDAPadmin especifica "auto_uid_search_base" como no válida para el servidor %s';
$lang['auto_uid_invalid_value'] = 'Ha especificado un valor no válido para el mecanismo "auto_uid_number_mechanism" ("%s")
en su configuración. Sólo son válidos "uidpool" y "search". Por favor, corrija este problema.';
$lang['error_auth_type_config'] = 'Error: Tiene un error en su fichero de configurción. Los tres únicos valores para "auth_type"
en la sección $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no está permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuración.';
$lang['unique_attr_failed'] = 'Su intento de añadir <b>%s</b> (<i>%s</i>) a <br><b>%s</b><br> NO se ha permitido. Tal atributo/valor pertenece a otro objeto.<p>Probablemente desee <a href=\'%s\'>buscar</a> tal objeto.';
$lang['php_install_not_supports_tls'] = 'Su instalación de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuración LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma anónima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexión anónima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contraseña incorrectos. Por favor, inténtelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aquí si no sucede nada.';
$lang['successfully_logged_in_to_server'] = 'Ha conectado con el servidor <b>%s</b>.';
$lang['could_not_set_cookie'] = 'No se ha podido guardar la cookie.';
$lang['ldap_said'] = 'LDAP ha dicho: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['fbrowse'] = 'seleccionar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Tu instalación de PHP no soporta los tipos de encriptación blowfish.';
$lang['install_no_mash'] = 'Tu instalación de PHP no tiene la funcion mhash(). No puedo hacer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contiene errores<br />';
$lang['ferror_number'] = '<b>Error número</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripción</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error número</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripción</b>: (no hay descripción)<br />';
$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si así es, por favor <a href=\'%s\'>dínoslo</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error desconocido: ';
$lang['install_not_support_blowfish'] = 'Su instalación de PHP no soporta encriptación blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalación de PHP no soporta encriptación md5crypt.';
$lang['install_no_mash'] = 'Su instalación de PHP no posee la función mhash(). No se pueden realizar hashes SHA.';
$lang['jpeg_contains_errors'] = 'La foto jpegPhoto contiene errores<br />';
$lang['ferror_number'] = 'Error número: %s (%s)';
$lang['ferror_discription'] = 'Descripción: %s <br /><br />';
$lang['ferror_number_short'] = 'Error número: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripción: (no existe descripción disponible)<br />';
$lang['ferror_submit_bug'] = '¿Es éste un error de phpLDAPadmin? Si es así, por favor <a href=\'%s\'>informe sobre ello</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error no reconocido: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has encontrado un error menor del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</td>
<b>¡Ha encontrado un error no fatal en phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichero:</td>
<td><b>%s</b> línea <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versiones:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Envía este error haciendo click aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el phpLDAPadmin.<br /><br />
</td></tr><tr><td>Servidor web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Por favor, informe de este error pulsando aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '¡Felicidades! Ha encontrado un error en phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivel:</td><td><b>%s</b></td></tr>
<tr><td>Archivo:</td><td><b>%s</b></td></tr>
<tr><td>Fichero:</td><td><b>%s</b></td></tr>
<tr><td>Línea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versión PLA:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Verisón PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versión PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor Web:</td><td><b>%s</b></td></tr>
<tr><td>Servidor web:</td><td><b>%s</b></td></tr>
</table>
<br />
Por favor envía este error haciendo click abajo!';
Por favor, informe sobre este error haciendo click más abajo!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar archivo LDIF';
$lang['select_ldif_file'] = 'Selecciona un archivo LDIF:';
$lang['select_ldif_file_proceed'] = 'Proceder &gt;&gt;';
$lang['import_ldif_file_title'] = 'Importar fichero LDIF';
$lang['select_ldif_file'] = 'Seleccione un fichero LDIF:';
$lang['dont_stop_on_errors'] = 'Ignorar errores';
//ldif_import
$lang['add_action'] = 'Añadiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['warning_no_ldif_version_found'] = 'No se ha encontrado versión. Asumiendo 1.';
$lang['valid_dn_line_required'] = 'Se requiere una línea válida.';
$lang['missing_uploaded_file'] = 'Falta el fichero enviado.';
$lang['no_ldif_file_specified.'] = 'No se ha especificado un fichero LDIF. Por favor, inténtelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado está vacío.';
$lang['empty'] = 'vacío';
$lang['file'] = 'Fichero';
$lang['number_bytes'] = '%s bytes';
$lang['failed'] = 'fallado';
$lang['ldif_parse_error'] = 'Error de parseado LDIF';
$lang['ldif_could_not_add_object'] = 'No he podido añadir el objeto:';
$lang['ldif_could_not_rename_object'] = 'No he podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No he podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No he podido modificar el objeto:';
$lang['ldif_line_number'] = 'Linea Número:';
$lang['ldif_line'] = 'Linea:';
$lang['failed'] = 'Error';
$lang['ldif_parse_error'] = 'Error al parsear LDIF';
$lang['ldif_could_not_add_object'] = 'No se ha podido añadir objeto:';
$lang['ldif_could_not_rename_object'] = 'No se ha podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No se ha podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No se ha podido modificar el objeto:';
$lang['ldif_line_number'] = 'Número de línea:';
$lang['ldif_line'] = 'Línea:';
// Exports
$lang['export_format'] = 'Formato de exportación';
$lang['line_ends'] = 'Fin de línea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportación.';
$lang['invalid_export_format'] = 'Formato de exportación no válido';
$lang['no_exporter_found'] = 'No se ha encontrado ningún exportador válido.';
$lang['error_performing_search'] = 'Se ha encontrado un error al realizar la búsqueda.';
$lang['showing_results_x_through_y'] = 'Mostrando los resultados de %s a %s.';
$lang['searching'] = 'Buscando...';
$lang['size_limit_exceeded'] = 'Nota: se ha excedido el tiempo de búsqueda.';
$lang['entry'] = 'Objeto';
$lang['ldif_export_for_dn'] = 'Exportación LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportación DSLM de: %s';
$lang['include_system_attrs'] = 'Incluir atributos de sistema';
$lang['csv_spreadsheet'] = 'CSV (Hoja de cálculo)';
// logins
$lang['could_not_find_user'] = 'No se ha podido encontrar el usuario "%s"';
$lang['password_blank'] = 'Ha dejado la contraseña en blanco.';
$lang['login_cancelled'] = 'Conexión cancelada.';
$lang['no_one_logged_in'] = 'No hay nadie conectado con el servidor.';
$lang['could_not_logout'] = 'No se ha podido desconectar.';
$lang['unknown_auth_type'] = 'Tipo de autentificación "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificación del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexión no está encriptada.';
$lang['not_using_https'] = 'No está usando \'https\'. El navegador web enviará su información sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contraseña';
$lang['authenticate'] = 'Entrar';
// Entry browser
$lang['entry_chooser_title'] = 'Selector de objetos';
// Index page
$lang['need_to_configure'] = 'Debe configurar phpLDAPadmin, editando el fichero \'config.php\'. Se proporciona un fichero de configuración de ejemplo en \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'No se permiten borrados en modo de sólo lectura.';
$lang['error_calling_mass_delete'] = 'Error al llamar a "mass_delete.php". Falta la variable POST "mass_delete".';
$lang['mass_delete_not_array'] = 'La variable POST "mass_delete" no es un array.';
$lang['mass_delete_not_enabled'] = 'No está activado el borrado masivo. Por favor, actívelo en config.php antes de continuar.';
$lang['search_attrs_wrong_count'] = 'Su config.php tiene un error. El número de atributos en $search_attributes y $search_attributes_display es diferente';
$lang['mass_deleting'] = 'Efectuando borrado masivo';
$lang['mass_delete_progress'] = 'Borrado en progreso en el servidor "%s"';
$lang['malformed_mass_delete_array'] = 'Array de borrado masivo mal formado.';
$lang['no_entries_to_delete'] = 'No ha seleccionado objetos para borrar.';
$lang['deleting_dn'] = 'Borrando %s';
$lang['total_entries_failed'] = 'No han podido borrarse %s de %s objetos.';
$lang['all_entries_successful'] = 'Todos los objetos han sido borrados.';
$lang['confirm_mass_delete'] = 'Confirmar borrado masivo de %s objetos en el servidor %s';
$lang['yes_delete'] = '¡Sí, borrar!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'No puede renombrar un objeto que tenga hijos';
$lang['no_rdn_change'] = 'No ha cambiado el RDN';
$lang['invalid_rdn'] = 'Valor RDN no válido';
$lang['could_not_rename'] = 'No se ha podido renombrar el objeto';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin no soporta todavía PHP 5. Si continúa encontrará probablemente extraños errores.';
$lang['mismatched_search_attr_config'] = 'Su configuración tiene un error. $search_attributes debe tener el mismo número de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '¡Las contraseñas coinciden!';
$lang['passwords_do_not_match'] = '¡Las contraseñas no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobación de contraseñas';
$lang['compare'] = 'Comparar';
$lang['to'] = 'con';
// Templates
$lang['using'] = 'Usando la';
$lang['template'] = 'plantilla';
$lang['switch_to'] = 'Puede cambair a la ';
$lang['default_template'] = 'plantilla por defecto';
// template_config
$lang['user_account'] = 'Cuenta de Usuario (posixAccount)';
$lang['address_book_inet'] = 'Entrada del libro de direcciones (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrada del libro de direcciones (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrada de Usuario Kolab';
$lang['organizational_unit'] = 'Unidad Organizativa';
$lang['organizational_role'] = 'Rol Organizativo';
$lang['posix_group'] = 'Grupo Posix';
$lang['samba_machine'] = 'Ordenador con Samba NT';
$lang['samba3_machine'] = 'Ordenador con Samba 3 NT';
$lang['samba_user'] = 'Usuario de Samba';
$lang['samba3_user'] = 'Usuario de Samba 3';
$lang['samba3_group'] = 'Mapeo de Grupo de Samba 3';
$lang['dns_entry'] = 'Entrada DNS';
$lang['simple_sec_object'] = 'Objeto de Seguridad Simple';
$lang['courier_mail_account'] = 'Cuenta de Correo Courier';
$lang['courier_mail_alias'] = 'Alias de Correo Courier';
$lang['ldap_alias'] = 'Alias de LDAP';
$lang['sendmail_cluster'] = 'Cluster de Sendmail';
$lang['sendmail_domain'] = 'Dominio de Sendmail';
$lang['sendmail_alias'] = 'Alias de Sendmail';
$lang['sendmail_virt_dom'] = 'Dominio Virtual de Sendmail';
$lang['sendmail_virt_users'] = 'Usuarios Virtuales de Sendmail';
$lang['sendmail_relays'] = 'Relés de Sendmail';
$lang['custom'] = 'A medida';
$lang['samba_domain_name'] = 'Mi Nombre de Dominio de Samba';
$lang['administrators'] = 'Administradores';
$lang['users'] = 'Usuarios';
$lang['guests'] = 'Invitados';
$lang['power_users'] = 'Usuarios Privilegiados';
$lang['account_ops'] = 'Administradores de Cuentas';
$lang['server_ops'] = 'Administradores de Servidor';
$lang['print_ops'] = 'Administradores de Impresión';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contraseñas de Samba. Por favor, revise la configuración en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuración de Samba.';
$lang['err_smb_no_name_sid'] = 'Error: Necesita indicar el nombre y el sid de su dominio Samba.';
$lang['err_smb_no_name'] = 'Error: No se ha indicado el nombre del dominio Samba.';
$lang['err_smb_no_sid'] = 'Error: No se ha indicado el sid del dominio Samba.';
// Samba Account Template
$lang['samba_account'] = 'Cuenta Samba';
$lang['samba_account_lcase'] = 'cuenta samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nueva cuenta de usuario';
$lang['t_hint_customize'] = 'Nota: Para modificar esta plantilla, edite el fichero templates/creation/new_user_template.php';
$lang['t_name'] = 'Nombre';
$lang['t_first_name'] = 'Nombre propio';
$lang['t_last_name'] = 'Apellido';
$lang['t_first'] = 'nombre propio';
$lang['t_last'] = 'apellido';
$lang['t_common_name'] = 'Nombre común';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contraseña';
$lang['t_encryption'] = 'Encriptación';
$lang['t_login_shell'] = 'Shell de entrada';
$lang['t_home_dir'] = 'Directorio de usuario';
$lang['t_uid_number'] = 'Número UID';
$lang['t_auto_det'] = '(determinado automáticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'Número GID';
$lang['t_err_passwords'] = 'Sus contraseñas no coinciden. Por favor, vuelva atrás e inténtelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_field_num'] = 'Sólo puede introducir valores numéricos en el campo %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creación de cuenta';
$lang['t_secret'] = '[secreta]';
$lang['t_create_account'] = 'Crear cuenta';
// New Address Template
$lang['t_new_address'] = 'Nueva entrada en el libro de direcciones';
$lang['t_organization'] = 'Organización';
$lang['t_address'] = 'Dirección';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'Código postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Teléfono de trabajo';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Móvil';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Contenedor';
$lang['t_err_cn_blank'] = 'No puede dejar el campo "Nombre Común" en blanco. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creación de entrada:';
$lang['t_create_address'] = 'Crear dirección';
// default template
$lang['t_check_pass'] = 'Compruebe la contraseña...';
?>

View File

@@ -11,7 +11,7 @@
*
* Thank you!
*
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/fr.php,v 1.17 2004/05/29 04:08:58 uugdave Exp $
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/fr.php,v 1.21 2005/04/01 22:40:57 xrenard Exp $
*/
/*
@@ -34,6 +34,14 @@ $lang['contains'] = 'contient';
$lang['predefined_search_str'] = 'Selectionner une recherche prédéfinie';
$lang['predefined_searches'] = 'Recherches prédéfinies';
$lang['no_predefined_queries'] = 'Aucune requête n\' a été définie dans config.php.';
$lang['export_results'] = 'exporter le resultat';
$lang['unrecoginzed_search_result_format'] = 'Le format du résultat de la recherche est non reconnu: %s';
$lang['format'] = 'Format';
$lang['list'] = 'liste';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Le fichier config.php contient une valeur invalide pour $default_search_display: %s. Veuillez le corriger';
$lang['page_n'] = 'Page %d';
$lang['no_results'] = 'Aucun résultat pour cette recherche.';
// Tree browser
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalité';
@@ -54,20 +62,25 @@ $lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entrées à partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se déconnecter de ce serveur';
$lang['logged_in_as'] = 'Connecté en tant que: ';
$lang['this_base_dn_is_not_valid'] = 'Ceci n\'est pas un DN valide.';
$lang['this_base_dn_does_not_exist'] = 'Cette entrée n\'existe pas.';
$lang['read_only'] = 'Lecture seule';
$lang['read_only_tooltip'] = 'Cet attribut a été mis en lecture seule par l\'administrateur de phpLDAPAdmin';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être déterminée.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a été configuré de telle sorte que la racine ne soit pas révelée.';
$lang['please_specify_in_config'] = 'Veuillez le spécifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Créer une nouvelle entrée dans';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'L\'entrée racine n\'existe pas.';
$lang['create_it'] = 'La créer?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entrée';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demandé confirmation';
$lang['copy_this_entry'] = 'Copier cette entrée';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export'] = 'Exporter';
$lang['export_lcase'] = 'exporter';
$lang['export_tooltip'] = 'Sauvegarder cet objet';
$lang['export_subtree_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets';
$lang['export_subtree'] = 'Exporter l\'arborescence';
@@ -84,7 +97,9 @@ $lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la définition de schéma pour l\'attribut de type \'%s\'';
$lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications';
$lang['no_internal_attributes'] = 'Aucun attributs internes.';
$lang['no_attributes'] = 'Cette entrée n\a aucun attributs.';
$lang['save_changes'] = 'Sauvegarder les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur supplémentaire à cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
@@ -99,6 +114,8 @@ $lang['no_new_binary_attrs_available'] = 'plus d\' attributs binaires disponible
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['alias_for'] = 'Alias pour';
$lang['required_for'] = 'Attribut requis par le(s) objectClass(es) %s';
$lang['required_by_entry'] = 'Cet attribut est requis par le RDN.';
$lang['download_value'] = 'Télécharger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
@@ -108,18 +125,17 @@ $lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
$lang['add_new_value'] = 'Ajouter une nouvelle valeur';
// Schema browser
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['schema_retrieve_error_1']='Le serveur ne supporte pas entièrement le protocol LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécute correctement la requête.';
$lang['schema_retrieve_error_3']='Ou tout du moins, phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécuter correctement la requête.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_4']='Ou tout du moins, votre serveur LDAP ne procure pas cette information.';
$lang['jump_to_objectclass'] = 'Aller à une classe d\'objet';
$lang['view_schema_for_oclass'] = 'Voir la description du schema pour cette objectClass';
$lang['jump_to_attr'] = 'Aller à un attribut';
$lang['jump_to_matching_rule'] = 'Aller à une règle d\'égalité';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['required'] = 'requis';
$lang['optional_attrs'] = 'Attributs optionnels';
$lang['optional_binary_attrs'] = 'Attributs binaires optionnels';
$lang['OID'] = 'OID';
@@ -131,6 +147,7 @@ $lang['equality']='Egalité';
$lang['is_obsolete'] = 'Cette classe d\'objet est obsolete';
$lang['inherits'] = 'hérite';
$lang['inherited_from']='hérite de';
$lang['parent_to'] = 'Parent de';
$lang['jump_to_this_oclass'] = 'Aller à la définition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'opérateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
@@ -140,8 +157,7 @@ $lang['character']='caractère';
$lang['characters']='caractères';
$lang['used_by_objectclasses']='Utilisé par les objectClasses';
$lang['used_by_attributes']='Utilisé par les attributes';
$lang['maximum_length']='Maximum Length';
$lang['attributes']='Types d\'attribut';
$lang['attribute_types']='Types d\'attribut';
$lang['syntaxes']='Syntaxes';
$lang['objectclasses']='objectClasses';
$lang['matchingrules']='Règles d\'égalité';
@@ -155,7 +171,12 @@ $lang['user_modification']='Modification Utilisateur';
$lang['usage']='Usage';
$lang['maximum_length']='Longueur maximale';
$lang['could_not_retrieve_schema_from']='Impossible de récupérer le schéma de';
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.';
@@ -182,8 +203,14 @@ $lang['no_attr_specified'] = 'Aucun nom d\'attributs spécifié.';
$lang['no_dn_specified'] = 'Aucun DN specifié';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laisser la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['left_attr_blank'] = 'Vous avez laissé la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['failed_to_add_attr'] = 'Echec lors de l\'ajout de l\'attribut.';
$lang['file_empty'] = 'Le fichier choisi soit est vide soit n\'existe pas. Veuillez recommencez.';
$lang['invalid_file'] = 'Erreur de sécurité: Le fichier uploadé peut etre dangereux.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration PHP interdit l\'upload de fichiers. Veuillez vérifier votre fichier php.ini avant de continuer.';
$lang['uploaded_file_too_big'] = 'Le fichier à uploader est de trop grande taille. Veuillez vérifier votre fichier php.ini et particulièrement la directive upload_max_size setting';
$lang['uploaded_file_partial'] = 'Le fichier sélectionner a été partiellement uploadé, probablement du à une erreur réseau.';
$lang['max_file_size'] = 'Taille Maximum du fichier: %s';
// Updating values
$lang['modification_successful'] = 'Modification réussie!';
@@ -201,10 +228,12 @@ $lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entré(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises à jour si le serveur est en lecture seule';
$lang['bad_server_id'] = 'Id de serveur invalide';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaî, vérifier votre configuration.';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaît, vérifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Impossible de se connecter à "%s" sur le port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'opération ldap_mod_add.';
$lang['home'] = 'Home';
$lang['help'] = 'Aide';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succès';
$lang['server_colon_pare'] = 'Serveur: ';
@@ -230,6 +259,11 @@ $lang['bug'] = 'bogue';
$lang['warning'] = 'Avertissement';
$lang['light'] = 'lumière'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Continuer &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut de façon sur encrypter et décrypter les informations du fait que $blowfish_secret n\'est pas défini dans config.php. Vous devez définir $blowfish_secret avec une chaine de caractère de votre choix.';
$lang['jpeg_dir_not_writable'] = 'Veuillez assigner à la variable $jpeg_temp_dir le nom d\'un répertoire accessible en écriture dans le fichier config.php';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'écrire dans le répertoire %s défini par la directive $jpeg_temp_dir. Veuillez vérifier que votre serveur web à les droits en écriture pour ce répertoire.';
$lang['jpeg_unable_toget'] = 'Impossible de trouver la ressource jpeg du serveur LDAP pour l\'attribut %s.';
$lang['jpeg_delete'] = 'Supprimer la photo';
// Add value form
@@ -265,6 +299,8 @@ $lang['must_choose_template'] = 'Vous devez choisir un modèle';
$lang['invalid_template'] = '%s est un modèle non valide';
$lang['using_template'] = 'Utilisation du modèle';
$lang['go_to_dn'] = 'Aller à %s';
$lang['structural_object_class_cannot_remove'] = 'Ceci est une \'objectclass\' de type structurelle et ne peut etre supprimé.';
$lang['structural'] = 'structurelle';
@@ -280,13 +316,16 @@ $lang['copyf_recursive_copy'] = 'Copier récursivement les sous-entrées de cet
$lang['recursive_copy'] = 'Copie récursive';
$lang['filter'] = 'Filtre';
$lang['filter_tooltip'] = 'Lors d\'une copie récursive, seuls les entrées correspondant à ce filtre seront copiés';
$lang['delete_after_copy'] = 'Suppresion après copie (déplacer):';
$lang['delete_after_copy_warn'] = 'Soyez certain que votre filtre (ci-dessus) selectionnera tous les enregistrements enfants.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.';
$lang['redirecting'] = 'Redirection';
$lang['here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectuée.';
$lang['rdn_field_blank'] = 'Vous avez laisser le champ du RDN vide.';
$lang['rdn_field_blank'] = 'Vous avez laissé le champ du RDN vide.';
$lang['container_does_not_exist'] = 'Le containeur que vous avez spécifié (%s) n\'existe pas. Veuillez, s\'il vous plaît recommencer.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez sélectionner aucun ObjectClasses pour cet objet. Veuillez s\'il vous plaît retourner à la page précédente et le faire.';
$lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe d\'objet de type structural';
@@ -295,6 +334,7 @@ $lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un modèle';
$lang['createf_select_temp'] = 'Selectionner un modèle pour la procédure de création';
$lang['save_as_file'] = 'Sauvegarder en tant que fichier';
$lang['createf_proceed'] = 'Continuer';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name';
$lang['rdn'] = 'RDN';
@@ -306,6 +346,8 @@ $lang['alias_for'] = 'Alias pour %s';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.';
$lang['template_not_readable'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais ce fichier ne possède pas les droits de lecture.';
$lang['template_does_not_exist'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais le gestionnaire n\'existe pas dans le répertoire templates/creation.';
$lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.';
$lang['create_step1'] = 'Etape 1 de 2: Nom et classes d\'objet';
@@ -358,12 +400,23 @@ $lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a été effectué';
$lang['go_back'] = 'Retour';
$lang['unable_create_samba_pass'] = 'Impossible de créer le mot de passe samba. Veuillez vérifiez votre configuration dans le fichier template_config.php';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
$lang['credits'] = 'Crédits';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Pour effectuer une doantion au projet phpLDAadmin, veuillez utilisez un des boutons PayPal ci-dessous.';
$lang['donate_amount'] = 'Donner %s';
$lang['purge_cache'] = 'Vider la cache';
$lang['no_cache_to_purge'] = 'Aucune cache à vider.';
$lang['done_purging_caches'] = 'Suppression de %s octets de la cache.';
$lang['purge_cache_tooltip'] = 'Supprimer toutes les données en cache dans phpLDAPadmin, y compris les schemas serveur.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non sûr: ';
@@ -521,6 +574,70 @@ $lang['non_leaf_nodes_cannot_be_renamed'] = 'Vous ne pouvez pas renommer une ent
$lang['no_rdn_change'] = 'Le RDN n\'a pas été modifié';
$lang['invalid_rdn'] = 'Valeur invalide du RDN';
$lang['could_not_rename'] = 'Impossible de renommer l\'entrée';
$lang['csv_spreadsheet'] = 'CSV (tableur)';
// Samba Account Template
$lang['samba_account'] = 'Samba Account';
$lang['samba_account_lcase'] = 'samba account';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nouveau compte utilisateur';
$lang['t_hint_customize'] = 'Astuce: Pour personnaliser ce \'template\', éditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Prénom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'Nom d\'utilisateur';
$lang['t_password'] = 'Mot de passe';
$lang['t_encryption'] = 'Encryption';
$lang['t_login_shell'] = 'Login Shell';
$lang['t_home_dir'] = 'Home Directory';
$lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(déterminé automatiquement)';
$lang['t_group'] = 'Groupe';
$lang['t_gid_number'] = 'GID Number';
$lang['t_err_passwords'] = 'Les mots de passe ne correspondent pas. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_blank'] = 'Le champ %s ne peut etre vide. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_num'] = 'Seuls des valeurs numériques sont valides pour le champ %s. Veuillez revenir en arrière et recommencez.';
$lang['t_err_bad_container'] = 'Le conténeur spécifié (%s) n\'existe pas. Veuillez revenir en arrière et recommencez.';
$lang['t_confirm_account_creation'] = 'Confirmation de la création du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Créer le compte';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Adresse';
$lang['t_city'] = 'Ville';
$lang['t_postal_code'] = 'Code postal';
$lang['t_street'] = 'rue';
$lang['t_work_phone'] = 'Work phone';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Conténeur';
$lang['t_err_cn_blank'] = 'Le champ \'Common Name\' ne peut etre vide. Veuillez revenir en arrière et recommencer.';
$lang['t_confim_creation'] = 'Confirmation de la création de l\'entrée:';
$lang['t_create_address'] = 'Create Address';
// compare form
$lang['compare'] = 'Comparer';
$lang['comparing'] = 'Comparaison des DNs suivant:';
$lang['compare_dn'] = 'Comparer un autre DN avec';
$lang['with'] = 'avec ';
$lang['compf_source_dn'] = 'DN Source';
$lang['compf_dn_tooltip'] = 'Comparer ce DN avec un autre';
$lang['switch_entry'] = 'Intervertir les entrées';
$lang['no_value'] = 'Aucune Valeur';
$lang['compare_with'] = 'Comparer avec une autre entrée';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Votre session a expiré après';
$lang['session_timed_out_2'] = 'min. d\'inactivité. Vous avez été automatiquement déconnecté.';
$lang['log_back_in'] = 'Pour vous connecter à nouveau, cliquez sur le lien suivant:';
$lang['session_timed_out_tree'] = '(Expiration de session. Déconnexion automatique.)';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ja.php,v 1.1 2004/12/09 14:19:28 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ja.php,v 1.4 2005/03/08 10:22:10 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@@ -37,7 +37,7 @@ $lang['predefined_search_str'] = '事前定義された検索を選択';
$lang['predefined_searches'] = '事前定義検索';
$lang['no_predefined_queries'] = 'config.php で定義された照会はありません。';
$lang['export_results'] = '結果エクスポート';
$lang['unrecoginzed_search_result_format'] = 'Unrecognized search result format: %s';
$lang['unrecoginzed_search_result_format'] = '認識できない書式の検索結果です: %s';
$lang['format'] = '書式';
$lang['list'] = '一覧';
$lang['table'] = 'テーブル';
@@ -56,14 +56,16 @@ $lang['import'] = 'インポート';
$lang['refresh'] = '再描画';
$lang['logout'] = 'ログアウト';
$lang['create_new'] = 'ここに新規エントリを追加';
$lang['view_schema_for'] = 'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Create a new entry on';
$lang['view_schema_for'] = 'スキーマを閲覧 対象:';
$lang['refresh_expanded_containers'] = '展開済みの内容を再描画 対象:';
$lang['create_new_entry_on'] = 'エントリを新規作成 対象:';
$lang['new'] = '新規';
$lang['view_server_info'] = 'サーバーが提供する情報を閲覧';
$lang['import_from_ldif'] = 'LDIF ファイルからのインポートエントリ';
$lang['logout_of_this_server'] = 'このサーバーのログアウト';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['logged_in_as'] = '次のコンテナでログイン: ';
$lang['this_base_dn_is_not_valid'] = 'これは有効な DN ではありません。';
$lang['this_base_dn_does_not_exist'] = 'このエントリは存在しません。';
$lang['read_only'] = '読み込み専用';
$lang['read_only_tooltip'] = 'この属性は phpLDAP 管理者により、読み込み専用で設定されています。';
$lang['could_not_determine_root'] = 'LDAP ツリーのルートが決定できません。';
@@ -73,7 +75,7 @@ $lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'ログイン...';
$lang['login'] = 'ログイン';
$lang['base_entry_does_not_exist'] = 'ベースエントリが存在しません。';
$lang['create_it'] = 'Create it?';
$lang['create_it'] = '作成しますか?';
// Entry display
$lang['delete_this_entry'] = 'このエントリを削除';
@@ -92,35 +94,35 @@ $lang['add'] = '追加';
$lang['view'] = 'View';
$lang['view_one_child'] = 'ひとつの子を閲覧';
$lang['view_children'] = '%s 個の子を閲覧';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加する';
$lang['hide_internal_attrs'] = '内部属性を隠す';
$lang['show_internal_attrs'] = '内部属性を表示';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['attr_name_tooltip'] = '属性タイプ \'%s\' のためのスキーマ定義を見るためにクリックしてください。';
$lang['none'] = 'なし';
$lang['no_internal_attributes'] = '内部属性がありません';
$lang['no_attributes'] = 'このエントリは属性を持っていません';
$lang['save_changes'] = '変更を保存';
$lang['add_value'] = '値追加';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['add_value_tooltip'] = '追加値を属性「%s」に追加する';
$lang['refresh_entry'] = '再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画する';
$lang['delete_hint'] = 'ヒント: 属性を削除するにはテキストフィールドを空にして保存をクリックします。';
$lang['attr_schema_hint'] = 'ヒント: 属性のスキーマを閲覧するには、属性名をクリックします。';
$lang['attrs_modified'] = 'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'no new binary attributes available for this entry';
$lang['attrs_modified'] = 'いくつかの属性 (%s) は修正され、下記でハイライトされました。';
$lang['attr_modified'] = 'ひとつの属性 (%s) は修正され、下記でハイライトされました。';
$lang['viewing_read_only'] = '読み込みモードでエントリを閲覧中。';
$lang['no_new_attrs_available'] = 'このエントリに利用可能な新規属性はありません。';
$lang['no_new_binary_attrs_available'] = 'このエントリに利用可能な新規バイナリ属性はありません。';
$lang['binary_value'] = 'バイナリ値';
$lang['add_new_binary_attr'] = '新規バイナリ属性を追加';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['alias_for'] = ': \'%s\' は \'%s\' のエイリアスです。';
$lang['required_for'] = 'objectClass %s の必須属性';
$lang['download_value'] = 'ダウンロード値';
$lang['delete_attribute'] = '属性削除';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['none_remove_value'] = 'いいえ、値を削除します';
$lang['really_delete_attribute'] = '本当に属性を削除';
$lang['add_new_value'] = '新規値追加';
@@ -132,6 +134,7 @@ $lang['the_following_syntaxes'] = '次の文法はこの LDAP サーバーでサ
$lang['schema_retrieve_error_1']='このサーバーはすべての LDAP プロトコルをサポートしていません。';
$lang['schema_retrieve_error_2']='この PHP のバージョンは正確に照会を行えません。';
$lang['schema_retrieve_error_3']='あるいは、phpLDAPadmin は、あなたのサーバーからスキーマを取得する方法を知りません。';
$lang['schema_retrieve_error_4']='Or lastly, LDAP サーバーはこの情報を提供していません。';
$lang['jump_to_objectclass'] = 'objectClass に移動';
$lang['view_schema_for_oclass'] = 'この objectClass のスキーマ説明を閲覧';
$lang['jump_to_attr'] = '属性タイプに移動';
@@ -153,16 +156,16 @@ $lang['inherited_from'] = '派生元';
$lang['parent_to'] = '派生先';
$lang['jump_to_this_oclass'] = 'この objectClass 定義に移動';
$lang['matching_rule_oid'] = '適用ルール OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['syntax_oid'] = '文法 OID';
$lang['not_applicable'] = '適用可能ではありません';
$lang['not_specified'] = '指定されていません';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='Used by objectClasses';
$lang['used_by_attributes']='Used by Attributes';
$lang['used_by_objectclasses']='objectClass を使する';
$lang['used_by_attributes']='Attributes で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
@@ -182,16 +185,16 @@ $lang['you_must_specify_a_dn'] = 'DN を指定しなければなりません';
$lang['could_not_delete_entry'] = 'エントリを削除できませんでした: %s';
$lang['no_such_entry'] = 'エントリがありません: %s';
$lang['delete_dn'] = '%s 削除';
$lang['permanently_delete_children'] = 'Permanently delete all children also?';
$lang['permanently_delete_children'] = 'さらに永久にすべての子を削除しますか?';
$lang['entry_is_root_sub_tree'] = 'このエントリは %s エントリを含むサブツリーのルートです。';
$lang['view_entries'] = 'エントリ閲覧';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin は再帰的に、このエントリとその子のすべての %s を削除できます。このアクションが削除するすべてのエントリの一覧は、下記を参照してください。本当に本当に削除しますか?';
$lang['confirm_recursive_delete_note'] = '注: これは潜在的に非常に危険です。また、自己責任でこれをします。このオペレーションは取り消せません。エイリアス・referralとその他の問題を考察を持ってください。';
$lang['delete_all_x_objects'] = '%s オブジェクトをすべて削除';
$lang['recursive_delete_progress'] = '再帰削除進行';
$lang['entry_and_sub_tree_deleted_successfully'] = 'エントリ %s とサブツリーの削除に成功しました。';
$lang['failed_to_delete_entry'] = 'エントリ %s のふぁ駆除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'List of entries to be deleted:';
$lang['failed_to_delete_entry'] = 'エントリ %s の除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'エントリの一覧を削除しました:';
$lang['sure_permanent_delete_object']='本当にこのオブジェクトを永続的に削除しますか?';
$lang['dn'] = 'DN';
@@ -201,13 +204,13 @@ $lang['no_attr_specified'] = '属性名が指定されていません。';
$lang['no_dn_specified'] = 'DN が指定されていません';
// Adding attributes
$lang['left_attr_blank'] = 'You left the attribute value blank. Please go back and try again.';
$lang['left_attr_blank'] = '属性値が空です。戻ってからもう一度試してください。';
$lang['failed_to_add_attr'] = '属性の追加に失敗しました。';
$lang['file_empty'] = 'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を調べてください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。The file you selected was only partially uploaded, likley due to a network error.';
$lang['file_empty'] = 'あなたの選んだファイルは空か存在しないかのいずれかです。戻ってからもう一度試してください。';
$lang['invalid_file'] = 'セキュリティエラー: アップロードされたファイルは悪意のあるものかもしれません。';
$lang['warning_file_uploads_disabled'] = 'PHP の設定でファイルのアップロードが無効です。続行する前に、php.ini を確認してください。';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を確認してください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。likley due to a network error.';
$lang['max_file_size'] = '最大ファイルサイズ: %s';
// Updating values
@@ -217,22 +220,23 @@ $lang['change_password_new_login'] = 'パスワードを変更したので、今
// Adding objectClass form
$lang['new_required_attrs'] = '新規必須属性';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = '新貴族性';
$lang['new_attributes'] = '新規属性';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['that_this_oclass_requires'] = 'それは objectClass に必要です。このフォームでそうすることができます。';
$lang['add_oclass_and_attrs'] = 'ObjectClass と属性を追加';
$lang['objectclasses'] = 'ObjectClasses';
$lang['objectclasses'] = 'ObjectClass 一覧';
// General
$lang['chooser_link_tooltip'] = 'Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'You cannot perform updates while server is in read-only mode';
$lang['no_updates_in_read_only_mode'] = 'サーバーは読み込みモードなので、更新を実行できません。';
$lang['bad_server_id'] = '間違ったサーバー ID';
$lang['not_enough_login_info'] = 'サーバーにログインする情報が不足しています。設定を確認してください。';
$lang['could_not_connect'] = 'LDAP サーバーに接続できませんでした。';
$lang['could_not_connect_to_host_on_port'] = '"%s" のポート "%s" に接続できませんでした';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['could_not_perform_ldap_mod_add'] = 'ldap_mod_add 操作を実行できませんでした。';
$lang['bad_server_id_underline'] = '間違った server_id: ';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
@@ -240,8 +244,8 @@ $lang['missing_server_id_in_query_string'] = '照会文字列にサーバー ID
$lang['missing_dn_in_query_string'] = '照会文字列に DN が指定されていません!';
$lang['back_up_p'] = 'バックアップ...';
$lang['no_entries'] = 'エントリがありません';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['not_logged_in'] = 'ログインしていません';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
@@ -257,7 +261,11 @@ $lang['bug'] = '不都合';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = '進む &gt;&gt;';
$lang['no_blowfish_secret'] = '$blowfish_secret が config.php で設定されていないので、phpLDAPadmin は安全に機密情報を暗号化と解読をすることができません。config.php を編集し、秘密文字列を $blowfish_secret に設定するする必要があります。';
$lang['jpeg_dir_not_writable'] = 'phpLDAPadmin の設定ファイル config.php で、書き込み可能なディレクトリを $jpeg_temp_dir に設定してください。';
$lang['jpeg_dir_not_writable_error'] = '$jpeg_temp_dir で指定したディレクトリ %s に書き込みできません。ウェブサーバーがそこにファイルを書き込みできることを確認してください。';
$lang['jpeg_unable_toget'] = '属性 %s 用に LDAP サーバーから jpeg データを取得できませんでした。';
$lang['jpeg_delete'] = '写真を削除';
// Add value form
$lang['add_new'] = '新規追加';
@@ -265,14 +273,14 @@ $lang['value_to'] = 'value to';
$lang['distinguished_name'] = '関連名';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = '属性の値';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Syntax';
$lang['syntax'] = '文法';
//copy.php
$lang['copy_server_read_only'] = 'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'You left the destination DN blank.';
$lang['copy_server_read_only'] = 'サーバーが読み込みモードなので、更新を行うことができません。';
$lang['copy_dest_dn_blank'] = '対象 DN がブランクで残されました。';
$lang['copy_dest_already_exists'] = '対象エントリ (%s) は既に存在します。';
$lang['copy_dest_container_does_not_exist'] = '対象先コンテナー (%s) は存在しません。';
$lang['copy_source_dest_dn_same'] = '対象元と対象先 DN が同じです。';
@@ -291,8 +299,8 @@ $lang['must_choose_template'] = 'テンプレートを選ばなければなり
$lang['invalid_template'] = '%s は無効なテンプレート';
$lang['using_template'] = '使用中のテンプレート';
$lang['go_to_dn'] = '%s に移動';
+$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
+$lang['structural'] = '構造';
$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
$lang['structural'] = '構造';
//copy_form.php
$lang['copyf_title_copy'] = 'コピー ';
@@ -300,16 +308,18 @@ $lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = '対象 DN';
$lang['copyf_dest_dn_tooltip'] = 'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = '対象サーバー';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_note'] = 'Hint: スキーマ違反がなければ、異なるサーバー間のコピー処理のみ行います。';
$lang['copyf_recursive_copy'] = '同様にこのオブジェクトのすべての子を再帰コピーします。';
$lang['recursive_copy'] = '再帰コピー';
$lang['filter'] = 'Filter';
$lang['filter'] = 'フィルター';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['filter_tooltip'] = '再帰的なコピーを行なう場合、このフィルタと一致するエントリのみコピーしてください。';
$lang['delete_after_copy'] = 'コピーの後に削除 (移動):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Redirecting...';
$lang['redirecting'] = 'リダイレクト中...';
$lang['here'] = 'ここ';
$lang['create_could_not_add'] = 'LDAP サーバーにオブジェクトを追加できませんでした。';
@@ -318,10 +328,10 @@ $lang['createf_create_object'] = 'オブジェクト作成';
$lang['createf_choose_temp'] = 'テンプレート選択';
$lang['createf_select_temp'] = '作成処理のテンプレートを選択';
$lang['save_as_file'] = 'ファイルに保存';
$lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['rdn_field_blank'] = 'RDN フィールドが空です。';
$lang['container_does_not_exist'] = '指定したコンテナー(%s)が存在しません。もう一度行ってください。';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'ヒント: You must choose exactly one structural objectClass (shown in bold above)';
$lang['no_objectclasses_selected'] = 'このオブジェクトのためのいくつかの ObjectClass を選択しませんでした。戻ってそのように実行してください。';
$lang['hint_structural_oclass'] = 'ヒント: ひとつの構造 objectClass を選択しなければなりません (上で強調表示されています)';
//creation_template.php
$lang['ctemplate_on_server'] = 'サーバー';
@@ -365,16 +375,16 @@ $lang['sounds like'] = 'に近い';
// server_info.php
$lang['could_not_fetch_server_info'] = 'サーバーから LDAP 情報を取得できませんでした。これはあなたの PHP バージョンの<a href="http://bugs.php.net/bug.php?id=29587">不都合</a>によるかもしれません。あるいは、あなたの LDAP サーバーは、LDAP クライアントが RootDSE にアクセスするのを防ぐアクセス制御指定をしています。';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['server_info_for'] = 'サーバー情報: ';
$lang['server_reports_following'] = 'サーバーは自分自身で次の情報を報告しました。';
$lang['nothing_to_report'] = 'このサーバーはなにも報告するものはありません。';
//update.php
$lang['update_array_malformed'] = 'update_array がオカシイです。This might be a phpLDAPadmin bug. Please report it.';
$lang['update_array_malformed'] = 'update_array がおかしいです。これは phpLDAPadmin のバグかもしれませんので、報告してください。';
$lang['could_not_perform_ldap_modify'] = 'ldap_modify 操作が実行できませんでした。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['do_you_want_to_make_these_changes'] = '変更をしたいですか?';
$lang['attribute'] = '属性';
$lang['old_value'] = '古い値';
$lang['new_value'] = '新しい値';
@@ -382,20 +392,19 @@ $lang['attr_deleted'] = '[属性を削除しました]';
$lang['commit'] = 'コミット';
$lang['cancel'] = '取り消し';
$lang['you_made_no_changes'] = '変更はありません';
$lang['go_back'] = 'Go back';
$lang['go_back'] = '戻る';
$lang['unable_create_samba_pass'] = 'samba パスワードを作成できませんでした。template_conf.php の設定を確認してください。';
// welcome.php
$lang['welcome_note'] = '左へのメニューを使用して捜査します';
$lang['welcome_note'] = '左へのメニューを使用して操作します';
$lang['credits'] = 'クレジット';
$lang['changelog'] = '変更履歴';
$lang['donate'] = '寄';
$lang['donate'] = '寄';
$lang['pla_logo'] = 'phpLDAPadmin ロゴ';
// Donate.php
$lang['donation_instructions'] = 'phpLDAPadmin プロジェクトに資金を寄贈するためには、PayPal ボタンのうちの 1 つを下に使用してください。';
$lang['donate_amount'] = '%s を寄贈';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'Dave\'s phpLDAPadmin のゐっ主リストを閲覧';
$lang['purge_cache'] = 'キャッシュ破棄';
$lang['no_cache_to_purge'] = '破棄するキャッシュはありませんでした。';
@@ -407,44 +416,44 @@ $lang['unsafe_file_name'] = '安全でないファイル名: ';
$lang['no_such_file'] = 'ファイルがありません: ';
//function.php
$lang['auto_update_not_setup'] = 'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
but you have not specified the auto_uid_number_mechanism. Please correct
this problem.';
$lang['uidpool_not_set'] = 'You specified the "auto_uid_number_mechanism" as "uidpool"
in your configuration for server <b>%s</b>, but you did not specify the
audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['auto_update_not_setup'] = '設定ファイルの <b>%s</b>You の auto_uid_numbers が有効ですが、
auto_uid_number_mechanism が指定されていません。
この問題を修正してください。.';
$lang['uidpool_not_set'] = 'サーバー <b>%s</b> の設定で、"auto_uid_number_mechanism" "uidpool" に指定していますが、
audo_uid_number_uid_pool_dn を指定していません。
続行する前にそれを指定してください';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'You specified the "auto_uid_number_mechanism" as "search" in your
configuration for server <b>%s</b>, but you did not specify the
"auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism ("%s")
in your configration. Only "uidpool" and "search" are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = 'Error: You have an error in your config file. The only three allowed values
for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\',
which is not allowed. ';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = 'Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.';
$lang['specified_uidpool'] = 'サーバー <b>%s</b> の設定で「search」に「auto_uid_number_mechanism」を指定しました。
しかし「auto_uid_number_search_base」が指定されていません。
これを実行前に指定してください。';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. 設定ファイルを確認してください。';
$lang['bad_auto_uid_search_base'] = 'phpLDAPadmin の設定で、サーバー %s に無効な auto_uid_search_base が指定されました';
$lang['auto_uid_invalid_value'] = '設定ファイルの auto_uid_number_mechanism の指定が間違った値("%s")です。
"uidpool" "search" のみ有効です。
この問題を修正してください。';
$lang['error_auth_type_config'] = 'エラー: 設定ファイルのにエラーがあります。$servers セクションの auth_type は
「session」「cookie」「config」のみっつの値のみ許可されていますが、
許可されない「%s」が入力されました。';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. 設定ファイルを確認してください。';
$lang['unique_attr_failed'] = '<b>%s</b> (<i>%s</i>) <b>%s</b> への追加の試みは許可<b>されていません</b>。<br />その属性/値は別のエントリが所有しています。<p>そのエントリを<a href=\'%s\'>検索</a>などするしょう。';
$lang['php_install_not_supports_tls'] = 'インストールされている PHP は TLS をサポートしていません。';
$lang['could_not_start_tls'] = 'TLS を開始できません。LDAP サーバーの設定を確認してください。';
$lang['could_not_bind_anon'] = 'サーバーに匿名接続できませんでした。';
$lang['could_not_bind'] = 'LDAP サーバーに接続できませんでした。';
$lang['anonymous_bind'] = '匿名接続';
$lang['bad_user_name_or_password'] = 'ユーザー名かパスワードがおかしいです。もう一度行ってください。';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b>へのログインに成功しました';
$lang['redirecting_click_if_nothing_happens'] = 'リダイレクト中... もし何も起こらなかったらここをクリックしてください。';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b> へのログインに成功しました';
$lang['could_not_set_cookie'] = 'cookie を設定できませんでした。';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ferror_error'] = 'エラー';
$lang['fbrowse'] = '閲覧';
$lang['delete_photo'] = '写真削除';
$lang['install_not_support_blowfish'] = 'インストールされた PHP は blowfish 暗号化をサポートしていません。';
$lang['install_not_support_md5crypt'] = 'インストールされた PHP は md5crypt 暗号化をサポートしていません。';
$lang['install_no_mash'] = 'インストールされた PHP は mhash() をサポートしていません。SHA ハッシュをすることができません。';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['jpeg_contains_errors'] = 'エラーを含む jpeg 写真<br />';
$lang['ferror_number'] = 'エラー番号: %s (%s)';
$lang['ferror_discription'] = '説明: %s <br /><br />';
$lang['ferror_number_short'] = 'エラー番号: %s<br /><br />';
@@ -511,7 +520,7 @@ $lang['searching'] = '検索中...';
$lang['size_limit_exceeded'] = '通知です。検索サイズが制限を越えました。';
$lang['entry'] = 'エントリ';
$lang['ldif_export_for_dn'] = 'LDIF エクスポート: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['generated_on_date'] = '%s に phpLDAPadmin ( http://www.phpldapadmin.com/ ) で生成しました。';
$lang['total_entries'] = '総エントリ';
$lang['dsml_export_for_dn'] = 'DSLM エクスポート: %s';
$lang['include_system_attrs'] = 'システム属性を含む';
@@ -519,19 +528,20 @@ $lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['password_blank'] = 'パスワードが空です。';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'ログアウトできませんでした。';
$lang['unknown_auth_type'] = '未知の auth_type: %s';
$lang['logged_out_successfully'] = 'サーバー <b>%s</b> からログアウトに成功しました';
$lang['authenticate_to_server'] = 'Authenticate to server %s';
$lang['authenticate_to_server'] = 'サーバー %s へ認証';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: このウェブ接続は暗号化されていません。';
$lang['not_using_https'] = 'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['not_using_https'] = 'あなたは \'https\' を使っていません。ログイン情報はブラウザからクリアテキストで送信されます、';
$lang['login_dn'] = 'ログイン DN';
$lang['user_name'] = 'ユーザー名';
$lang['password'] = 'パスワード';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'すみません、この LDAP サーバーと phpLDAPadmin を使用することを許可していません。';
// Entry browser
$lang['entry_chooser_title'] = 'エントリ選択';
@@ -563,7 +573,7 @@ $lang['could_not_rename'] = 'エントリの名称変更が出来ませんでし
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin は PHP 5 をサポートしていません。You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes must have the same number of attributes as $search_attributes_display.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes $search_attributes_display の属性と同じ数を持たなければいけません。';
// Password checker
$lang['passwords_match'] = 'パスワードが一致しました!';
@@ -572,4 +582,100 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'テンプレート';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'デフォルトテンプレート';
// template_config
$lang['user_account'] = 'ユーザーアカウント (posixAccount)';
$lang['address_book_inet'] = 'アドレス帳エントリ (inetOrgPerson)';
$lang['address_book_moz'] = 'アドレス帳エントリ (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab ユーザーエントリ';
$lang['organizational_unit'] = '所属組織';
$lang['organizational_role'] = '所属職務';
$lang['posix_group'] = 'Posix グループ';
$lang['samba_machine'] = 'Samba NT マシン';
$lang['samba3_machine'] = 'Samba 3 NT マシン';
$lang['samba_user'] = 'Samba ユーザー';
$lang['samba3_user'] = 'Samba 3 ユーザー';
$lang['samba3_group'] = 'Samba 3 グループマップ';
$lang['dns_entry'] = 'DNS エントリ';
$lang['simple_sec_object'] = '簡易セキュリティオブジェクト';
$lang['courier_mail_account'] = 'Courier メールアカウント';
$lang['courier_mail_alias'] = 'Courier メール別名';
$lang['ldap_alias'] = 'LDAP 別名';
$lang['sendmail_cluster'] = 'Sendmail クラスター';
$lang['sendmail_domain'] = 'Sendmail ドメイン';
$lang['sendmail_alias'] = 'Sendmail エイリアス';
$lang['sendmail_virt_dom'] = 'Sendmail 仮想ドメイン';
$lang['sendmail_virt_users'] = 'Sendmail 仮想ユーザー';
$lang['sendmail_relays'] = 'Sendmail リレー';
$lang['custom'] = 'カスタム';
$lang['samba_domain_name'] = '自分の Samba ドメイン名';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Samba のパスワードを作成できませんでした。template_config.php の設定を確認してください。';
$lang['err_smb_conf'] = 'エラー: samba の設定にエラーがあります。';
$lang['err_smb_no_name_sid'] = 'エラー: samba ドメインの名前および sid を提供する必要があります。';
$lang['err_smb_no_name'] = 'エラー: 名前は samba ドメインに提供されませんでした。';
$lang['err_smb_no_sid'] = 'エラー: sid は samba ドメインに提供されませんでした。';
// Samba Account Template
$lang['samba_account'] = 'Samba アカウント';
$lang['samba_account_lcase'] = 'samba アカウント';
// New User (Posix) Account
$lang['t_new_user_account'] = '新規ユーザーアカウント';
$lang['t_hint_customize'] = 'ヒント: このテンプレートをカスタマイズする場合、ファイル templates/creation/new_user_template.php を編集します。';
$lang['t_name'] = '名前';
$lang['t_first_name'] = '名前';
$lang['t_last_name'] = '苗字';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = '共通名';
$lang['t_user_name'] = 'ユーザー名';
$lang['t_password'] = 'パスワード';
$lang['t_encryption'] = '暗号化';
$lang['t_login_shell'] = 'ログインシェル';
$lang['t_home_dir'] = 'ホームディレクトリ';
$lang['t_uid_number'] = 'UID 番号';
$lang['t_auto_det'] = '(自動採決)';
$lang['t_group'] = 'グループ';
$lang['t_gid_number'] = 'GID 番号';
$lang['t_err_passwords'] = 'パスワードが一致しません。戻ってからもう一度試してください。';
$lang['t_err_field_blank'] = '%s ブランクを残すことはできません。戻ってからもう一度試してください。';
$lang['t_err_field_num'] = 'フィールド %s は数値のみ入力で出来ます。戻ってからもう一度試してください。';
$lang['t_err_bad_container'] = '指定した内容(%s)は存在しません。戻ってからもう一度試してください。';
$lang['t_confirm_account_creation'] = 'アカウント作成確認';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'アカウント作成';
// New Address Template
$lang['t_new_address'] = '新規アドレス帳エントリ';
$lang['t_organization'] = '組織';
$lang['t_address'] = '住所';
$lang['t_city'] = '都市';
$lang['t_postal_code'] = '郵便番号';
$lang['t_street'] = '築町村';
$lang['t_work_phone'] = '業務電話';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = '携帯電話';
$lang['t_email'] = '電子メール';
$lang['t_container'] = 'コンテナー';
$lang['t_err_cn_blank'] = '一般名を空にすることは出来ません。戻ってからもう一度試してください。';
$lang['t_confim_creation'] = 'エントリ作成の確認:';
$lang['t_create_address'] = 'アドレス作成';
// default template
$lang['t_check_pass'] = 'パスワード検査...';
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
@@ -16,10 +16,10 @@
*
*/
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
* initial translation from Piotr (DrFugazi) Tarnowski on Version 0.9.3
*/
// Based on en.php version 1.80
// Based on en.php version 1.120
// Search form
$lang['simple_search_form_str'] = 'Wyszukiwanie proste';
@@ -29,7 +29,6 @@ $lang['search_for_entries_whose'] = 'Szukaj wpisów w których';
$lang['base_dn'] = 'Bazowa DN';
$lang['search_scope'] = 'Zakres przeszukiwania';
$lang['show_attributes'] = 'Pokaż atrybuty';
$lang['attributes'] = 'Atrybuty';
$lang['Search'] = 'Szukaj';
$lang['equals'] = 'równa się';
$lang['contains'] = 'zawiera';
@@ -42,10 +41,12 @@ $lang['format'] = 'Format';
$lang['list'] = 'lista';
$lang['table'] = 'tabela';
$lang['bad_search_display'] = 'W Twojej konfiguracji (config.php) określona jest nieprawidłowa wartość dla $default_search_display: %s. Proszę to poprawić';
$lang['page_n'] = 'Strona %d';
$lang['no_results'] = 'Wyszukiwanie nie przyniosło żadnych rezultatów.';
// Tree browser
$lang['request_new_feature'] = 'Zgłoś zapotrzebowanie na nową funkcjonalność';
$lang['report_bug'] = 'Zgłoś błąd (report a bug)';
$lang['request_new_feature'] = 'Zgłoś zapotrzebowanie';
$lang['report_bug'] = 'Zgłoś błąd';
$lang['schema'] = 'schemat';
$lang['search'] = 'szukaj';
$lang['create'] = 'utwórz';
@@ -53,7 +54,7 @@ $lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'odśwież';
$lang['logout'] = 'wyloguj';
$lang['create_new'] = 'Utwórz nowy';
$lang['create_new'] = 'Utwórz nowy wpis';
$lang['view_schema_for'] = 'Pokaż schemat dla';
$lang['refresh_expanded_containers'] = 'Odśwież wszystkie otwarte kontenery dla';
$lang['create_new_entry_on'] = 'Utwórz nowy wpis na';
@@ -62,6 +63,8 @@ $lang['view_server_info'] = 'Pokaż informacje o serwerze';
$lang['import_from_ldif'] = 'Importuj wpisy z pliku LDIF';
$lang['logout_of_this_server'] = 'Wyloguj z tego serwera';
$lang['logged_in_as'] = 'Zalogowany/a jako: ';
$lang['this_base_dn_is_not_valid'] = 'To nie jest prawidłowa DN.';
$lang['this_base_dn_does_not_exist'] = 'Ten wpis nie istnieje';
$lang['read_only'] = 'tylko-do-odczytu';
$lang['read_only_tooltip'] = 'Ten atrybut został oznaczony przez administratora phpLDAPadmin jako tylko-do-odczytu';
$lang['could_not_determine_root'] = 'Nie można ustalić korzenia Twojego drzewa LDAP.';
@@ -70,11 +73,13 @@ $lang['please_specify_in_config'] = 'Proszę określić to w pliku config.php';
$lang['create_new_entry_in'] = 'Utwórz nowy wpis w';
$lang['login_link'] = 'Logowanie...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'Ten wpis bazowy nie istnieje';
$lang['create_it'] = 'Utworzyć ?';
// Entry display
$lang['delete_this_entry'] = 'Usuń ten wpis';
$lang['delete_this_entry_tooltip'] = 'Będziesz poproszony/a o potwierdzenie tej decyzji';
$lang['copy_this_entry'] = 'Skopiuj ten wpis';
$lang['copy_this_entry'] = 'Skopiuj lub przenieś ten wpis';
$lang['copy_this_entry_tooltip'] = 'Skopiuj ten obiekt do innej lokalizacji, nowej DN, lub do innego serwera';
$lang['export'] = 'Eksportuj';
$lang['export_lcase'] = 'eksportuj';
@@ -112,6 +117,7 @@ $lang['binary_value'] = 'Wartość binarna';
$lang['add_new_binary_attr'] = 'Dodaj nowy atrybut binarny';
$lang['alias_for'] = 'Uwaga: \'%s\' jest aliasem dla \'%s\'';
$lang['required_for'] = 'Atrybut wymagany dla klas(y) obiektu %s';
$lang['required_by_entry'] = 'Ten atrybut jest wymagany dla RDN';
$lang['download_value'] = 'pobierz (download) wartość';
$lang['delete_attribute'] = 'usuń atrybut';
$lang['true'] = 'prawda';
@@ -121,13 +127,10 @@ $lang['really_delete_attribute'] = 'Definitywnie usuń atrybut';
$lang['add_new_value'] = 'Dodaj nową wartość';
// Schema browser
$lang['the_following_objectclasses'] = 'Następujące klasy obiektu są wspierane przez ten serwer LDAP.';
$lang['the_following_attributes'] = 'Następujące typy atrybutów są wspierane przez ten serwer LDAP.';
$lang['the_following_matching'] = 'Następujące reguły dopasowania są wspierane przez ten serwer LDAP.';
$lang['the_following_syntaxes'] = 'Następujące składnie są wspierane przez ten serwer LDAP.';
$lang['schema_retrieve_error_1']='Serwer nie wspiera w pełni protokołu LDAP.';
$lang['schema_retrieve_error_2']='Twoja wersja PHP niepoprawnie wykonuje zapytanie.';
$lang['schema_retrieve_error_3']='Lub w ostateczności, phpLDAPadmin nie wie jak uzyskać schemat dla Twojego serwera.';
$lang['schema_retrieve_error_3']='phpLDAPadmin nie wie jak uzyskać schemat z Twojego serwera.';
$lang['schema_retrieve_error_4']='Lub w ostateczności, Twój serwer nie dostarcza tej informacji.';
$lang['jump_to_objectclass'] = 'Skocz do klasy obiektu';
$lang['view_schema_for_oclass'] = 'Pokaż opis schematu dla tej klasy obiektu';
$lang['jump_to_attr'] = 'Skocz do typu atrybutu';
@@ -224,17 +227,15 @@ $lang['not_enough_login_info'] = 'Brak wystarczających informacji aby zalogowa
$lang['could_not_connect'] = 'Nie można podłączyć się do serwera LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Nie można podłączyć się do "%s" na port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nie można dokonać operacji ldap_mod_add.';
$lang['bad_server_id_underline'] = 'Zły server_id: ';
$lang['home'] = 'Strona główna';
$lang['help'] = 'Pomoc';
$lang['success'] = 'Sukces';
$lang['server_colon_pare'] = 'Serwer: ';
$lang['look_in'] = 'Szukam w: ';
$lang['missing_server_id_in_query_string'] = 'Nie określono ID serwera w zapytaniu !';
$lang['missing_dn_in_query_string'] = 'Nie określono DN w zapytaniu !';
$lang['back_up_p'] = 'Do góry...';
$lang['no_entries'] = 'brak wpisów';
$lang['not_logged_in'] = 'Nie zalogowany/a';
$lang['could_not_det_base_dn'] = 'Nie można określić bazowego DN';
$lang['please_report_this_as_a_bug']='Proszę zgłosić to jako błąd.';
$lang['reasons_for_error']='To mogło zdarzyć się z kilku powodów, z których najbardziej prawdopodobne to:';
$lang['yes']='Tak';
$lang['no']='Nie';
@@ -243,12 +244,16 @@ $lang['delete']='Usuń';
$lang['back']='Powrót';
$lang['object']='obiekt';
$lang['delete_all']='Usuń wszystko';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'wskazówka';
$lang['bug'] = 'błąd (bug)';
$lang['warning'] = 'ostrzeżenie';
$lang['light'] = 'żarówka'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Dalej &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin nie może bezpiecznie szyfrować danych, ponieważ zmienna $blowfish_secret nie jest ustawiona w config.php. Należy wyedytować config.php i wpisać jakiś łańcuch znaków do zmiennej $blowfish_secret';
$lang['jpeg_dir_not_writable'] = 'Proszę ustawić zmienną $jpeg_temp_dir w config.php na katalog z możliwością zapisu plików';
$lang['jpeg_dir_not_writable_error'] = 'Nie można zapisać do katalogu $jpeg_temp_dir %s. Sprawdź proszę czy Twój serwer może zapisywać pliki w tym katalogu.';
$lang['jpeg_unable_toget'] = 'Nie można pobrać danych jpeg z serwera LDAP dla atrybutu %s.';
$lang['jpeg_delete'] = 'Usuń zdjęcie';
// Add value form
$lang['add_new'] = 'Dodaj';
@@ -296,7 +301,9 @@ $lang['copyf_recursive_copy'] = 'Rekursywne kopiowanie wszystkich potomnych obie
$lang['recursive_copy'] = 'Kopia rekursywna';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'Podczas rekursywnego kopiowania, kopiowane są tylko wpisy pasujące do filtra';
$lang['delete_after_copy'] = 'Usuń po skopiowaniu (przenieś):';
$lang['delete_after_copy_warn'] = 'Upewnij się, że ustawienia filtra (powyżej) pozwalają na wybranie wszystkich rekordów podrzędnych.';
//create.php
$lang['create_required_attribute'] = 'Brak wartości dla wymaganego atrybutu (%s).';
$lang['redirecting'] = 'Przekierowuję';
@@ -307,17 +314,17 @@ $lang['create_could_not_add'] = 'Nie można dodać obiektu do serwera LDAP.';
$lang['createf_create_object'] = 'Utwórz obiekt';
$lang['createf_choose_temp'] = 'Wybierz szablon';
$lang['createf_select_temp'] = 'Wybierz szablon dla procesu tworzenia';
$lang['createf_proceed'] = 'Dalej';
$lang['save_as_file'] = 'Zapisz jako';
$lang['rdn_field_blank'] = 'Pozostawiłeś/aś puste pole RDN.';
$lang['container_does_not_exist'] = 'Kontener który określiłeś/aś (%s) nie istnieje. Spróbuj ponownie.';
$lang['no_objectclasses_selected'] = 'Nie wybrałeś/aś żadnych Klas Obiektu dla tego obiektu. Wróć proszę i zrób to.';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybrać co najmniej jedną strukturalną klasę obiektu (wyróżnioną pogrubieniem)';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybrać dokładnie jedną strukturalną klasę obiektu (wyróżnioną pogrubieniem)';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serwerze';
$lang['ctemplate_no_template'] = 'Brak określenia szablonu w zmiennych POST.';
$lang['ctemplate_config_handler'] = 'Twoja konfiguracja określa handler';
$lang['ctemplate_handler_does_not_exist'] = 'dla tego szablonu. Ale, ten handler nie istnieje w szablonach/tworzonym katalogu';
$lang['template_not_readable'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale tego pliku nie da się odczytać, ponieważ uprawnienia są zbyt restrykcyjne.';
$lang['template_does_not_exist'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale pliku obsługi nie ma w katalogu templates/creation.';
$lang['create_step1'] = 'Krok 1 z 2: Nazwa i klasa/y obiektu';
$lang['create_step2'] = 'Krok 2 z 2: Określenie atrybutów i wartości';
$lang['relative_distinguished_name'] = 'Relatywna Wyróżniona Nazwa (RDN)';
@@ -350,7 +357,7 @@ $lang['ends with'] = 'kończy się na';
$lang['sounds like'] = 'brzmi jak';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nie można uzyskać informacji od serwera LDAP';
$lang['could_not_fetch_server_info'] = 'Nie można uzyskać informacji od serwera LDAP. Może to być spowodowane <a href="http://bugs.php.net/bug.php?id=29587">błędem</a> w Twojej wersji PHP albo na przykład tym, że Twój serwer LDAP posiada listę kontroli dostępu nie zezwalającą na pobranie RootDSE klientom LDAP';
$lang['server_info_for'] = 'Informacja o serwerze: ';
$lang['server_reports_following'] = 'Serwer zwrócił następujące informacje o sobie';
$lang['nothing_to_report'] = 'Ten serwer nie chce nic powiedzieć o sobie :).';
@@ -369,24 +376,30 @@ $lang['commit'] = 'Zatwierdź';
$lang['cancel'] = 'Anuluj';
$lang['you_made_no_changes'] = 'Nie dokonano żadnych zmian';
$lang['go_back'] = 'Powrót';
$lang['unable_create_samba_pass'] = 'Nie można utworzyć hasła dla samby. Sprawdź proszę swoją konfigurację w template_config.php';
// welcome.php
$lang['welcome_note'] = 'Użyj menu z lewej strony do nawigacji';
$lang['credits'] = 'Lista płac';
$lang['changelog'] = 'Historia zmian';
$lang['donate'] = 'Wesprzyj projekt';
$lang['purge_cache'] = 'Wyczyść pamięć podręczną';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Aby wesprzeć projekt phpLDAPadmin skorzystaj z jednego z przycisków PayPal umieszczonych poniżej';
$lang['donate_amount'] = 'Wesprzyj kwotą %s';
$lang['purge_cache'] = 'Wyczyść cache';
$lang['no_cache_to_purge'] = 'Nie ma czego czyścić.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamięci podręcznej.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamięci podręcznej (cache).';
$lang['purge_cache_tooltip'] = 'Czyści wszystkie dane podręczne (cache) w phpLDAPadmin, łącznie ze schematami serwera';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Niebezpieczna nazwa pliku: ';
$lang['no_such_file'] = 'Nie znaleziono pliku: ';
//function.php
$lang['auto_update_not_setup'] = 'Zezwoliłeś/aś na automatyczne nadawanie uid (auto_uid_numbers)
dla <b>%s</b> w konfiguracji, ale nie określiłeś/aś mechanizmu
(auto_uid_number_mechanism). Proszę skorygować ten problem.';
$lang['auto_update_not_setup'] = 'Zezwoliłeś/aś na automatyczne nadawanie uid (auto_uid_numbers) dla <b>%s</b> w konfiguracji, ale nie określiłeś/aś mechanizmu (auto_uid_number_mechanism). Proszę skorygować ten problem.';
$lang['uidpool_not_set'] = 'Określiłeś/aś mechanizm autonumerowania uid "auto_uid_number_mechanism" jako "uidpool" w konfiguracji Twojego serwera <b>%s</b>, lecz nie określiłeś/aś audo_uid_number_uid_pool_dn. Proszę określ to zanim przejdziesz dalej.';
$lang['uidpool_not_exist'] = 'Wygląda na to, że uidPool, którą określiłeś/aś w Twojej konfiguracji ("%s") nie istnieje.';
$lang['specified_uidpool'] = 'Określiłeś/aś "auto_uid_number_mechanism" jako "search" w konfiguracji Twojego serwera <b>%s</b>, ale nie określiłeś/aś bazy "auto_uid_number_search_base". Zrób to zanim przejdziesz dalej.';
@@ -402,15 +415,15 @@ $lang['could_not_bind_anon'] = 'Nie można anonimowo podłączyć do serwera.';
$lang['could_not_bind'] = 'Nie można podłączyć się do serwera LDAP.';
$lang['anonymous_bind'] = 'Podłączenie anonimowe';
$lang['bad_user_name_or_password'] = 'Zła nazwa użytkownika lub hasło. Spróbuj ponownie.';
$lang['redirecting_click_if_nothing_happens'] = 'Przekierowuję... Kliknij tutaj jeśli nic się nie dzieje.';
$lang['successfully_logged_in_to_server'] = 'Pomyślnie zalogowano do serwera <b>%s</b>';
$lang['could_not_set_cookie'] = 'Nie można ustawić ciasteczka (cookie).';
$lang['ldap_said'] = 'LDAP odpowiedział: %s';
$lang['ferror_error'] = 'Błąd';
$lang['fbrowse'] = 'przeglądaj';
$lang['delete_photo'] = 'Usuń fotografię';
$lang['install_not_support_blowfish'] = 'Twoja instalacja PHP nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja instalacja PHP nie wspiera szyfrowania md5crypt.';
$lang['install_not_support_ext_des'] = 'Twoja systemowa biblioteka crypt nie wspiera rozszerzonego szyfrowania DES';
$lang['install_not_support_blowfish'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania md5crypt.';
$lang['install_no_mash'] = 'Twoja instalacja PHP nie posiada funkcji mhash(). Nie mogę tworzyć haszy SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto zawiera błędy<br />';
$lang['ferror_number'] = 'Błąd numer: %s (%s)';
@@ -442,7 +455,6 @@ $lang['ferror_congrats_found_bug'] = 'Gratulacje ! Znalazłeś błąd w phpLDAPa
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importuj plik LDIF';
$lang['select_ldif_file'] = 'Wybierz plik LDIF:';
$lang['select_ldif_file_proceed'] = 'Dalej &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Nie zatrzymuj się po napotkaniu błędów';
//ldif_import
@@ -453,7 +465,7 @@ $lang['modify_action'] = 'Modyfikowanie...';
$lang['warning_no_ldif_version_found'] = 'Nie znaleziono numeru wersji. Przyjmuję 1.';
$lang['valid_dn_line_required'] = 'Wymagana jest poprawna linia DN.';
$lang['missing_uploaded_file'] = 'Brak wgrywanego pliku.';
$lang['no_ldif_file_specified.'] = 'Nie określono pliku LDIF. Spróbuj ponownie.';
$lang['no_ldif_file_specified'] = 'Nie określono pliku LDIF. Spróbuj ponownie.';
$lang['ldif_file_empty'] = 'Wgrany plik LDIF jest pusty.';
$lang['empty'] = 'pusty';
$lang['file'] = 'Plik';
@@ -489,11 +501,10 @@ $lang['generated_on_date'] = 'Wygenerowane przez phpLDAPadmin ( http://phpldapad
$lang['total_entries'] = 'Łącznie wpisów';
$lang['dsml_export_for_dn'] = 'Eksport DSLM dla: %s';
$lang['include_system_attrs'] = 'Zawiera atrybuty systemowe';
$lang['csv_spreadsheet'] = 'CVS (arkusz)';
// logins
$lang['could_not_find_user'] = 'Nie można znaleźć użytkownika "%s"';
$lang['password_blank'] = 'Pozostawiłeś/aś puste hasło.';
$lang['login_cancelled'] = 'Logowanie anulowane.';
$lang['no_one_logged_in'] = 'Nikt nie jest zalogowany do tego serwera.';
$lang['could_not_logout'] = 'Nie można wylogować.';
$lang['unknown_auth_type'] = 'Nieznany auth_type: %s';
@@ -505,6 +516,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Nazwa użytkownika';
$lang['password'] = 'Hasło';
$lang['authenticate'] = 'Zaloguj';
$lang['login_not_allowed'] = 'Przykro mi, ale nie masz uprawnień aby korzystać z phpLDAPadmin na tym serwerze LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'Wybór wpisu';
@@ -534,15 +546,25 @@ $lang['no_rdn_change'] = 'Nie zmieniłeś/aś RDN';
$lang['invalid_rdn'] = 'Błędna wartość RDN';
$lang['could_not_rename'] = 'Nie można zmienić nazwy wpisu';
// General errors
$lang['mismatched_search_attr_config'] = 'Twoja konfiguracja zawiera błąd. $search_attributes musi posiadać tą samą ilość atrybutów co $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Hasła zgodne !';
$lang['passwords_do_not_match'] = 'Hasła nie zgadzają się !';
$lang['password_checker_tool'] = 'Narzędzie do sprawdzania haseł';
$lang['compare'] = 'Porównaj';
$lang['to'] = 'Do';
// Templates
$lang['using'] = 'Używając';
$lang['template'] = 'szablonu';
$lang['switch_to'] = 'Możesz przełączyć się do ';
$lang['default_template'] = 'domyślnego szablonu';
// template_config
$lang['user_account'] = 'Konto Użytkownika (posixAccount)';
$lang['address_book'] = 'Wpis Książki Adresowej (inetOrgPerson)';
$lang['address_book_inet'] = 'Wpis Książki Adresowej (inetOrgPerson)';
$lang['address_book_moz'] = 'Wpis Książki Adresowej (mozillaOrgPerson)';
$lang['kolab_user'] = 'Wpis Użytkownika Kolab';
$lang['organizational_unit'] = 'Jednostka Organizacyjna';
$lang['organizational_role'] = 'Rola w Organizacji';
@@ -557,6 +579,12 @@ $lang['simple_sec_object'] = 'Prosty obiekt bezpieczeństwa (SSO)';
$lang['courier_mail_account'] = 'Konto Pocztowe w Courier';
$lang['courier_mail_alias'] = 'Alias Pocztowy w Courier';
$lang['ldap_alias'] = 'Alias w LDAP';
$lang['sendmail_cluster'] = 'Klaster Sendmail';
$lang['sendmail_domain'] = 'Domena Sendmail';
$lang['sendmail_alias'] = 'Alias Sendmail';
$lang['sendmail_virt_dom'] = 'Wirtualna Domena Sendmail';
$lang['sendmail_virt_users'] = 'Wirtualni Użytkownicy Sendmail';
$lang['sendmail_relays'] = 'Sendmail Relays';
$lang['custom'] = 'Ogólne';
$lang['samba_domain_name'] = 'Moja nazwa domeny w Samba';
$lang['administrators'] = 'Administratorzy';
@@ -569,6 +597,10 @@ $lang['print_ops'] = 'Operatorzy drukowania';
$lang['backup_ops'] = 'Operatorzy archiwizacji danych';
$lang['replicator'] = 'Replikator';
$lang['unable_smb_passwords'] = ' Nie można utworzyć haseł Samba. Proszę sprawdzić konfigurację w template_config.php';
$lang['err_smb_conf'] = 'Błąd: masz błąd w konfiguracji samby';
$lang['err_smb_no_name_sid'] = 'Błąd: musisz wprowadzić nazwę oraz sid dla Twojej domeny samby.';
$lang['err_smb_no_name'] = 'Błąd: brak nazwy dla domeny samby.';
$lang['err_smb_no_sid'] = 'Błąd: brak sid dla domeny samby';
// Samba Account Template
$lang['samba_account'] = 'Konto Samba';
@@ -580,6 +612,8 @@ $lang['t_hint_customize'] = 'Wskazówka: Aby dostosować ten szablon, wyedytuj p
$lang['t_name'] = 'Nazwa/Nazwisko';
$lang['t_first_name'] = 'Imię';
$lang['t_last_name'] = 'Nazwisko';
$lang['t_first'] = 'imię';
$lang['t_last'] = 'nazwisko';
$lang['t_common_name'] = 'Nazwa';
$lang['t_user_name'] = 'Nazwa użytkownika';
$lang['t_password'] = 'Hasło';
@@ -614,4 +648,25 @@ $lang['t_err_cn_blank'] = 'Nie możesz pozostawić pustego pola Nazwa. Wróć i
$lang['t_confim_creation'] = 'Potwierdź utworzenie wpisu:';
$lang['t_create_address'] = 'Utwórz adres';
// default template
$lang['t_check_pass'] = 'Sprawdź hasło';
// compare form
$lang['compare'] = 'Porównaj';
$lang['comparing'] = 'Porównuję następujące DN';
$lang['compare_dn'] = 'Porównaj inny DN z';
$lang['with'] = 'z';
$lang['compf_source_dn'] = 'Źródłowa DN';
$lang['compf_dn_tooltip'] = 'Prównaj tą DN z inną';
$lang['switch_entry'] = 'Zamień wpisy';
$lang['no_value'] = 'Brak wartości';
$lang['compare_with'] = 'Porównaj z innym wpisem';
$lang['need_oclass'] = 'Musisz posiadać jedną z następujących klas obiektów, aby dodać ten atrybut %s ';
// Time out page
$lang['session_timed_out_1'] = 'Twoja sesja wygaśnie po';
$lang['session_timed_out_2'] = 'min. nieaktywności. Zostaniesz automatycznie wylogowany/a.';
$lang['log_back_in'] = 'Aby się zalogować ponownie kliknij w następujący link:';
$lang['session_timed_out_tree'] = '(Sesja wygasła. Automatycznie wylogowano)';
$lang['timeout_at'] = 'Brak aktywności wyloguje Cię o %s';
?>

720
lang/recoded/zh-cn.php Normal file
View File

@@ -0,0 +1,720 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/zh-cn.php,v 1.3 2005/04/05 07:33:23 wurley Exp $
// Translate to Simplified Chinese, by <20><>ѩƽ(heromyth), from zxpmyth@yahoo.com.cn
// Based on en.php,v 1.119 2005/03/16 20:57:45
/*
ʹ<><CAB9>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>utf-8<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷŵ<D9B7>lang/recodedĿ¼<C4BF>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>ļ<EFBFBD>lang/auto.php<68><70>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2>
1<><31><EFBFBD>޸ĵ<DEB8>7<EFBFBD><37>Ϊ<EFBFBD><CEAA>
$useLang="zh-cn";
2<><32><EFBFBD><EFBFBD>31<33>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>У<EFBFBD>
," zh-cn"=>"zh-cn" //Simplified Chinese
*/
/* --- <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> ---
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBDA8>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB>SourceForge<67><65>
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* <20><>ʹ<EFBFBD>õײ<C3B5><D7B2><EFBFBD>ѡ<EFBFBD><D1A1>"Check to Upload and Attach a File<6C><65><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
*
* <20>Ķ<EFBFBD>doc/README-translation.txt <20><><EFBFBD>Եõ<D4B5><C3B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
*
* лл<D0BB><D0BB>
*
*/
/*
* <20><><EFBFBD><EFBFBD>$lang <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin <20><>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><E5B4AE>
* ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
* <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
*/
// Search form
$lang['simple_search_form_str'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['advanced_search_form_str '] = '<27>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['server'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['search_for_entries_whose'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['base_dn'] = '<27><><EFBFBD><EFBFBD>DN';
$lang['search_scope'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ';
$lang['show_attributes'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>';
//$lang['attributes'] = '<27><><EFBFBD><EFBFBD>';
$lang['Search'] = '<27><><EFBFBD><EFBFBD>';
$lang['predefined_search_str'] = 'ѡ<><D1A1>һ<EFBFBD><D2BB>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['predefined_searches'] = <><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_predefined_queries'] = '<27><>config.php<68><70>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>塣';
$lang['export_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['unrecoginzed_search_result_format'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD> %s';
$lang['format'] = '<27><>ʽ';
$lang['list'] = '<27>б<EFBFBD>';
$lang['table'] = '<27><><EFBFBD><EFBFBD>';
$lang['bad_search_display'] = '<27><><EFBFBD><EFBFBD>config.php <20><>$default_search_displayָ<79><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ֵ<EFBFBD><D6B5> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['page_n'] = '<27><>%dҳ';
$lang['no_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// Tree browser
$lang['request_new_feature'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['report_bug'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©';
$lang['schema'] = '<27><>ʽ';
$lang['search'] = '<27><><EFBFBD><EFBFBD>';
$lang['create'] = '<27><><EFBFBD><EFBFBD>';
$lang['info'] = '<27><>Ϣ';
$lang['import'] = '<27><><EFBFBD><EFBFBD>';
$lang['refresh'] = <><CBA2>';
$lang['logout'] = '<27>˳<EFBFBD>';
$lang['create_new'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['view_schema_for'] = '<27><EFBFBD><E9BFB4>ʽ';
$lang['refresh_expanded_containers'] = <><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['create_new_entry_on'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['new'] = '<27>½<EFBFBD>';
$lang['view_server_info'] = '<27><EFBFBD><E9BFB4><EFBFBD>ӵķ<D3B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ';
$lang['import_from_ldif'] = '<27><>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['logout_of_this_server'] = '<27>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['logged_in_as'] = '<27><>¼Ϊ<C2BC><CEAA> ';
$lang['this_base_dn_is_not_valid'] = '<27><>DN<44><4E><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>';
$lang['this_base_dn_does_not_exist'] = '<27><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['read_only'] = <><D6BB>';
$lang['read_only_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>phpLDAPadmin <20><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ʶΪֻ<CEAA><D6BB>';
$lang['could_not_determine_root'] = '<27><><EFBFBD><EFBFBD><E2B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>';
$lang['ldap_refuses_to_give_root'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><C2B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>';
$lang['please_specify_in_config'] = '<27><><EFBFBD><EFBFBD>config.php<68><70>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>';
$lang['create_new_entry_in'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['login_link'] = '<27><>¼<EFBFBD><C2BC>';
$lang['login'] = '<27><>¼';
$lang['base_entry_does_not_exist'] = '<27>û<EFBFBD>׼<EFBFBD><D7BC>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['create_it'] = <><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// Entry display
$lang['delete_this_entry'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['delete_this_entry_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʾҪ<CABE><D2AA>ȷ<EFBFBD>ϸ<EFBFBD>ѡ<EFBFBD><D1A1>';
$lang['copy_this_entry'] = '<27><><EFBFBD>ƺ<EFBFBD><C6BA>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['copy_this_entry_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD>ã<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>DN<44><4E><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['export'] = '<27><><EFBFBD><EFBFBD>';
$lang['export_lcase'] = '<27><><EFBFBD><EFBFBD>';
$lang['export_tooltip'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>';
$lang['export_subtree_tooltip'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ӵĵ<D3B5><C4B5><EFBFBD>';
$lang['export_subtree'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['create_a_child_entry'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['rename_entry'] = '<27><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['rename'] = '<27><><EFBFBD><EFBFBD>';
$lang['add'] = '<27><><EFBFBD><EFBFBD>';
$lang['view'] = '<27>鿴';
$lang['view_one_child'] = '<27>鿴1<E9BFB4><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['view_children'] = '<27>鿴%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['add_new_attribute'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_new_objectclass'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ObjectClass';
$lang['hide_internal_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['show_internal_attrs'] = '<27><>ʾ<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['attr_name_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\'%s\'<27>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
$lang['none'] = 'ʲô<CAB2><C3B4>û<EFBFBD><C3BB>';
$lang['no_internal_attributes'] = <><C3BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_attributes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['save_changes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_value'] = '<27><>ֵ';
$lang['add_value_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\'%s\'<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ֵ';
$lang['refresh_entry'] = <><CBA2>';
$lang['refresh_this_entry'] = <><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['delete_hint'] = '<27><>ʾ<EFBFBD><CABE> <20><>Ҫɾ<D2AA><C9BE>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD>ı<EFBFBD><C4B1>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>գ<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>档';
$lang['attr_schema_hint'] = '<27><>ʾ<EFBFBD><CABE> Ҫ<>һ<E9BFB4><D2BB><EFBFBD><EFBFBD><EFBFBD>Եĸ<D4B5>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD>ơ<EFBFBD>';
$lang['attrs_modified'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>(%s) <20><><EFBFBD>޸<EFBFBD><DEB8>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['attr_modified'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s) <20><><EFBFBD>޸<EFBFBD><DEB8>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD>';
$lang['viewing_read_only'] = '<27><>ֻ<EFBFBD><D6BB>ģʽ<C4A3><EFBFBD><E9BFB4>Ŀ<EFBFBD><C4BF>';
$lang['no_new_attrs_available'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_new_binary_attrs_available'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD>µĶ<C2B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['binary_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
$lang['add_new_binary_attr'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µĶ<C2B5><C4B6><EFBFBD><EFBFBD><EFBFBD>ֵ';
$lang['alias_for'] = <>⣺ \'%s\'<27><>\'%s\'<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['required_for'] = 'objectClass(es) %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['download_value'] = '<27><><EFBFBD><EFBFBD>ֵ';
$lang['delete_attribute'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['true'] = '<27><><EFBFBD><EFBFBD>';
$lang['false'] = '<27>ٵ<EFBFBD>';
$lang['none_remove_value'] = 'ʲô<CAB2><C3B4>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD>ֵ<EFBFBD>Ƴ<EFBFBD>';
$lang['really_delete_attribute'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_new_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ֵ';
// Schema browser
//$lang['the_following_objectclasses'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClasses<65><73>';
//$lang['the_following_attributes'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>';
//$lang['the_following_matching'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['the_following_syntaxes'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['schema_retrieve_error_1']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ֧<C8AB><D6A7>LDAP Э<>顣';
$lang['schema_retrieve_error_2']='<27><><EFBFBD><EFBFBD>PHP<48><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD>ѯ<EFBFBD><D1AF>';
$lang['schema_retrieve_error_3']='phpLDAPadmin<69><6E>֪<EFBFBD><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD><CABD>';
$lang['schema_retrieve_error_4']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>';
$lang['jump_to_objectclass'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB>objectClass';
$lang['view_schema_for_oclass'] = '<27><EFBFBD><E9BFB4>objectClass<73>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
$lang['jump_to_attr'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['jump_to_matching_rule'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB>ƥ<EFBFBD><C6A5><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>';
$lang['schema_for_server'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ';
$lang['required_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['required'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['optional_attrs'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['optional_binary_attrs'] = '<27><>ѡ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['OID'] = 'OID';
$lang['aliases']='<27><><EFBFBD><EFBFBD>';
$lang['desc'] = '<27><><EFBFBD><EFBFBD>';
$lang['no_description']=<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['name'] = '<27><><EFBFBD><EFBFBD>';
$lang['equality']='<27><><EFBFBD><EFBFBD>';
$lang['is_obsolete'] = '<27><>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>';
$lang['inherits'] = '<27>̳<EFBFBD><CCB3><EFBFBD>';
$lang['inherited_from'] = '<27><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD>';
$lang['parent_to'] = <><CBAB>ָ<EFBFBD><D6B8>';
$lang['jump_to_this_oclass'] = '<27><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>objectClass<73>Ķ<EFBFBD><C4B6>崦';
$lang['matching_rule_oid'] = <><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID';
$lang['syntax_oid'] = '<27><EFBFBD><EFB7A8><EFBFBD><EFBFBD>OID';
$lang['not_applicable'] = '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>';
$lang['not_specified'] = 'δָ<CEB4><D6B8><EFBFBD><EFBFBD>';
$lang['character']='<27><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>';
$lang['characters']='<27><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>';
$lang['used_by_objectclasses']='<27><>objectClasses<65><73>ʹ<EFBFBD>õ<EFBFBD>';
$lang['used_by_attributes']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>';
$lang['maximum_length']='<27><><EFBFBD>󳤶<EFBFBD>';
$lang['attribute_types']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['syntaxes']='<27><EFBFBD><EFB7A8><EFBFBD><EFBFBD>';
$lang['matchingrules']=<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['oid']='OID';
$lang['obsolete']='<27><><EFBFBD>ϵ<EFBFBD>';
$lang['ordering']='<27><><EFBFBD><EFBFBD>';
$lang['substring_rule']='<27>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>';
$lang['single_valued']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>';
$lang['collective']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['user_modification']='<27>û<EFBFBD><C3BB>޸<EFBFBD>';
$lang['usage']='ʹ<>ø<EFBFBD>ʽ';
$lang['could_not_retrieve_schema_from']='<27><><EFBFBD><EFBFBD><EFBFBD>һظ<D2BB>ʽ<EFBFBD>ĵط<C4B5>';
$lang['type']='<27><><EFBFBD><EFBFBD>';
$lang['no_such_schema_item'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD><CABD>Ŀ<EFBFBD><C4BF> "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = '<27>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s<><73>';
$lang['you_must_specify_a_dn'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>һ<EFBFBD><D2BB>DN';
$lang['could_not_delete_entry'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> %s';
$lang['no_such_entry'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> %s';
$lang['delete_dn'] = <><C9BE><EFBFBD><EFBFBD>%s';
$lang['permanently_delete_children'] = 'ҲҪ<D2B2><D2AA><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['entry_is_root_sub_tree'] = '<27><><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s<><73>';
$lang['view_entries'] = '<27><EFBFBD><E9BFB4>Ŀ';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin<69><6E><EFBFBD>Եݹ<D4B5><DDB9><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>еģ<D0B5>%s<><73> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFB4><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['confirm_recursive_delete_note'] = <>ͣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><C7B1>Σ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻָ<C9BB><D6B8><EFBFBD> һ<><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD>ǵ<EFBFBD>aliases<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> referrals<6C><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顣';
$lang['delete_all_x_objects'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD>еĶ<D0B5><C4B6><EFBFBD><EFBFBD><EFBFBD>%s ';
$lang['recursive_delete_progress'] = '<27>ݹ<EFBFBD>ʽɾ<CABD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['entry_and_sub_tree_deleted_successfully'] = '<27>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['failed_to_delete_entry'] = <><C9BE><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s ʧ<><CAA7>';
$lang['list_of_entries_to_be_deleted'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>';
$lang['sure_permanent_delete_object']=<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = ' <20><>phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD><EFBFBD>ʶΪֻ<CEAA><D6BB><EFBFBD><EFBFBD>';
$lang['no_attr_specified'] = <><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>';
$lang['no_dn_specified'] = <><C3BB>ָ<EFBFBD><D6B8>DN ';
// Adding attributes
$lang['left_attr_blank'] = '<27><><EFBFBD><EFBFBD>ֵΪ<D6B5>հס<D5B0> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['failed_to_add_attr'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>';
$lang['file_empty'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>Ϊ<EFBFBD>ջ򲻴<D5BB><F2B2BBB4>ڡ<EFBFBD> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['invalid_file'] = '<27><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>ڰ<EFBFBD>ȫΣ<C8AB>ա<EFBFBD>';
$lang['warning_file_uploads_disabled'] = '<27><><EFBFBD><EFBFBD>PHP<48><50><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>php.ini<6E><69>';
$lang['uploaded_file_too_big'] = '<27><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>php.ini<6E>е<EFBFBD>upload_max_size <20><><EFBFBD><EFBFBD>';
$lang['uploaded_file_partial'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ʡ<EFBFBD>';
$lang['max_file_size'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ߴ磺 %s';
// Updating values
$lang['modification_successful'] = '<27>ɹ<EFBFBD><C9B9>޸ģ<DEB8>';
$lang['change_password_new_login'] = '<27><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>¼<EFBFBD><C2BC>';
// Adding objectClass form
$lang['new_required_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['requires_to_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['new_attributes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['new_required_attrs_instructions'] = <><D6B8><EFBFBD><EFBFBD> Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClass <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>';
$lang['that_this_oclass_requires'] = '<27><><EFBFBD><EFBFBD>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>';
$lang['add_oclass_and_attrs'] = '<27><><EFBFBD><EFBFBD>ObjectClass <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['objectclasses'] = 'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>η<EFBFBD>ʽѡ<CABD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ŀ(DN) ';
$lang['no_updates_in_read_only_mode'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>';
$lang['bad_server_id'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>id';
$lang['not_enough_login_info'] = <><C3BB><EFBFBD><EFBFBD><E3B9BB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['could_not_connect'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_connect_to_host_on_port'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>"%s" <20><>"%s"<22>˿<EFBFBD>';
$lang['could_not_perform_ldap_mod_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ldap_mod_add <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['bad_server_id_underline'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>server_id<69><64>';
$lang['home'] = '<27><>ҳ';
$lang['help'] = '<27><><EFBFBD><EFBFBD>';
$lang['success'] = '<27>ɹ<EFBFBD>';
$lang['server_colon_pare'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['look_in'] = '<27><><EFBFBD>ڲ鿴<DAB2><E9BFB4>';
//$lang['missing_server_id_in_query_string'] = '<27>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44>';
$lang['missing_dn_in_query_string'] = '<27>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>DN<44><4E>';
$lang['back_up_p'] = '<27><><EFBFBD><EFBFBD>...';
$lang['no_entries'] = <><C3BB><EFBFBD><EFBFBD>Ŀ';
//$lang['not_logged_in'] = 'û<>е<EFBFBD>¼';
$lang['could_not_det_base_dn'] = '<27><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>base DN<44><4E><EFBFBD><EFBFBD>DN<44><4E>';
//$lang['please_report_this_as_a_bug']='<27><EFBFBD><EBB1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©<EFBFBD><C2A9>';
$lang['reasons_for_error']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>ܵ<EFBFBD><DCB5>ǣ<EFBFBD>';
$lang['yes']='<27><>';
$lang['no']='<27><>';
$lang['go']='<27><>ʼ';
$lang['delete']=<><C9BE>';
$lang['back']='<27><><EFBFBD><EFBFBD>';
$lang['object']='<27><><EFBFBD><EFBFBD>';
$lang['delete_all']=<><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>';
//$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = '<27><>ʾ';
$lang['bug'] = '<27><>©';
$lang['warning'] = '<27><><EFBFBD><EFBFBD>';
$lang['light'] = 'light'; // <20><><EFBFBD><EFBFBD>'light' <20><><EFBFBD><EFBFBD> 'light bulb<6C><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>'
$lang['proceed_gt'] = '<27><><EFBFBD><EFBFBD> &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin<69><6E><EFBFBD>ܰ<EFBFBD>ȫ<EFBFBD>ؼ<EFBFBD><D8BC>ܺͽ<DCBA><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>config.php<68><70>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$blowfish_secret<65><74><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>༭config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$blowfish_secretΪij<CEAA><C4B3><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>';
$lang['jpeg_dir_not_writable'] = '<27><><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>config.php<68><EFBFBD><EFA3AC>$jpeg_temp_dir<69><72><EFBFBD>õ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>Ŀ¼';
$lang['jpeg_dir_not_writable_error'] = '<27><><EFBFBD>ܽ<EFBFBD>%sд<73><D0B4>$jpeg_temp_dirĿ¼<C4BF><C2BC><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>web<65><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['jpeg_unable_toget'] = '<27><><EFBFBD>ܴ<EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD>jpeg<65><67><EFBFBD>ݡ<EFBFBD>';
$lang['jpeg_delete'] = <><C9BE>ͼƬ';
// Add value form
$lang['add_new'] = '<27><><EFBFBD><EFBFBD>';
$lang['value_to'] = '<27><>ֵ<EFBFBD><D6B5>';
$lang['distinguished_name'] = <><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DN<44><4E>';
$lang['current_list_of'] = '<27><>ǰ<EFBFBD>б<EFBFBD>';
$lang['values_for_attribute'] = '<27><><EFBFBD><EFBFBD>ֵ';
$lang['inappropriate_matching_note'] = <>ͣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EQUALITY <20><><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD>"inappropriate matching<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ƥ<EFBFBD>䣩"<22><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>';
$lang['enter_value_to_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ֵ<EFBFBD><D6B5>';
$lang['new_required_attrs_note'] = <>ͣ<EFBFBD> <20><><EFBFBD>ܻ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['syntax'] = '<27><><EFBFBD><EFBFBD>';
//copy.php
$lang['copy_server_read_only'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>';
$lang['copy_dest_dn_blank'] = ' Ŀ<><C4BF>DN<44><4E>Ϊ<EFBFBD>ա<EFBFBD>';
$lang['copy_dest_already_exists'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD>Ŀ (%s) <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['copy_dest_container_does_not_exist'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%s) <20><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['copy_source_dest_dn_same'] = <><D4B4>Ŀ<EFBFBD><C4BF>DN <20><>ͬ<EFBFBD><CDAC>';
$lang['copy_copying'] = '<27><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> ';
$lang['copy_recursive_copy_progress'] = '<27>ݹ<EFBFBD><DDB9>ָ<EFBFBD><D6B8>ƹ<EFBFBD><C6B9><EFBFBD>';
$lang['copy_building_snapshot'] = '<27><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ա<EFBFBD> ';
$lang['copy_successful_like_to'] = '<27><><EFBFBD>Ƴɹ<C6B3><C9B9><EFBFBD> <20><EFBFBD><E3BBB9>Ҫ ';
$lang['copy_view_new_entry'] = '<27><EFBFBD><E9BFB4><EFBFBD><EFBFBD>Ŀ';
$lang['copy_failed'] = '<27><><EFBFBD><EFBFBD>DN<44><4E><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD> ';
//edit.php
$lang['missing_template_file'] = '<27><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>';
$lang['using_default'] = 'ʹ<><CAB9>Ĭ<EFBFBD>ϵġ<CFB5>';
$lang['template'] = '<27><><EFBFBD><EFBFBD>';
$lang['must_choose_template'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['invalid_template'] = '%s <20><>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['using_template'] = 'ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['go_to_dn'] = <><D7AA> %s';
$lang['structural_object_class_cannot_remove'] = '<27><><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><E1B9B9><EFBFBD><EFBFBD>ObjectClass<73><73><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>';
$lang['structural'] = '<27><EFBFBD><E1B9B9>';
//copy_form.php
$lang['copyf_title_copy'] = '<27><><EFBFBD><EFBFBD>';
$lang['copyf_to_new_object'] = '<27><>Ϊһ<CEAA><D2BB><EFBFBD>µĶ<C2B5><C4B6><EFBFBD>';
$lang['copyf_dest_dn'] = 'Ŀ<><C4BF>DN';
$lang['copyf_dest_dn_tooltip'] = '<27>ڸ<EFBFBD><DAB8>Ƹ<EFBFBD>Դ<EFBFBD><D4B4>Ŀʱ<C4BF><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DN ';
$lang['copyf_dest_server'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['copyf_note'] = '<27><>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><E4B8B4>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>"schema<6D><61><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ͻ"';
$lang['copyf_recursive_copy'] = '<27><><EFBFBD>⻹Ҫ<E2BBB9>ݹ鸴<DDB9>ƴ˶<C6B4><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>';
$lang['recursive_copy'] = '<27>ݹ鸴<DDB9><E9B8B4>';
$lang['filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['search_filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['filter_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ݹ鸴<DDB9><E9B8B4>ʱ<EFBFBD><CAB1>ֻ<EFBFBD><EFBFBD><E1B8B4><EFBFBD><EFBFBD>Щƥ<D0A9><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['delete_after_copy'] = '<27><><EFBFBD>ƺ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['delete_after_copy_warn'] = <><C8B7><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3A9>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>Ӽ<EFBFBD>¼<EFBFBD><C2BC>';
//create.php
$lang['create_required_attribute'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s)<29><>ֵΪ<D6B5>հס<D5B0>';
$lang['redirecting'] = '<27>ض<EFBFBD><D8B6><EFBFBD>...';
$lang['here'] = '<27><><EFBFBD><EFBFBD>';
$lang['create_could_not_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹö<D3B8><C3B6><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//create_form.php
$lang['createf_create_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['createf_choose_temp'] = 'ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['createf_select_temp'] = 'ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>';
$lang['save_as_file'] = '<27><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD>';
$lang['rdn_field_blank'] = 'RDN<44><4E>Ϊ<EFBFBD>հס<D5B0>';
$lang['container_does_not_exist'] = '<27><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>(%s)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['no_objectclasses_selected'] = '<27><>û<EFBFBD><C3BB>Ϊ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>κ<EFBFBD>ObjectClasses<65><73> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['hint_structural_oclass'] = '<27><>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>objectClass (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>)';
//creation_template.php
$lang['ctemplate_on_server'] = '<27>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ctemplate_no_template'] = '<27><>POST<53><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>塣';
$lang['template_not_readable'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϊ<EFBFBD><CEAA>ֹȨ<D6B9><C8A8>̫<EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD>';
$lang['template_does_not_exist'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>ֱ<EFBFBD><D6B1><EFBFBD>templates/creation Ŀ¼<C4BF>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['create_step1'] = '<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> Name <20><> ObjectClass(es)';
$lang['create_step2'] = '<27>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD> ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD>ֵ';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name<6D><65><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(<28><><EFBFBD>磺 cn=MyNewPerson)';
$lang['container'] = 'Container<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// search.php
$lang['you_have_not_logged_into_server'] = '<27>㻹û<E3BBB9>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['click_to_go_to_login_form'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>';
$lang['unrecognized_criteria_option'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>criteria<69><61><EFBFBD><EFBFBD>׼<EFBFBD><D7BC>ѡ<EFBFBD> ';
$lang['if_you_want_to_add_criteria'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>criteria <20><><EFBFBD>б<EFBFBD><D0B1><20>ǵñ༭search.php <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD> <20>˳<EFBFBD><CBB3><EFBFBD>';
$lang['entries_found'] = '<27>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> ';
$lang['filter_performed'] = <><D3A6><EFBFBD>˵Ĺ<CBB5><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ';
$lang['search_duration'] = 'phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ';
$lang['seconds'] = '<27><>';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ';
$lang['scope_sub'] = 'Sub (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)';
$lang['scope_one'] = 'One (base֮<65>µ<EFBFBD>һ<EFBFBD><D2BB>)';
$lang['scope_base'] = 'Base (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>base dn)';
$lang['standard_ldap_search_filter'] = '<27><>׼<EFBFBD><D7BC>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>磺 (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['list_of_attrs_to_display_in_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>(<28>Զ<EFBFBD><D4B6>Ÿ<EFBFBD><C5B8><EFBFBD>)';
//$lang['show_attributes'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>';
// search_form_simple.php
//$lang['search_for_entries_whose'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['equals'] = '<27><><EFBFBD><EFBFBD>';
$lang['starts with'] = '<27><>ʼ<EFBFBD><CABC>';
$lang['contains'] = '<27><><EFBFBD><EFBFBD>';
$lang['ends with'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['sounds like'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// server_info.php
$lang['could_not_fetch_server_info'] = '<27><><EFBFBD>ܴӷ<DCB4><D3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>LDAP<41><50>Ϣ<EFBFBD><CFA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>PHP<48><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><a href="http://bugs.php.net/bug.php?id=29587"><3E><>©</a><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>"<22><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>"<22><>ֹLDAP<41>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7><EFBFBD>RootDSE<53><45>';
$lang['server_info_for'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> ';
$lang['server_reports_following'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>Ϣ';
$lang['nothing_to_report'] = '<27>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ϣ<EFBFBD><CFA2>';
//update.php
$lang['update_array_malformed'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>update_array<61><79> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69>Ĵ<EFBFBD>©<EFBFBD><C2A9> <20><EFBFBD>档';
$lang['could_not_perform_ldap_modify'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ldap_modify <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD>';
$lang['attribute'] = '<27><><EFBFBD><EFBFBD>';
$lang['old_value'] = '<27><>ֵ';
$lang['new_value'] = '<27><>ֵ';
$lang['attr_deleted'] = '[ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]';
$lang['commit'] = '<27>ύ';
$lang['cancel'] = <><C8A1>';
$lang['you_made_no_changes'] = '<27><>û<EFBFBD>н<EFBFBD><D0BD>и<EFBFBD><D0B8><EFBFBD>';
$lang['go_back'] = '<27><><EFBFBD><EFBFBD>';
$lang['unable_create_samba_pass'] = '<27><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>samba<62><61><EFBFBD><EFBFBD><EBA1A3><EFBFBD><EFBFBD>template_config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// welcome.php
$lang['welcome_note'] = 'ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>߲˵<DFB2><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['credits'] = '<27><><EFBFBD><EFBFBD>';
$lang['changelog'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼';
$lang['donate'] = '<27><><EFBFBD><EFBFBD>';
$lang['pla_logo'] = 'phpLDAPadmin <20><>ʶ';
// Donate.php
$lang['donation_instructions'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PayPal<61><6C>ť<EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>';
$lang['donate_amount'] = '<27><><EFBFBD><EFBFBD> %s';
//$lang['wish_list_option'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>';
//$lang['wish_list'] = '<27>鿴Dave<76><65>phpLDAPadmin Ը<><D4B8><EFBFBD>б<EFBFBD>';
$lang['purge_cache'] = '<27><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>';
$lang['no_cache_to_purge'] = <>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD>';
$lang['done_purging_caches'] = '<27><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>%s <20><><EFBFBD>ֽڡ<D6BD>';
$lang['purge_cache_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>schema<6D><61><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = '<27><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> ';
$lang['no_such_file'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> ';
//function.php
$lang['auto_update_not_setup'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <b>%s</b> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>auto_uid_numbers<72><73>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>auto_uid_number_mechanism<73><6D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['uidpool_not_set'] = '<27><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>"auto_uid_number_mechanism" Ϊ "uidpool"<22><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>
audo_uid_number_uid_pool_dn<64><6E> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>ǰָ<C7B0><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['uidpool_not_exist'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>("%s")<29><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>uidPool
<20><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['specified_uidpool'] = '<27><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><b>%s<b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>"auto_uid_number_mechanism" Ϊ "search"<22><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>
"auto_uid_number_search_base"<22><> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>ǰָ<C7B0><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['auto_uid_invalid_credential'] = 'ʹ<><CAB9>auto_uid credentials<6C><73><EFBFBD>ܰ󶨵<DCB0><b>%s</b><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['bad_auto_uid_search_base'] = '<27><><EFBFBD><EFBFBD>phpLDAPadmin<69><6E><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%sָ<73><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>auto_uid_search_base ';
$lang['auto_uid_invalid_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϊauto_uid_number_mechanism ("%s")ָ<><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ֵ
<20><> ֻ<><D6BB>"uidpool" <20><> "search" <20>ǺϷ<C7BA><CFB7>ġ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣';
$lang['error_auth_type_config'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$servers<72><73><EFBFBD>ֵ<EFBFBD>auth_type<70><65>ֵΪ \'session\', \'cookie\', and \'config\'<27><> <20><><EFBFBD><EFBFBD>\'%s\'<27><>
<20><><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> ';
$lang['unique_attrs_invalid_credential'] = '<27><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>unique_attrs <20>󶨵<EFBFBD><b>%s</b><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['unique_attr_failed'] = '<27><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><b>%s</b> (<i>%s</i>) <20><> <br><b>%s</b><br><3E><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D6B5><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ŀ<EFBFBD><C4BF><p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><a href=\'%s\'><3E><><EFBFBD><EFBFBD></a> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['php_install_not_supports_tls'] = '<27>㰲װ<E3B0B2><D7B0>PHP <20><>֧<EFBFBD><D6A7>TLS<4C><53>';
$lang['could_not_start_tls'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TLS<4C><53> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['could_not_bind_anon'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_bind'] = '<27><><EFBFBD>ܰ󶨵<DCB0><F3B6A8B5><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['anonymous_bind'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['bad_user_name_or_password'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
//$lang['redirecting_click_if_nothing_happens'] = '<27>ض<EFBFBD><D8B6><EFBFBD>... <20><><EFBFBD><EFBFBD>û<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['successfully_logged_in_to_server'] = '<27>ɹ<EFBFBD><C9B9><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><b>%s</b>';
$lang['could_not_set_cookie'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cookie<69><65>';
$lang['ldap_said'] = 'LDAP˵<50><CBB5> %s';
$lang['ferror_error'] = '<27><><EFBFBD><EFBFBD>';
$lang['fbrowse'] = '<27><><EFBFBD><EFBFBD>';
$lang['delete_photo'] = <><C9BE>ͼƬ';
//$lang['install_not_support_blowfish'] = '<27>㰲װ<E3B0B2><D7B0>PHP<48><50>֧<EFBFBD><D6A7>blowfish <20><><EFBFBD>ܡ<EFBFBD>';
//$lang['install_not_support_md5crypt'] = '<27>㰲װ<E3B0B2><D7B0>PHP<48><50>֧<EFBFBD><D6A7> md5crypt <20><><EFBFBD>ܡ<EFBFBD>';
//$lang['install_no_mash'] = '<27>㰲װ<E3B0B2><D7B0>PHPû<50><C3BB>mhash() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>SHA<48><41>ϣ<EFBFBD><CFA3>';
$lang['install_not_support_ext_des'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>DES<45><53><EFBFBD>ܡ<EFBFBD>';
$lang['install_not_support_blowfish'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7>blowfish<73><68><EFBFBD>ܡ<EFBFBD>';
$lang['install_not_support_md5crypt'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7>md5crypt<70><74><EFBFBD>ܡ<EFBFBD>';
$lang['jpeg_contains_errors'] = 'jpegPhoto <20><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><br />';
$lang['ferror_number'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s';
$lang['ferror_discription'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s <br /><br />';
$lang['ferror_number_short'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> %s <br /><br />';
$lang['ferror_discription_short'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ)<br />';
$lang['ferror_submit_bug'] = '<27><><EFBFBD>Ǹ<EFBFBD>phpLDAPadmin <20><>©<EFBFBD><C2A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><a href=\'%s\'><3E><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB></a><3E><>';
$lang['ferror_unrecognized_num'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b><3E><EFBFBD><E3B7A2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>phpLDAPadmin <20><>©<EFBFBD><C2A9></b></td></tr><tr><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td><3E>ļ<EFBFBD><C4BC><EFBFBD></td>
<td><b>%s</b> <20><> <b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> <b>%s</b></td></tr><tr><td><3E><EFBFBD><E6B1BE></td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB1A8><EFBFBD>ô<EFBFBD>©</a><3E><></center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '<27><>ϲ<EFBFBD><20><EFBFBD><E3B7A2><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>©<EFBFBD><C2A9><br /><br />
<table class=\'bug\'>
<tr><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E><><EFBFBD><EFBFBD>:</td><td><b>%s</b></td></tr>
<tr><td><3E>ļ<EFBFBD><C4BC><EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E>У<EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E><><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD></td><td><b>%s</b></td></tr>
<tr><td>PLA <20><EFBFBD><E6B1BE></td><td><b>%s</b></td></tr>
<tr><td>PHP <20><EFBFBD><E6B1BE></td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>PHP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr>
</table>
<br />
<20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©<EFBFBD><C2A9>';
//ldif_import_form
$lang['import_ldif_file_title'] = '<27><><EFBFBD><EFBFBD>LDIF<49>ļ<EFBFBD>';
$lang['select_ldif_file'] = 'ѡ<><D1A1>һ<EFBFBD><D2BB>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['dont_stop_on_errors'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ֹͣ';
//ldif_import
$lang['add_action'] = '<27><><EFBFBD><EFBFBD>...';
$lang['delete_action'] = <><C9BE>...';
$lang['rename_action'] = '<27><><EFBFBD><EFBFBD>...';
$lang['modify_action'] = '<27>޸<EFBFBD>...';
$lang['warning_no_ldif_version_found'] = <><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>š<EFBFBD> <20><><EFBFBD><EFBFBD> 1<><31>';
$lang['valid_dn_line_required'] = <><D2AA>һ<EFBFBD><D2BB><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>dn<64>С<EFBFBD>';
$lang['missing_uploaded_file'] = '<27><>ʧ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['no_ldif_file_specified'] = <><C3BB>ָ<EFBFBD><D6B8>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['ldif_file_empty'] = '<27>ϴ<EFBFBD><CFB4><EFBFBD>LDIF <20>ļ<EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>';
$lang['empty'] = '<27>յ<EFBFBD>';
$lang['file'] = '<27>ļ<EFBFBD>';
$lang['number_bytes'] = '%s <20>ֽ<EFBFBD>';
$lang['failed'] = <><CAA7>';
$lang['ldif_parse_error'] = 'LDIF<49><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_add_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_rename_object'] = '<27><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_delete_object'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_modify_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD>޸Ķ<DEB8><C4B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_line_number'] = '<27>кţ<D0BA>';
$lang['ldif_line'] = '<27><><EFBFBD><EFBFBD>:';
// Exports
$lang['export_format'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ';
$lang['line_ends'] = '<27>н<EFBFBD><D0BD><EFBFBD>';
$lang['must_choose_export_format'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>';
$lang['invalid_export_format'] = '<27>Ƿ<EFBFBD><C7B7>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>ʽ';
$lang['no_exporter_found'] = <><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['error_performing_search'] = '<27><>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['showing_results_x_through_y'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>%s<><73><EFBFBD><EFBFBD><EFBFBD>ɵġ<C9B5>';
$lang['searching'] = '<27><><EFBFBD><EFBFBD>...';
$lang['size_limit_exceeded'] = <><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ơ<EFBFBD>';
$lang['entry'] = '<27><>Ŀ';
$lang['ldif_export_for_dn'] = <><CEAA> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDIF';
$lang['generated_on_date'] = '<27><>phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) <20><> %s<><73><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>';
$lang['total_entries'] = '<27><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['dsml_export_for_dn'] = <><CEAA> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DSLM';
$lang['include_system_attrs'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
//$lang['could_not_find_user'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>û<EFBFBD>"%s"';
$lang['password_blank'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>';
//$lang['login_cancelled'] = '<27><>¼ȡ<C2BC><C8A1><EFBFBD>ˡ<EFBFBD>';
$lang['no_one_logged_in'] = <>˵<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_logout'] = '<27><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>';
$lang['unknown_auth_type'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>auth_type<70><65> %s';
$lang['logged_out_successfully'] = '<27>ɹ<EFBFBD><C9B9><EFBFBD><b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>';
$lang['authenticate_to_server'] = '<27><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s';
$lang['warning_this_web_connection_is_unencrypted'] = '<27><><EFBFBD><20><>web<65><62><EFBFBD><EFBFBD>û<EFBFBD>м<EFBFBD><D0BC>ܡ<EFBFBD>';
$lang['not_using_https'] = '<27><>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>\'https\'<27><> Web<65><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD><CFA2>';
$lang['login_dn'] = '<27><>¼DN';
$lang['user_name'] = '<27>û<EFBFBD><C3BB><EFBFBD>';
$lang['password'] = '<27><><EFBFBD><EFBFBD>';
$lang['authenticate'] = '<27><>֤';
$lang['login_not_allowed'] = '<27>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>phpLDAPadmin<69><6E>';
// Entry browser
$lang['entry_chooser_title'] = '<27><>Ŀѡ<C4BF><D1A1><EFBFBD><EFBFBD>';
// Index page
$lang['need_to_configure'] = '<27><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>phpLDAPadmin<69><6E> <20><EFBFBD>ļ<EFBFBD>\'config.php\'<27>Ϳ<EFBFBD><CDBF>ԡ<EFBFBD> <20>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><E1B9A9> \'config.php.example\'<27><>';
// Mass deletes
$lang['no_deletes_in_read_only'] = '<27><>ֻ<EFBFBD><D6BB>ģʽ<C4A3>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>';
$lang['error_calling_mass_delete'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mass_delete.php<68><70><EFBFBD><EFBFBD>POST<53><54><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʧ mass_delete<74><65>';
$lang['mass_delete_not_array'] = 'mass_delete POST <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>顣';
$lang['mass_delete_not_enabled'] = 'Mass deletion(<28><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><><C3BB><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ǰ<EFBFBD><C7B0>config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['search_attrs_wrong_count'] = '<27><><EFBFBD><EFBFBD>config.php<68>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>$search_attributes <20><> $search_attributes_display<61><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>Ų<EFBFBD>һ<EFBFBD><D2BB>';
$lang['mass_deleting'] = '<27><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ɾ<EFBFBD><C9BE>';
$lang['mass_delete_progress'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22>ϵ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['malformed_mass_delete_array'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mass_delete <20><><EFBFBD>顣';
$lang['no_entries_to_delete'] = '<27><>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD>κ<EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['deleting_dn'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE> %s';
$lang['total_entries_failed'] = <><C9BE><EFBFBD><EFBFBD>Ŀ%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73>ʧ<EFBFBD>ܡ<EFBFBD>';
$lang['all_entries_successful'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀɾ<C4BF><C9BE><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>';
$lang['confirm_mass_delete'] = <>ϴ<EFBFBD><CFB4><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ%s<><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD>%s<>ϣ<EFBFBD>';
$lang['yes_delete'] = '<27>ǵģ<C7B5>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = '<27><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_rdn_change'] = '<27><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>RDN';
$lang['invalid_rdn'] = '<27><>Ч<EFBFBD><D0A7>RDNֵ';
$lang['could_not_rename'] = '<27><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
// General errors
//$lang['php5_unsupported'] = 'phpLDAPadmin <20><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>PHP 5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣';
$lang['mismatched_search_attr_config'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $search_attributes <20><> $search_attributes_display <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
// Password checker
$lang['passwords_match'] = '<27><><EFBFBD><EFBFBD>ƥ<EFBFBD>䣡';
$lang['passwords_do_not_match'] = '<27><><EFBFBD>벻ƥ<EBB2BB>䣡';
$lang['password_checker_tool'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B9A4>';
$lang['compare'] = '<27>Ƚ<EFBFBD>';
$lang['to'] = '<27><>';
// Templates
$lang['using'] = 'ʹ<>ø<EFBFBD>';
//$lang['template'] = 'ģ<><C4A3>';
$lang['switch_to'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>';
$lang['default_template'] = <><C4AC>ģ<EFBFBD><C4A3>';
// template_config
$lang['user_account'] = '<27>û<EFBFBD><C3BB>˺<EFBFBD>(posixAccount)';
$lang['address_book_inet'] = '<27><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ(inetOrgPerson)';
$lang['address_book_moz'] = '<27><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ(mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab<61>û<EFBFBD><C3BB><EFBFBD>Ŀ';
$lang['organizational_unit'] = '<27><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>Ԫ(Organizational Unit)';
$lang['organizational_role'] = '<27><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>ɫ';
$lang['posix_group'] = 'Posix<69><78>';
$lang['samba_machine'] = 'Samba NT <20><><EFBFBD><EFBFBD>';
$lang['samba3_machine'] = 'Samba 3 NT <20><><EFBFBD><EFBFBD>';
$lang['samba_user'] = 'Samba <20>û<EFBFBD>';
$lang['samba3_user'] = 'Samba 3 <20>û<EFBFBD>';
$lang['samba3_group'] = 'Samba 3 <20><>ӳ<EFBFBD><D3B3>(Mapping)';
$lang['dns_entry'] = 'DNS <20><>Ŀ';
$lang['simple_sec_object'] = '<27>򵥰<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>(Simple Security Object)';
$lang['courier_mail_account'] = 'Courier <20>ʼ<EFBFBD><CABC>˺<EFBFBD>';
$lang['courier_mail_alias'] = 'Courier <20>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldap_alias'] = 'LDAP <20><><EFBFBD><EFBFBD>';
$lang['sendmail_cluster'] = 'Sendmail <20><>Ⱥ';
$lang['sendmail_domain'] = 'Sendmail <20><>';
$lang['sendmail_alias'] = 'Sendmail <20><><EFBFBD><EFBFBD>';
$lang['sendmail_virt_dom'] = 'Sendmail <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['sendmail_virt_users'] = 'Sendmail <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>';
$lang['sendmail_relays'] = 'Sendmail <20>ظ<EFBFBD>';
$lang['custom'] = '<27>Զ<EFBFBD><D4B6><EFBFBD>';
$lang['samba_domain_name'] = '<27>ҵ<EFBFBD>Samba<62><61><EFBFBD><EFBFBD>';
$lang['administrators'] = '<27><><EFBFBD><EFBFBD>Ա';
$lang['users'] = '<27>û<EFBFBD>';
$lang['guests'] = 'һ<><D2BB><EFBFBD>û<EFBFBD>(Guests)';
$lang['power_users'] = '<27><>ǿ<EFBFBD>û<EFBFBD>(Power Users)';
$lang['account_ops'] = '<27>˺Ź<CBBA><C5B9><EFBFBD>Ա';
$lang['server_ops'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա';
$lang['print_ops'] = '<27><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>Ա';
$lang['backup_ops'] = '<27><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>Ա';
$lang['replicator'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Replicator)';
$lang['unable_smb_passwords'] = '<27><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>Samba<62><61><EFBFBD><EFBFBD><EBA1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>template_config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['err_smb_conf'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>samba<62><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['err_smb_no_name_sid'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪΪ<D2AA><CEAA><EFBFBD><EFBFBD>samba<62><61><EFBFBD>һ<E1B9A9><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(name)<29><>һ<EFBFBD><D2BB>sid<69><64>';
$lang['err_smb_no_name'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊsamba<62><61><EFBFBD><EFBFBD><E1B9A9><EFBFBD>֡<EFBFBD>';
$lang['err_smb_no_sid'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊsamba<62><61><EFBFBD>ṩsid<69><64>';
// Samba Account Template
$lang['samba_account'] = 'Samba <20>˺<EFBFBD>';
$lang['samba_account_lcase'] = 'samba <20>˺<EFBFBD>';
// New User (Posix) Account
$lang['t_new_user_account'] = '<27>½<EFBFBD><C2BD>û<EFBFBD><C3BB>˺<EFBFBD>';
$lang['t_hint_customize'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա༭<D4B1>ļ<EFBFBD>templates/creation/new_user_template.php';
$lang['t_name'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_first_name'] = '<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_last_name'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_first'] = '<27><>һ<EFBFBD><D2BB>';
$lang['t_last'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>';
$lang['t_common_name'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Common name)';
$lang['t_user_name'] = '<27>û<EFBFBD><C3BB><EFBFBD>';
$lang['t_password'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_encryption'] = '<27><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>';
$lang['t_login_shell'] = '<27><>¼Shell';
$lang['t_home_dir'] = '<27><>Ŀ¼';
$lang['t_uid_number'] = 'UID<49><44>';
$lang['t_auto_det'] = '<27><><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>';
$lang['t_group'] = '<27><>';
$lang['t_gid_number'] = 'GID<49><44>';
$lang['t_err_passwords'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>벻ƥ<EBB2BB><EFBFBD><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_field_blank'] = '%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_field_num'] = '%s<>ֶβ<D6B6><CEB2><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_bad_container'] = '<27><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s)<29><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_confirm_account_creation'] = <>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>˺<EFBFBD>';
$lang['t_secret'] = '[<5B><><EFBFBD><EFBFBD>]';
$lang['t_create_account'] = '<27><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>';
// New Address Template
$lang['t_new_address'] = '<27>½<EFBFBD><C2BD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ';
$lang['t_organization'] = '<27><>֯';
$lang['t_address'] = '<27><>ַ';
$lang['t_city'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_postal_code'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_street'] = '<27>ֵ<EFBFBD>';
$lang['t_work_phone'] = '<27><><EFBFBD><EFBFBD><EFBFBD>绰';
$lang['t_fax'] = '<27><><EFBFBD><EFBFBD>(Fax)';
$lang['t_mobile'] = '<27>ƶ<EFBFBD><C6B6>绰(Mobile)';
$lang['t_email'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>';
$lang['t_container'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_err_cn_blank'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Common Name)<29><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_confim_creation'] = <>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['t_create_address'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>';
// default template
$lang['t_check_pass'] = '<27><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1AD>';
// compare form
$lang['compare'] = '<27>Ƚ<EFBFBD>';
$lang['comparing'] = '<27>ȽϽ<C8BD><CFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>DN';
$lang['compare_dn'] = '<27>Ƚ<EFBFBD><C8BD><EFBFBD>һ<EFBFBD><D2BB>DN<44><4E>';
$lang['with'] = 'ͬ ';
$lang['compf_source_dn'] = 'ԴDN';
$lang['compf_dn_tooltip'] = '<27><><EFBFBD><EFBFBD>DN<44><4E><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƚ<EFBFBD>';
$lang['switch_entry'] = '<27>л<EFBFBD><D0BB><EFBFBD>Ŀ';
$lang['no_value'] = <><C3BB>ֵ';
$lang['compare_with'] = <><CDAC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>бȽ<D0B1>';
$lang['need_oclass'] = <><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ObjectClass(es)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࡣ';
// Time out page
$lang['session_timed_out_1'] = '<27><><EFBFBD>ĻỰ<C4BB>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>޻<DEBB><EEB6AF>';
$lang['session_timed_out_2'] = '<27><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>Զ<EFBFBD><D4B6>˳<EFBFBD><CBB3><EFBFBD>';
$lang['log_back_in'] = '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>';
$lang['session_timed_out_tree'] = '(<28><EFBFBD><E1BBB0>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6>˳<EFBFBD><CBB3><EFBFBD>)';
$lang['timeout_at'] = '<27><>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><E3BDAB><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>';
?>

490
lang/recoded/zh-tw.php Normal file
View File

@@ -0,0 +1,490 @@
<?php
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
// Based on en.php version 1.58
// Search form
$lang['simple_search_form_str']='簡易搜尋表單';
$lang['advanced_search_form_str']='進階搜尋表單';
$lang['server']='伺服器';
// search_form_simple.php
$lang['search_for_entries_whose']='選擇搜尋條件';
$lang['base_dn']='基礎識別名稱';
$lang['search_scope']='搜尋範圍';
$lang['show_attributes']='顯示屬性';
$lang['Search']='搜尋';
$lang['predefined_search_str']='以預先定義好的條件搜尋';
$lang['predefined_searches']='預先定義好的搜尋';
$lang['no_predefined_queries']='config.php中沒有預先定義的搜尋條件';
// Tree browser
$lang['request_new_feature']='建議新功能';
$lang['report_bug']='回報問題';
$lang['schema']='schema';
$lang['search']='搜尋';
$lang['create']='建立';
$lang['info']='系統資訊';
$lang['import']='匯入';
$lang['refresh']='重新整理';
$lang['logout']='登出';
$lang['create_new']='建立新紀錄';
$lang['view_schema_for']='查閱schema';
$lang['refresh_expanded_containers']='重新整理所有展開的集合';
$lang['create_new_entry_on']='建立新紀錄於';
$lang['new']='新';
$lang['view_server_info']='查閱伺服器提供的資訊';
$lang['import_from_ldif']='從LDIF檔案匯入紀錄';
$lang['logout_of_this_server']='登出此伺服器';
$lang['logged_in_as']='登入為';
$lang['read_only']='唯讀';
$lang['could_not_determine_root']='找不到LDAP根目錄';
$lang['ldap_refuses_to_give_root']='此LDAP伺服器設定為不顯示根節點';
$lang['please_specify_in_config']='請在config.php中指定';
$lang['create_new_entry_in']='建立新紀錄於';
$lang['login_link']='登入...';
$lang['login']='登入';
// Entry display
$lang['delete_this_entry']='刪除此紀錄';
$lang['delete_this_entry_tooltip']='在您確認之後刪除此記錄';
$lang['copy_this_entry']='複製此記錄';
$lang['copy_this_entry_tooltip']='將此記錄複製到您選擇的目的地';
$lang['export']='匯出';
$lang['export_tooltip']='將此物件匯出';
$lang['export_subtree_tooltip']='將此物件及所有子物件匯出';
$lang['export_subtree']='將此子樹匯出';
$lang['create_a_child_entry']='建立子記錄';
$lang['rename_entry']='重新命名';
$lang['rename']='更名';
$lang['add']='新增';
$lang['view']='查閱';
$lang['view_one_child']='查閱 1 子紀錄';
$lang['view_children']='查閱 %s 子紀錄';
$lang['add_new_attribute']='新增屬性';
$lang['add_new_objectclass']='新增ObjectClass';
$lang['hide_internal_attrs']='不顯示隱藏屬性';
$lang['show_internal_attrs']='顯示隱藏屬性';
$lang['attr_name_tooltip']='查閱屬性 ';
$lang['none']='none';
$lang['save_changes']='儲存';
$lang['add_value']='加入新數值';
$lang['add_value_tooltip']='增加一個附加值到屬性 \"%s\"';
$lang['refresh_entry']='重新整理';
$lang['refresh_this_entry']='重整此筆資';
$lang['delete_hint']='提示: 將欄位數值刪除並按存檔即可刪除該屬性';
$lang['attr_schema_hint']='提示: 在該屬性上點一下即可查閱所使用的schema';
$lang['attrs_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['attr_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['viewing_read_only']='以唯讀模式查閱資料';
$lang['no_new_attrs_available']='此筆資料沒有新屬性';
$lang['no_new_binary_attrs_available']='此筆資料沒有二進位屬性';
$lang['binary_value']='二進位數值';
$lang['add_new_binary_attr']='新增二進位屬性';
$lang['alias_for']='Alias for %s';
$lang['download_value']='下載數值';
$lang['delete_attribute']='刪除屬性';
$lang['true']='true';
$lang['false']='false';
$lang['none_remove_value']='空白, 移除該值';
$lang['really_delete_attribute']='確定要刪除屬性?';
$lang['add_new_value']='新增數值';
// Schema browser
$lang['the_following_objectclasses']='此LDAP伺服器支援下列objectClasses';
$lang['the_following_attributes']='此LDAP伺服器支援下列屬性';
$lang['the_following_matching']='此LDAP伺服器支援下列搜尋規則';
$lang['the_following_syntaxes']='此LDAP伺服器支援下列語法';
$lang['schema_retrieve_error_1']='此伺服器並未完全支援LDAP協定';
$lang['schema_retrieve_error_2']='您的php版本並未正確執行此查詢';
$lang['schema_retrieve_error_3']='或是phpLDAPadmin不知道如何從您的伺服器擷取schema';
$lang['jump_to_objectclass']='選擇objectClass';
$lang['jump_to_attr']='選擇屬性';
$lang['jump_to_matching_rule']='選擇配對規則';
$lang['schema_for_server']='伺服器的schema';
$lang['required_attrs']='必要屬性';
$lang['optional_attrs']='選擇性屬性';
$lang['optional_binary_attrs']='選擇性二進位屬性';
$lang['OID']='OID';
$lang['aliases']='別名';
$lang['desc']='說明';
$lang['no_description']='沒有說明';
$lang['name']='名稱';
$lang['equality']='相同';
$lang['is_obsolete']='這個 objectClass 是必須得.';
$lang['inherits']='繼承';
$lang['inherited_from']='已繼承於';
$lang['jump_to_this_oclass']='選擇此objectClass定義';
$lang['matching_rule_oid']='OID配對規則';
$lang['syntax_oid']='OID語法';
$lang['not_applicable']='未應用的';
$lang['not_specified']='未指定的';
$lang['character']='字元';
$lang['characters']='字元集';
$lang['used_by_objectclasses']='已被 objectClasses 使用';
$lang['used_by_attributes']='已被屬性使用';
$lang['maximum_length']='最大長度';
$lang['attributes']='屬性型態';
$lang['syntaxes']='語法';
$lang['matchingrules']='配對規則';
$lang['oid']='OID';
$lang['obsolete']='必要';
$lang['ordering']='排序中';
$lang['substring_rule']='子字串規則';
$lang['single_valued']='單一值';
$lang['collective']='集合';
$lang['user_modification']='使用者修改';
$lang['usage']='使用量';
$lang['could_not_retrieve_schema_from']='無法恢復 Schema 於';
$lang['type']='類型';
// Deleting entries
$lang['entry_deleted_successfully']='資料 %s 成功的刪除';
$lang['you_must_specify_a_dn']='您必須指定一個識別名稱';
$lang['could_not_delete_entry']='無法刪除記錄 %s';
$lang['no_such_entry']='無此記錄 %s';
$lang['delete_dn']='刪除 %s';
$lang['permanently_delete_children']='永久刪除所有子資料?';
$lang['entry_is_root_sub_tree']='此資料';
$lang['view_entries']='查閱資料';
$lang['confirm_recursive_delete']='phpLDAPadmin可以幫您刪除此資料與所有 %s 子資料.下列資料將會被刪除,您確定要刪除?';
$lang['confirm_recursive_delete_note']='請注意:這項功能無法還原,且可能是非常危險的,且可能因此而造成問題';
$lang['delete_all_x_objects']='刪除所有 %s 物件';
$lang['recursive_delete_progress']='遞迴刪除進度';
$lang['entry_and_sub_tree_deleted_successfully']='成功刪除資料 %s 與子資料';
$lang['failed_to_delete_entry']='無法刪除資料 %s';
$lang['list_of_entries_to_be_deleted']='下列資料將被刪除:';
$lang['sure_permanent_delete_object']='您確定要永久刪除此物件?';
$lang['dn']='識別名稱';
// Deleting attributes
$lang['attr_is_read_only']='屬性 \"%s\" 在phpLDAPadmin中被設定成唯讀';
$lang['no_attr_specified']='請指定屬性名稱';
$lang['no_dn_specified']='請指定識別名稱';
// Adding attributes
$lang['left_attr_blank']='您沒有輸入屬性數值,請重新輸入';
$lang['failed_to_add_attr']='無法新增此屬性';
// Updating values
$lang['modification_successful']='修改成功';
$lang['change_password_new_login']='您的密碼已更新,請登出並以新密碼重新登入';
// Adding objectClass form
$lang['new_required_attrs']='新必須屬性';
$lang['requires_to_add']='執行此項操作前您必須先加入';
$lang['new_attributes']='新屬性';
$lang['new_required_attrs_instructions']='作法在新增objectClass之前您必須指定';
$lang['that_this_oclass_requires']='此objectClass為必須您可以在此表單中指定';
$lang['add_oclass_and_attrs']='新增ObjectClass與屬性';
$lang['objectclasses']='ObjectClasses';
// General
$lang['chooser_link_tooltip']='點選此處即可以圖形介面選擇資料(識別名稱)';
$lang['no_updates_in_read_only_mode']='伺服器為唯讀模式,無法更新資料';
$lang['bad_server_id']='錯誤的 server id';
$lang['not_enough_login_info']='沒有足夠的資訊以進行登入伺服器,請檢查您的設定值';
$lang['could_not_connect']='無法連接LDAP伺服器';
$lang['could_not_connect_to_host_on_port']='無法透過port \"%s\" 連接到 \"%s\" ';
$lang['could_not_perform_ldap_mod_add']='無法執行ldap_mod_add操作';
$lang['bad_server_id_underline']='錯誤的 server_id:';
$lang['success']='成功';
$lang['server_colon_pare']='伺服器:';
$lang['look_in']='登入:';
$lang['missing_server_id_in_query_string']='查詢字串中並未指定server ID';
$lang['missing_dn_in_query_string']='查詢字串中並未指定識別名稱';
$lang['back_up_p']='備份...';
$lang['no_entries']='沒有任何紀錄';
$lang['not_logged_in']='尚未登入';
$lang['could_not_det_base_dn']='無法確定 Base DN';
$lang['please_report_this_as_a_bug']='請回報這個問題至 Bug 系統';
$lang['reasons_for_error']='此問題可能有好幾個原因,最有可能的是:';
$lang['yes']='確定';
$lang['no']='否';
$lang['go']='衝!!';
$lang['delete']='刪除';
$lang['back']='返回';
$lang['object']='物件';
$lang['delete_all']='刪除全部';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint']='提示';
$lang['bug']='臭蟲';
$lang['warning']='警告';
$lang['light']='light';
$lang['proceed_gt']='下一步 >>';
// Add value form
$lang['add_new']='新增';
$lang['value_to']='數值至';
$lang['distinguished_name']='識別名稱';
$lang['current_list_of']='此屬性有';
$lang['values_for_attribute']='下列數值:';
$lang['inappropriate_matching_note']='請注意若您的LDAP伺服器中並未設定等式規則您將會遇到\"無適合的比對\"錯誤';
$lang['enter_value_to_add']='請輸入您要加入的數值';
$lang['new_required_attrs_note']='請注意由於此objectClass定義的';
$lang['syntax']='語法,您必須輸入新屬性';
//copy.php
$lang['copy_server_read_only']='無法在伺服器為唯讀模式時更新資料';
$lang['copy_dest_dn_blank']='目的地識別名稱不能是空白';
$lang['copy_dest_already_exists']='目的地識別名稱 (%s) 已經存在';
$lang['copy_dest_container_does_not_exist']='目的地集合 (%s) 不存在';
$lang['copy_source_dest_dn_same']='來源識別名稱與目的地識別名稱重複';
$lang['copy_copying']='複製中';
$lang['copy_recursive_copy_progress']='遞迴複製作業';
$lang['copy_building_snapshot']='對資料樹建立副本來複製';
$lang['copy_successful_like_to']='複製成功!!您要';
$lang['copy_view_new_entry']='查閱此新紀錄?';
$lang['copy_failed']='以下 DN 複製失敗:';
//edit.php
$lang['missing_template_file']='警告:找不到樣版檔案';
$lang['using_default']='使用預設值';
$lang['template']='樣版';
$lang['must_choose_template']='你必須選擇一個樣版';
$lang['invalid_template']='%s 是錯誤的樣版';
$lang['using_template']='使用樣版';
$lang['go_to_dn']='到 %s';
//copy_form.php
$lang['copyf_title_copy']='複製';
$lang['copyf_to_new_object']='成新物件';
$lang['copyf_dest_dn']='目的地識別名稱';
$lang['copyf_dest_dn_tooltip']='來源資料複製後的完整識別名稱';
$lang['copyf_dest_server']='目的伺服器';
$lang['copyf_note']='提示只有當不同的伺服器間的schema相容才能在不同的伺服器之間進行複製';
$lang['copyf_recursive_copy']='遞迴複製所有此物件的子資料';
$lang['recursive_copy']='遞迴複製';
$lang['filter']='過濾條件';
$lang['filter_tooltip']='只有符合過濾條件的資料會被遞迴複製';
//create.php
$lang['create_required_attribute']='必要的屬性 (%s) 必須有資料';
$lang['redirecting']='正在轉換至...';
$lang['here']='這裡';
$lang['create_could_not_add']='不能新增物件到此LDAP伺服器';
//create_form.php
$lang['createf_create_object']='創造物件';
$lang['createf_choose_temp']='選擇樣版';
$lang['createf_select_temp']='請選擇一個你要建立的紀錄模板';
$lang['createf_proceed']='下一步';
$lang['rdn_field_blank']='相對識別名稱欄位不能是空白';
$lang['container_does_not_exist']='您指定的集合 (%s) 不存在,請重新指定';
$lang['no_objectclasses_selected']='您必須為此物件指定ObjectClasses';
$lang['hint_structural_oclass']='提示:您必須在伺服器上至少';
//creation_template.php
$lang['ctemplate_on_server']='選擇一個objectClass';
$lang['ctemplate_no_template']='在POST變數中並未指定模版';
$lang['ctemplate_config_handler']='您的設定指定了由某個程式來執行此模版';
$lang['ctemplate_handler_does_not_exist']='但此程式在 templates/creation 目錄中找不到';
$lang['create_step1']='步驟 1 之 2:名稱與ObjectClass(es)';
$lang['create_step2']='步驟 2 之 2:指定屬性與數值';
$lang['relative_distinguished_name']='相對識別名稱';
$lang['rdn']='相對識別名稱';
$lang['rdn_example']='(範例: cn=MyNewPerson)(範例: cn=MyNewPerson)';
$lang['container']='集合';
// search.php
$lang['you_have_not_logged_into_server']='您必須先登入伺服器才能在伺服器執行搜尋';
$lang['click_to_go_to_login_form']='點選這邊回去登入表單';
$lang['unrecognized_criteria_option']='無法辨識的基準';
$lang['if_you_want_to_add_criteria']='如果您要加入自己的基準到項目列表中請編輯search.php';
$lang['entries_found']='找到的紀錄:';
$lang['filter_performed']='執行過濾條件';
$lang['search_duration']='phpLDAPadmin將會';
$lang['seconds']='馬上執行查詢';
// search_form_advanced.php
$lang['scope_in_which_to_search']='搜尋範圍';
$lang['scope_sub']='Sub (整個子樹)';
$lang['scope_one']='One (單一階層下)';
$lang['scope_base']='Base (只有基礎識別名稱)';
$lang['standard_ldap_search_filter']='標準的LDAP搜尋條件. 如: (&(sn=Smith)(givenname=David))';
$lang['search_filter']='過濾搜尋';
$lang['list_of_attrs_to_display_in_results']='下列為搜尋結果(以 , 區隔)';
$lang['equals']='等於';
$lang['starts with']='開始於';
$lang['contains']='內含';
$lang['ends with']='結束於';
$lang['sounds like']='喜愛的聲音';
// server_info.php
$lang['could_not_fetch_server_info']='無法從伺服器取得 LDAP 資訊';
$lang['server_info_for']='伺服器資訊:';
$lang['server_reports_following']='伺服器回報下列資訊:';
$lang['nothing_to_report']='此伺服器沒有資訊可以回報';
//update.php
$lang['update_array_malformed']='無法更新陣列可能是phpLDAPadmin的bug請回報此問題';
$lang['could_not_perform_ldap_modify']='無法執行ldap_modify操作';
// update_confirm.php
$lang['do_you_want_to_make_these_changes']='您確定要做這些更動?';
$lang['attribute']='屬性';
$lang['old_value']='原設定值';
$lang['new_value']='新設定植';
$lang['attr_deleted']='[屬性已刪除]';
$lang['commit']='送出';
$lang['cancel']='取消';
$lang['you_made_no_changes']='您並沒有做任何更動';
$lang['go_back']='回上頁';
// welcome.php
$lang['welcome_note']='請用左邊的選單瀏覽';
$lang['credits']='成員列表';
$lang['changelog']='更新紀錄';
$lang['donate']='捐獻';
// view_jpeg_photo.php
$lang['unsafe_file_name']='不安全的檔案名稱:';
$lang['no_such_file']='沒有以下檔案:';
//function.php
$lang['auto_update_not_setup']='您在設定中開啟 <b>%s</b>的auto_uid_numbers功能但並未指定auto_uid_number_mechanism請修正此問題';
$lang['uidpool_not_set']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為uidpool但並未指定audo_uid_number_uid_pool_dn請修正此問題再繼續';
$lang['uidpool_not_exist']='您再設定檔(\"%s\")中指定的uidPool機制並不存在';
$lang['specified_uidpool']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為search但您並未指定auto_uid_number_search_base請修正此問題再繼續';
$lang['auto_uid_invalid_credential']='無法以您的auto_uid設定登入<b>%s</b>,請檢查您的設定檔';
$lang['bad_auto_uid_search_base']='您在phpLDAPadmin設定中對伺服器%s指定了無效的auto_uid_search_base';
$lang['auto_uid_invalid_value']='您的auto_uid_number_mechanism (\"%s\") 設定是無效的只有uidpool與search為有效設定請修正此問題';
$lang['error_auth_type_config']='錯誤您的設定有錯誤變數auth_type只允許session , cookie與config您的設定值 ';
$lang['php_install_not_supports_tls']='您安裝的 php 並沒有支援 TLS.';
$lang['could_not_start_tls']='無法啟動 TLS 請檢查您的 LDAP 伺服器設定.';
$lang['could_not_bind_anon']='伺服器不接受匿名登入';
$lang['anonymous_bind']='匿名登入';
$lang['bad_user_name_or_password']='錯誤的 使用者名稱 或 密碼.請重新輸入一次.';
$lang['redirecting_click_if_nothing_happens']='正在重新導向...如果瀏覽器沒有動作,請點選這裡.';
$lang['successfully_logged_in_to_server']='成功登入伺服器 %s';
$lang['could_not_set_cookie']='不能設定 cookie';
$lang['ldap_said']='伺服器回應: %s';
$lang['ferror_error']='錯誤';
$lang['fbrowse']='瀏覽';
$lang['delete_photo']='刪除相片';
$lang['install_not_support_blowfish']='您所安裝的 PHP 並不支援 Blowfish 加密';
$lang['install_no_mash']='您所安裝的 PHP 並沒有 mhash() 函數,無法進行 SHA 加密';
$lang['jpeg_contains_errors']='jpegPhoto 內容發生錯誤<br />';
$lang['ferror_number']='錯誤碼: %s (%s)';
$lang['ferror_discription']='說明: %s <br /><br />';
$lang['ferror_number_short']='錯誤編號: %s';
$lang['ferror_discription_short']='說明: (無任何說明內容)<br />';
$lang['ferror_submit_bug']='這是 phpLDAPadmin 的 bug? 如果是,請<a href=\"%s\">回報這個Bug</a>.';
$lang['ferror_unrecognized_num']='無法辨識的錯誤代碼:';
$lang['ferror_nonfatil_bug']='<center><table class=\"notice\"><tr><td colspan=\"2\"><center><img src=\"images/warning.png\" height=\"12\" width=\"13\" />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\"2\"><center><a target=\"new\" href=\"%s\">
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug']='恭喜! 您發現了phpLDAPadmin的bug.<br /><br /> <table class=\"bug\">
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Level:</td><td><b>%s</b></td></tr>
<tr><td>File:</td><td><b>%s</b></td></tr>
<tr><td>Line:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title']='匯入 LDIF 檔案';
$lang['select_ldif_file']='選擇一個 LDIF 檔案:';
$lang['select_ldif_file_proceed']='下一步';
//ldif_import
$lang['add_action']='增加中...';
$lang['delete_action']='刪除中...';
$lang['rename_action']='更名中...';
$lang['modify_action']='改變中...';
$lang['warning_no_ldif_version_found']='找不到版本資訊預設使用版本1';
$lang['valid_dn_line_required']='需要有效的識別名稱行';
$lang['missing_uploaded_file']='找不到指定的上傳檔案';
$lang['no_ldif_file_specified.']='沒有指定LDIF檔案請重試';
$lang['ldif_file_empty']='上傳的 LDIF 檔案是空白的';
$lang['file']='檔案';
$lang['number_bytes']='%s bytes';
$lang['failed']='失敗';
$lang['ldif_parse_error']='LDIF 解析錯誤';
$lang['ldif_could_not_add_object']='無法新增 object:';
$lang['ldif_could_not_rename_object']='無法重新命名 object:';
$lang['ldif_could_not_delete_object']='無法刪除 object:';
$lang['ldif_could_not_modify_object']='無法修改 object:';
$lang['ldif_line_number']='行數:';
$lang['ldif_line']='行:';
// Exports
$lang['export_format']='匯出格式';
$lang['line_ends']='斷行';
$lang['must_choose_export_format']='你必須選擇一種匯出格式';
$lang['invalid_export_format']='無效的匯出格式';
$lang['no_exporter_found']='沒有可用的匯出程式';
$lang['error_performing_search']='在執行搜尋時發生錯誤';
$lang['showing_results_x_through_y']='透過 %s 顯示結果 %s';
$lang['searching']='搜索中...';
$lang['size_limit_exceeded']='注意:到達搜尋大小上限';
$lang['entry']='紀錄';
$lang['ldif_export_for_dn']='匯出 LDIF :';
$lang['generated_on_date']='由';
$lang['total_entries']='全部的紀錄';
$lang['dsml_export_for_dn']='匯出 DSLM :';
// logins
$lang['could_not_find_user']='找不到使用者 \"%s\"';
$lang['password_blank']='您沒有輸入密碼欄位.';
$lang['login_cancelled']='已經取消登入.';
$lang['no_one_logged_in']='在此伺服器尚無人登入.';
$lang['could_not_logout']='無法登出.';
$lang['unknown_auth_type']='未知的認證模式: %s';
$lang['logged_out_successfully']='成功的從 %s 伺服器登出';
$lang['authenticate_to_server']='登入伺服器 %s';
$lang['warning_this_web_connection_is_unencrypted']='警告: 這個網頁連線是沒有加密的.';
$lang['not_using_https']='您並未使用https加密連線您的瀏覽器將直接以明碼傳送您的帳號與密碼';
$lang['login_dn']='登入 DN';
$lang['user_name']='使用者名稱';
$lang['password']='密碼';
$lang['authenticate']='驗證';
// Entry browser
$lang['entry_chooser_title']='紀錄選擇器';
// Index page
$lang['need_to_configure']='您必須先設定phpLDAPadmin請依照config.php.example編輯config.php';
// Mass deletes
$lang['no_deletes_in_read_only']='在唯讀模式時不允許刪除資料';
$lang['error_calling_mass_delete']='呼叫mass_delete.php時發生錯誤mass_delete不在POST變數中';
$lang['mass_delete_not_array']='mass_delete POST變數不是陣列';
$lang['mass_delete_not_enabled']='大量刪除功能並未開啟請在config.php中開啟此功能';
$lang['mass_deleting']='大量刪除';
$lang['mass_delete_progress']='正在 \"%s\" 伺服器上進行刪除程序';
$lang['malformed_mass_delete_array']='錯誤的大量刪除陣列';
$lang['no_entries_to_delete']='您沒有選擇任何要刪除的紀錄';
$lang['deleting_dn']='刪除 %s';
$lang['total_entries_failed']='無法刪除紀錄 %s %s';
$lang['all_entries_successful']='全部刪除完成';
$lang['confirm_mass_delete']='確認要刪除 %s 登入在伺服器 %s上';
$lang['yes_delete']='沒錯,刪除吧!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed']='當此記錄有子紀錄時無法重新命名';
$lang['no_rdn_change']='您並沒有改變相對識別名稱';
$lang['invalid_rdn']='無效的相對識別名稱';
$lang['could_not_rename']='無法重新命名';
?>

720
lang/zh-cn.php Normal file
View File

@@ -0,0 +1,720 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/zh-cn.php,v 1.2 2005/03/25 01:21:30 wurley Exp $
// Translate to Simplified Chinese, by <20><>ѩƽ(heromyth), from zxpmyth@yahoo.com.cn
// Based on en.php,v 1.119 2005/03/16 20:57:45
/*
ʹ<><CAB9>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>utf-8<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٷŵ<D9B7>lang/recodedĿ¼<C4BF>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD><DEB8>ļ<EFBFBD>lang/auto.php<68><70>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2>
1<><31><EFBFBD>޸ĵ<DEB8>7<EFBFBD><37>Ϊ<EFBFBD><CEAA>
$useLang="zh-cn";
2<><32><EFBFBD><EFBFBD>31<33>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>У<EFBFBD>
," zh-cn"=>"zh-cn" //Simplified Chinese
*/
/* --- <20><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8> ---
*
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBDA8>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1BDBB>SourceForge<67><65>
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* <20><>ʹ<EFBFBD>õײ<C3B5><D7B2><EFBFBD>ѡ<EFBFBD><D1A1>"Check to Upload and Attach a File<6C><65><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
*
* <20>Ķ<EFBFBD>doc/README-translation.txt <20><><EFBFBD>Եõ<D4B5><C3B5><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
*
* лл<D0BB><D0BB>
*
*/
/*
* <20><><EFBFBD><EFBFBD>$lang <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin <20><>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><E5B4AE>
* ÿһ<C3BF><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ֻ<EFBFBD><D6BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>
* <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
*/
// Search form
$lang['simple_search_form_str'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['advanced_search_form_str '] = '<27>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['server'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['search_for_entries_whose'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['base_dn'] = '<27><><EFBFBD><EFBFBD>DN';
$lang['search_scope'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ';
$lang['show_attributes'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>';
//$lang['attributes'] = '<27><><EFBFBD><EFBFBD>';
$lang['Search'] = '<27><><EFBFBD><EFBFBD>';
$lang['predefined_search_str'] = 'ѡ<><D1A1>һ<EFBFBD><D2BB>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['predefined_searches'] = <><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_predefined_queries'] = '<27><>config.php<68><70>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>塣';
$lang['export_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['unrecoginzed_search_result_format'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD> %s';
$lang['format'] = '<27><>ʽ';
$lang['list'] = '<27>б<EFBFBD>';
$lang['table'] = '<27><><EFBFBD><EFBFBD>';
$lang['bad_search_display'] = '<27><><EFBFBD><EFBFBD>config.php <20><>$default_search_displayָ<79><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ֵ<EFBFBD><D6B5> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['page_n'] = '<27><>%dҳ';
$lang['no_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// Tree browser
$lang['request_new_feature'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['report_bug'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©';
$lang['schema'] = '<27><>ʽ';
$lang['search'] = '<27><><EFBFBD><EFBFBD>';
$lang['create'] = '<27><><EFBFBD><EFBFBD>';
$lang['info'] = '<27><>Ϣ';
$lang['import'] = '<27><><EFBFBD><EFBFBD>';
$lang['refresh'] = <><CBA2>';
$lang['logout'] = '<27>˳<EFBFBD>';
$lang['create_new'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['view_schema_for'] = '<27><EFBFBD><E9BFB4>ʽ';
$lang['refresh_expanded_containers'] = <><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><D5B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['create_new_entry_on'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['new'] = '<27>½<EFBFBD>';
$lang['view_server_info'] = '<27><EFBFBD><E9BFB4><EFBFBD>ӵķ<D3B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ';
$lang['import_from_ldif'] = '<27><>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['logout_of_this_server'] = '<27>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['logged_in_as'] = '<27><>¼Ϊ<C2BC><CEAA> ';
$lang['this_base_dn_is_not_valid'] = '<27><>DN<44><4E><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>';
$lang['this_base_dn_does_not_exist'] = '<27><><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['read_only'] = <><D6BB>';
$lang['read_only_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD>phpLDAPadmin <20><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ʶΪֻ<CEAA><D6BB>';
$lang['could_not_determine_root'] = '<27><><EFBFBD><EFBFBD><E2B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>';
$lang['ldap_refuses_to_give_root'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><C2B6><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>';
$lang['please_specify_in_config'] = '<27><><EFBFBD><EFBFBD>config.php<68><70>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>';
$lang['create_new_entry_in'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['login_link'] = '<27><>¼<EFBFBD><C2BC>';
$lang['login'] = '<27><>¼';
$lang['base_entry_does_not_exist'] = '<27>û<EFBFBD>׼<EFBFBD><D7BC>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['create_it'] = <><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// Entry display
$lang['delete_this_entry'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['delete_this_entry_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>ʾҪ<CABE><D2AA>ȷ<EFBFBD>ϸ<EFBFBD>ѡ<EFBFBD><D1A1>';
$lang['copy_this_entry'] = '<27><><EFBFBD>ƺ<EFBFBD><C6BA>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['copy_this_entry_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>һ<EFBFBD><D2BB>λ<EFBFBD>ã<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>DN<44><4E><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['export'] = '<27><><EFBFBD><EFBFBD>';
$lang['export_lcase'] = '<27><><EFBFBD><EFBFBD>';
$lang['export_tooltip'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD>';
$lang['export_subtree_tooltip'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ö<EFBFBD><C3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA>ӵĵ<D3B5><C4B5><EFBFBD>';
$lang['export_subtree'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['create_a_child_entry'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['rename_entry'] = '<27><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['rename'] = '<27><><EFBFBD><EFBFBD>';
$lang['add'] = '<27><><EFBFBD><EFBFBD>';
$lang['view'] = '<27>鿴';
$lang['view_one_child'] = '<27>鿴1<E9BFB4><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['view_children'] = '<27>鿴%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['add_new_attribute'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_new_objectclass'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ObjectClass';
$lang['hide_internal_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['show_internal_attrs'] = '<27><>ʾ<EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['attr_name_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\'%s\'<27>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
$lang['none'] = 'ʲô<CAB2><C3B4>û<EFBFBD><C3BB>';
$lang['no_internal_attributes'] = <><C3BB><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_attributes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['save_changes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_value'] = '<27><>ֵ';
$lang['add_value_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\'%s\'<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ֵ';
$lang['refresh_entry'] = <><CBA2>';
$lang['refresh_this_entry'] = <><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
$lang['delete_hint'] = '<27><>ʾ<EFBFBD><CABE> <20><>Ҫɾ<D2AA><C9BE>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD>ı<EFBFBD><C4B1>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>գ<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>档';
$lang['attr_schema_hint'] = '<27><>ʾ<EFBFBD><CABE> Ҫ<>һ<E9BFB4><D2BB><EFBFBD><EFBFBD><EFBFBD>Եĸ<D4B5>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD>ơ<EFBFBD>';
$lang['attrs_modified'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD><EFBFBD>(%s) <20><><EFBFBD>޸<EFBFBD><DEB8>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['attr_modified'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s) <20><><EFBFBD>޸<EFBFBD><DEB8>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ұ<EFBFBD><D2B1><EFBFBD>ʶΪ<CAB6><CEAA><EFBFBD><EFBFBD>';
$lang['viewing_read_only'] = '<27><>ֻ<EFBFBD><D6BB>ģʽ<C4A3><EFBFBD><E9BFB4>Ŀ<EFBFBD><C4BF>';
$lang['no_new_attrs_available'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_new_binary_attrs_available'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀû<C4BF><C3BB><EFBFBD><EFBFBD>µĶ<C2B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['binary_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ';
$lang['add_new_binary_attr'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µĶ<C2B5><C4B6><EFBFBD><EFBFBD><EFBFBD>ֵ';
$lang['alias_for'] = <>⣺ \'%s\'<27><>\'%s\'<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['required_for'] = 'objectClass(es) %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['download_value'] = '<27><><EFBFBD><EFBFBD>ֵ';
$lang['delete_attribute'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['true'] = '<27><><EFBFBD><EFBFBD>';
$lang['false'] = '<27>ٵ<EFBFBD>';
$lang['none_remove_value'] = 'ʲô<CAB2><C3B4>û<EFBFBD>У<EFBFBD><D0A3><EFBFBD>ֵ<EFBFBD>Ƴ<EFBFBD>';
$lang['really_delete_attribute'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['add_new_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ֵ';
// Schema browser
//$lang['the_following_objectclasses'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClasses<65><73>';
//$lang['the_following_attributes'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD>';
//$lang['the_following_matching'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['the_following_syntaxes'] = '<27><><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB7A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['schema_retrieve_error_1']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ֧<C8AB><D6A7>LDAP Э<>顣';
$lang['schema_retrieve_error_2']='<27><><EFBFBD><EFBFBD>PHP<48><EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD>ѯ<EFBFBD><D1AF>';
$lang['schema_retrieve_error_3']='phpLDAPadmin<69><6E>֪<EFBFBD><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD><CABD>';
$lang['schema_retrieve_error_4']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><E1B9A9><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>';
$lang['jump_to_objectclass'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB>objectClass';
$lang['view_schema_for_oclass'] = '<27><EFBFBD><E9BFB4>objectClass<73>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
$lang['jump_to_attr'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['jump_to_matching_rule'] = '<27><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB>ƥ<EFBFBD><C6A5><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>';
$lang['schema_for_server'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ';
$lang['required_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['required'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['optional_attrs'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['optional_binary_attrs'] = '<27><>ѡ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['OID'] = 'OID';
$lang['aliases']='<27><><EFBFBD><EFBFBD>';
$lang['desc'] = '<27><><EFBFBD><EFBFBD>';
$lang['no_description']=<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['name'] = '<27><><EFBFBD><EFBFBD>';
$lang['equality']='<27><><EFBFBD><EFBFBD>';
$lang['is_obsolete'] = '<27><>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD>';
$lang['inherits'] = '<27>̳<EFBFBD><CCB3><EFBFBD>';
$lang['inherited_from'] = '<27><><EFBFBD>̳<EFBFBD><CCB3><EFBFBD>';
$lang['parent_to'] = <><CBAB>ָ<EFBFBD><D6B8>';
$lang['jump_to_this_oclass'] = '<27><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>objectClass<73>Ķ<EFBFBD><C4B6>崦';
$lang['matching_rule_oid'] = <><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OID';
$lang['syntax_oid'] = '<27><EFBFBD><EFB7A8><EFBFBD><EFBFBD>OID';
$lang['not_applicable'] = '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>';
$lang['not_specified'] = 'δָ<CEB4><D6B8><EFBFBD><EFBFBD>';
$lang['character']='<27><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>';
$lang['characters']='<27><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>';
$lang['used_by_objectclasses']='<27><>objectClasses<65><73>ʹ<EFBFBD>õ<EFBFBD>';
$lang['used_by_attributes']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD>';
$lang['maximum_length']='<27><><EFBFBD>󳤶<EFBFBD>';
$lang['attribute_types']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['syntaxes']='<27><EFBFBD><EFB7A8><EFBFBD><EFBFBD>';
$lang['matchingrules']=<><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['oid']='OID';
$lang['obsolete']='<27><><EFBFBD>ϵ<EFBFBD>';
$lang['ordering']='<27><><EFBFBD><EFBFBD>';
$lang['substring_rule']='<27>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>';
$lang['single_valued']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>';
$lang['collective']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['user_modification']='<27>û<EFBFBD><C3BB>޸<EFBFBD>';
$lang['usage']='ʹ<>ø<EFBFBD>ʽ';
$lang['could_not_retrieve_schema_from']='<27><><EFBFBD><EFBFBD><EFBFBD>һظ<D2BB>ʽ<EFBFBD>ĵط<C4B5>';
$lang['type']='<27><><EFBFBD><EFBFBD>';
$lang['no_such_schema_item'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD>ʽ<EFBFBD><CABD>Ŀ<EFBFBD><C4BF> "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = '<27>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s<><73>';
$lang['you_must_specify_a_dn'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>һ<EFBFBD><D2BB>DN';
$lang['could_not_delete_entry'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> %s';
$lang['no_such_entry'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> %s';
$lang['delete_dn'] = <><C9BE><EFBFBD><EFBFBD>%s';
$lang['permanently_delete_children'] = 'ҲҪ<D2B2><D2AA><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['entry_is_root_sub_tree'] = '<27><><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s<><73>';
$lang['view_entries'] = '<27><EFBFBD><E9BFB4>Ŀ';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin<69><6E><EFBFBD>Եݹ<D4B5><DDB9><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>еģ<D0B5>%s<><73> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9BFB4><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['confirm_recursive_delete_note'] = <>ͣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><C7B1>Σ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻָ<C9BB><D6B8><EFBFBD> һ<><D2BB>Ҫ<EFBFBD><D2AA><EFBFBD>ǵ<EFBFBD>aliases<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> referrals<6C><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>顣';
$lang['delete_all_x_objects'] = <><C9BE><EFBFBD><EFBFBD><EFBFBD>еĶ<D0B5><C4B6><EFBFBD><EFBFBD><EFBFBD>%s ';
$lang['recursive_delete_progress'] = '<27>ݹ<EFBFBD>ʽɾ<CABD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['entry_and_sub_tree_deleted_successfully'] = '<27>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['failed_to_delete_entry'] = <><C9BE><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>%s ʧ<><CAA7>';
$lang['list_of_entries_to_be_deleted'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>б<EFBFBD><D0B1><EFBFBD>';
$lang['sure_permanent_delete_object']=<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = ' <20><>phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD><EFBFBD>ʶΪֻ<CEAA><D6BB><EFBFBD><EFBFBD>';
$lang['no_attr_specified'] = <><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD>';
$lang['no_dn_specified'] = <><C3BB>ָ<EFBFBD><D6B8>DN ';
// Adding attributes
$lang['left_attr_blank'] = '<27><><EFBFBD><EFBFBD>ֵΪ<D6B5>հס<D5B0> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['failed_to_add_attr'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܡ<EFBFBD>';
$lang['file_empty'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>Ϊ<EFBFBD>ջ򲻴<D5BB><F2B2BBB4>ڡ<EFBFBD> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['invalid_file'] = '<27><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>ڰ<EFBFBD>ȫΣ<C8AB>ա<EFBFBD>';
$lang['warning_file_uploads_disabled'] = '<27><><EFBFBD><EFBFBD>PHP<48><50><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>php.ini<6E><69>';
$lang['uploaded_file_too_big'] = '<27><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>php.ini<6E>е<EFBFBD>upload_max_size <20><><EFBFBD><EFBFBD>';
$lang['uploaded_file_partial'] = '<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD>ʡ<EFBFBD>';
$lang['max_file_size'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ߴ磺 %s';
// Updating values
$lang['modification_successful'] = '<27>ɹ<EFBFBD><C9B9>޸ģ<DEB8>';
$lang['change_password_new_login'] = '<27><>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>¼<EFBFBD><C2BC>';
// Adding objectClass form
$lang['new_required_attrs'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['requires_to_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['new_attributes'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['new_required_attrs_instructions'] = <><D6B8><EFBFBD><EFBFBD> Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClass <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>';
$lang['that_this_oclass_requires'] = '<27><><EFBFBD><EFBFBD>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɡ<EFBFBD>';
$lang['add_oclass_and_attrs'] = '<27><><EFBFBD><EFBFBD>ObjectClass <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['objectclasses'] = 'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD>η<EFBFBD>ʽѡ<CABD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ŀ(DN) ';
$lang['no_updates_in_read_only_mode'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>';
$lang['bad_server_id'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>id';
$lang['not_enough_login_info'] = <><C3BB><EFBFBD><EFBFBD><E3B9BB><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['could_not_connect'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_connect_to_host_on_port'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>"%s" <20><>"%s"<22>˿<EFBFBD>';
$lang['could_not_perform_ldap_mod_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ldap_mod_add <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['bad_server_id_underline'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>server_id<69><64>';
$lang['home'] = '<27><>ҳ';
$lang['help'] = '<27><><EFBFBD><EFBFBD>';
$lang['success'] = '<27>ɹ<EFBFBD>';
$lang['server_colon_pare'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['look_in'] = '<27><><EFBFBD>ڲ鿴<DAB2><E9BFB4>';
//$lang['missing_server_id_in_query_string'] = '<27>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID<49><44>';
$lang['missing_dn_in_query_string'] = '<27>ڲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>DN<44><4E>';
$lang['back_up_p'] = '<27><><EFBFBD><EFBFBD>...';
$lang['no_entries'] = <><C3BB><EFBFBD><EFBFBD>Ŀ';
//$lang['not_logged_in'] = 'û<>е<EFBFBD>¼';
$lang['could_not_det_base_dn'] = '<27><><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>base DN<44><4E><EFBFBD><EFBFBD>DN<44><4E>';
//$lang['please_report_this_as_a_bug']='<27><EFBFBD><EBB1A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©<EFBFBD><C2A9>';
$lang['reasons_for_error']='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>п<EFBFBD><D0BF>ܵ<EFBFBD><DCB5>ǣ<EFBFBD>';
$lang['yes']='<27><>';
$lang['no']='<27><>';
$lang['go']='<27><>ʼ';
$lang['delete']=<><C9BE>';
$lang['back']='<27><><EFBFBD><EFBFBD>';
$lang['object']='<27><><EFBFBD><EFBFBD>';
$lang['delete_all']=<><C9BE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>';
//$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = '<27><>ʾ';
$lang['bug'] = '<27><>©';
$lang['warning'] = '<27><><EFBFBD><EFBFBD>';
$lang['light'] = 'light'; // <20><><EFBFBD><EFBFBD>'light' <20><><EFBFBD><EFBFBD> 'light bulb<6C><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>'
$lang['proceed_gt'] = '<27><><EFBFBD><EFBFBD> &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin<69><6E><EFBFBD>ܰ<EFBFBD>ȫ<EFBFBD>ؼ<EFBFBD><D8BC>ܺͽ<DCBA><CDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>config.php<68><70>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$blowfish_secret<65><74><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>༭config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$blowfish_secretΪij<CEAA><C4B3><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>';
$lang['jpeg_dir_not_writable'] = '<27><><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>config.php<68><EFBFBD><EFA3AC>$jpeg_temp_dir<69><72><EFBFBD>õ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>д<EFBFBD><D0B4>Ŀ¼';
$lang['jpeg_dir_not_writable_error'] = '<27><><EFBFBD>ܽ<EFBFBD>%sд<73><D0B4>$jpeg_temp_dirĿ¼<C4BF><C2BC><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>web<65><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['jpeg_unable_toget'] = '<27><><EFBFBD>ܴ<EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD>jpeg<65><67><EFBFBD>ݡ<EFBFBD>';
$lang['jpeg_delete'] = <><C9BE>ͼƬ';
// Add value form
$lang['add_new'] = '<27><><EFBFBD><EFBFBD>';
$lang['value_to'] = '<27><>ֵ<EFBFBD><D6B5>';
$lang['distinguished_name'] = <><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DN<44><4E>';
$lang['current_list_of'] = '<27><>ǰ<EFBFBD>б<EFBFBD>';
$lang['values_for_attribute'] = '<27><><EFBFBD><EFBFBD>ֵ';
$lang['inappropriate_matching_note'] = <>ͣ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EQUALITY <20><><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD>"inappropriate matching<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ƥ<EFBFBD>䣩"<22><><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>';
$lang['enter_value_to_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>ֵ<EFBFBD><D6B5>';
$lang['new_required_attrs_note'] = <>ͣ<EFBFBD> <20><><EFBFBD>ܻ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>objectClass<73><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['syntax'] = '<27><><EFBFBD><EFBFBD>';
//copy.php
$lang['copy_server_read_only'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD>';
$lang['copy_dest_dn_blank'] = ' Ŀ<><C4BF>DN<44><4E>Ϊ<EFBFBD>ա<EFBFBD>';
$lang['copy_dest_already_exists'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD>Ŀ (%s) <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['copy_dest_container_does_not_exist'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (%s) <20><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['copy_source_dest_dn_same'] = <><D4B4>Ŀ<EFBFBD><C4BF>DN <20><>ͬ<EFBFBD><CDAC>';
$lang['copy_copying'] = '<27><><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD> ';
$lang['copy_recursive_copy_progress'] = '<27>ݹ<EFBFBD><DDB9>ָ<EFBFBD><D6B8>ƹ<EFBFBD><C6B9><EFBFBD>';
$lang['copy_building_snapshot'] = '<27><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>ա<EFBFBD> ';
$lang['copy_successful_like_to'] = '<27><><EFBFBD>Ƴɹ<C6B3><C9B9><EFBFBD> <20><EFBFBD><E3BBB9>Ҫ ';
$lang['copy_view_new_entry'] = '<27><EFBFBD><E9BFB4><EFBFBD><EFBFBD>Ŀ';
$lang['copy_failed'] = '<27><><EFBFBD><EFBFBD>DN<44><4E><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD> ';
//edit.php
$lang['missing_template_file'] = '<27><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>';
$lang['using_default'] = 'ʹ<><CAB9>Ĭ<EFBFBD>ϵġ<CFB5>';
$lang['template'] = '<27><><EFBFBD><EFBFBD>';
$lang['must_choose_template'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['invalid_template'] = '%s <20><>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['using_template'] = 'ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['go_to_dn'] = <><D7AA> %s';
$lang['structural_object_class_cannot_remove'] = '<27><><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><E1B9B9><EFBFBD><EFBFBD>ObjectClass<73><73><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>';
$lang['structural'] = '<27><EFBFBD><E1B9B9>';
//copy_form.php
$lang['copyf_title_copy'] = '<27><><EFBFBD><EFBFBD>';
$lang['copyf_to_new_object'] = '<27><>Ϊһ<CEAA><D2BB><EFBFBD>µĶ<C2B5><C4B6><EFBFBD>';
$lang['copyf_dest_dn'] = 'Ŀ<><C4BF>DN';
$lang['copyf_dest_dn_tooltip'] = '<27>ڸ<EFBFBD><DAB8>Ƹ<EFBFBD>Դ<EFBFBD><D4B4>Ŀʱ<C4BF><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DN ';
$lang['copyf_dest_server'] = 'Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['copyf_note'] = '<27><>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD><E4B8B4>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>"schema<6D><61><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>ͻ"';
$lang['copyf_recursive_copy'] = '<27><><EFBFBD>⻹Ҫ<E2BBB9>ݹ鸴<DDB9>ƴ˶<C6B4><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>';
$lang['recursive_copy'] = '<27>ݹ鸴<DDB9><E9B8B4>';
$lang['filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//$lang['search_filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['filter_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ݹ鸴<DDB9><E9B8B4>ʱ<EFBFBD><CAB1>ֻ<EFBFBD><EFBFBD><E1B8B4><EFBFBD><EFBFBD>Щƥ<D0A9><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['delete_after_copy'] = '<27><><EFBFBD>ƺ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['delete_after_copy_warn'] = <><C8B7><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3A9>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5>Ӽ<EFBFBD>¼<EFBFBD><C2BC>';
//create.php
$lang['create_required_attribute'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s)<29><>ֵΪ<D6B5>հס<D5B0>';
$lang['redirecting'] = '<27>ض<EFBFBD><D8B6><EFBFBD>...';
$lang['here'] = '<27><><EFBFBD><EFBFBD>';
$lang['create_could_not_add'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӹö<D3B8><C3B6><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
//create_form.php
$lang['createf_create_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['createf_choose_temp'] = 'ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['createf_select_temp'] = 'ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD>';
$lang['save_as_file'] = '<27><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ļ<EFBFBD>';
$lang['rdn_field_blank'] = 'RDN<44><4E>Ϊ<EFBFBD>հס<D5B0>';
$lang['container_does_not_exist'] = '<27><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>(%s)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['no_objectclasses_selected'] = '<27><>û<EFBFBD><C3BB>Ϊ<EFBFBD>ö<EFBFBD><C3B6><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>κ<EFBFBD>ObjectClasses<65><73> <20><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['hint_structural_oclass'] = '<27><>ʾ<EFBFBD><CABE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><E1B9B9><EFBFBD><EFBFBD>objectClass (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>)';
//creation_template.php
$lang['ctemplate_on_server'] = '<27>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ctemplate_no_template'] = '<27><>POST<53><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>塣';
$lang['template_not_readable'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD><DAB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϊ<EFBFBD><CEAA>ֹȨ<D6B9><C8A8>̫<EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD><C9B6><EFBFBD>';
$lang['template_does_not_exist'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22><><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>ֱ<EFBFBD><D6B1><EFBFBD>templates/creation Ŀ¼<C4BF>в<EFBFBD><D0B2><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['create_step1'] = '<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD> Name <20><> ObjectClass(es)';
$lang['create_step2'] = '<27>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD> ָ<><D6B8><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD>ֵ';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name<6D><65><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(<28><><EFBFBD>磺 cn=MyNewPerson)';
$lang['container'] = 'Container<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// search.php
$lang['you_have_not_logged_into_server'] = '<27>㻹û<E3BBB9>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['click_to_go_to_login_form'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>';
$lang['unrecognized_criteria_option'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6>criteria<69><61><EFBFBD><EFBFBD>׼<EFBFBD><D7BC>ѡ<EFBFBD> ';
$lang['if_you_want_to_add_criteria'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>criteria <20><><EFBFBD>б<EFBFBD><D0B1><20>ǵñ༭search.php <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD> <20>˳<EFBFBD><CBB3><EFBFBD>';
$lang['entries_found'] = '<27>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF> ';
$lang['filter_performed'] = <><D3A6><EFBFBD>˵Ĺ<CBB5><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ';
$lang['search_duration'] = 'phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ';
$lang['seconds'] = '<27><>';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>Χ';
$lang['scope_sub'] = 'Sub (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)';
$lang['scope_one'] = 'One (base֮<65>µ<EFBFBD>һ<EFBFBD><D2BB>)';
$lang['scope_base'] = 'Base (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>base dn)';
$lang['standard_ldap_search_filter'] = '<27><>׼<EFBFBD><D7BC>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>磺 (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['list_of_attrs_to_display_in_results'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>(<28>Զ<EFBFBD><D4B6>Ÿ<EFBFBD><C5B8><EFBFBD>)';
//$lang['show_attributes'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>';
// search_form_simple.php
//$lang['search_for_entries_whose'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˭<EFBFBD><CBAD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['equals'] = '<27><><EFBFBD><EFBFBD>';
$lang['starts with'] = '<27><>ʼ<EFBFBD><CABC>';
$lang['contains'] = '<27><><EFBFBD><EFBFBD>';
$lang['ends with'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['sounds like'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// server_info.php
$lang['could_not_fetch_server_info'] = '<27><><EFBFBD>ܴӷ<DCB4><D3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>LDAP<41><50>Ϣ<EFBFBD><CFA2> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>PHP<48><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><a href="http://bugs.php.net/bug.php?id=29587"><3E><>©</a><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>"<22><><EFBFBD>ʿ<EFBFBD><CABF><EFBFBD>"<22><>ֹLDAP<41>ͻ<EFBFBD><CDBB>˷<EFBFBD><CBB7><EFBFBD>RootDSE<53><45>';
$lang['server_info_for'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2> ';
$lang['server_reports_following'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>Ϣ';
$lang['nothing_to_report'] = '<27>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ϣ<EFBFBD><CFA2>';
//update.php
$lang['update_array_malformed'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>update_array<61><79> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69>Ĵ<EFBFBD>©<EFBFBD><C2A9> <20><EFBFBD>档';
$lang['could_not_perform_ldap_modify'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ldap_modify <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '<27><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD>Щ<EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD>';
$lang['attribute'] = '<27><><EFBFBD><EFBFBD>';
$lang['old_value'] = '<27><>ֵ';
$lang['new_value'] = '<27><>ֵ';
$lang['attr_deleted'] = '[ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]';
$lang['commit'] = '<27>ύ';
$lang['cancel'] = <><C8A1>';
$lang['you_made_no_changes'] = '<27><>û<EFBFBD>н<EFBFBD><D0BD>и<EFBFBD><D0B8><EFBFBD>';
$lang['go_back'] = '<27><><EFBFBD><EFBFBD>';
$lang['unable_create_samba_pass'] = '<27><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>samba<62><61><EFBFBD><EFBFBD><EBA1A3><EFBFBD><EFBFBD>template_config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// welcome.php
$lang['welcome_note'] = 'ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>߲˵<DFB2><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['credits'] = '<27><><EFBFBD><EFBFBD>';
$lang['changelog'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼';
$lang['donate'] = '<27><><EFBFBD><EFBFBD>';
$lang['pla_logo'] = 'phpLDAPadmin <20><>ʶ';
// Donate.php
$lang['donation_instructions'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PayPal<61><6C>ť<EFBFBD>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>';
$lang['donate_amount'] = '<27><><EFBFBD><EFBFBD> %s';
//$lang['wish_list_option'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>';
//$lang['wish_list'] = '<27>鿴Dave<76><65>phpLDAPadmin Ը<><D4B8><EFBFBD>б<EFBFBD>';
$lang['purge_cache'] = '<27><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>';
$lang['no_cache_to_purge'] = <>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ա<EFBFBD>';
$lang['done_purging_caches'] = '<27><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>%s <20><><EFBFBD>ֽڡ<D6BD>';
$lang['purge_cache_tooltip'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>phpLDAPadmin<69>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>schema<6D><61><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = '<27><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> ';
$lang['no_such_file'] = <><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD> ';
//function.php
$lang['auto_update_not_setup'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ <b>%s</b> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>auto_uid_numbers<72><73>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>auto_uid_number_mechanism<73><6D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['uidpool_not_set'] = '<27><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>"auto_uid_number_mechanism" Ϊ "uidpool"<22><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>
audo_uid_number_uid_pool_dn<64><6E> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>ǰָ<C7B0><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['uidpool_not_exist'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>("%s")<29><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>uidPool
<20><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD>';
$lang['specified_uidpool'] = '<27><><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><b>%s<b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>"auto_uid_number_mechanism" Ϊ "search"<22><>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ָ<EFBFBD><D6B8>
"auto_uid_number_search_base"<22><> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>²<EFBFBD>ǰָ<C7B0><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['auto_uid_invalid_credential'] = 'ʹ<><CAB9>auto_uid credentials<6C><73><EFBFBD>ܰ󶨵<DCB0><b>%s</b><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['bad_auto_uid_search_base'] = '<27><><EFBFBD><EFBFBD>phpLDAPadmin<69><6E><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%sָ<73><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>auto_uid_search_base ';
$lang['auto_uid_invalid_value'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ϊauto_uid_number_mechanism ("%s")ָ<><D6B8><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ֵ
<20><> ֻ<><D6BB>"uidpool" <20><> "search" <20>ǺϷ<C7BA><CFB7>ġ<EFBFBD>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣';
$lang['error_auth_type_config'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
$servers<72><73><EFBFBD>ֵ<EFBFBD>auth_type<70><65>ֵΪ \'session\', \'cookie\', and \'config\'<27><> <20><><EFBFBD><EFBFBD>\'%s\'<27><>
<20><><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> ';
$lang['unique_attrs_invalid_credential'] = '<27><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>unique_attrs <20>󶨵<EFBFBD><b>%s</b><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['unique_attr_failed'] = '<27><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><b>%s</b> (<i>%s</i>) <20><> <br><b>%s</b><br><3E><><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D6B5><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><CEBA><EFBFBD>Ŀ<EFBFBD><C4BF><p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><a href=\'%s\'><3E><><EFBFBD><EFBFBD></a> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['php_install_not_supports_tls'] = '<27>㰲װ<E3B0B2><D7B0>PHP <20><>֧<EFBFBD><D6A7>TLS<4C><53>';
$lang['could_not_start_tls'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>TLS<4C><53> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDAP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['could_not_bind_anon'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨵<EFBFBD><F3B6A8B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_bind'] = '<27><><EFBFBD>ܰ󶨵<DCB0><F3B6A8B5><EFBFBD>LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['anonymous_bind'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['bad_user_name_or_password'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
//$lang['redirecting_click_if_nothing_happens'] = '<27>ض<EFBFBD><D8B6><EFBFBD>... <20><><EFBFBD><EFBFBD>û<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['successfully_logged_in_to_server'] = '<27>ɹ<EFBFBD><C9B9><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><b>%s</b>';
$lang['could_not_set_cookie'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cookie<69><65>';
$lang['ldap_said'] = 'LDAP˵<50><CBB5> %s';
$lang['ferror_error'] = '<27><><EFBFBD><EFBFBD>';
$lang['fbrowse'] = '<27><><EFBFBD><EFBFBD>';
$lang['delete_photo'] = <><C9BE>ͼƬ';
//$lang['install_not_support_blowfish'] = '<27>㰲װ<E3B0B2><D7B0>PHP<48><50>֧<EFBFBD><D6A7>blowfish <20><><EFBFBD>ܡ<EFBFBD>';
//$lang['install_not_support_md5crypt'] = '<27>㰲װ<E3B0B2><D7B0>PHP<48><50>֧<EFBFBD><D6A7> md5crypt <20><><EFBFBD>ܡ<EFBFBD>';
//$lang['install_no_mash'] = '<27>㰲װ<E3B0B2><D7B0>PHPû<50><C3BB>mhash() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>SHA<48><41>ϣ<EFBFBD><CFA3>';
$lang['install_not_support_ext_des'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7><EFBFBD><EFBFBD>չ<EFBFBD><D5B9>DES<45><53><EFBFBD>ܡ<EFBFBD>';
$lang['install_not_support_blowfish'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7>blowfish<73><68><EFBFBD>ܡ<EFBFBD>';
$lang['install_not_support_md5crypt'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD>ܿⲻ֧<E2B2BB><D6A7>md5crypt<70><74><EFBFBD>ܡ<EFBFBD>';
$lang['jpeg_contains_errors'] = 'jpegPhoto <20><><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><br />';
$lang['ferror_number'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s';
$lang['ferror_discription'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s <br /><br />';
$lang['ferror_number_short'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> %s <br /><br />';
$lang['ferror_discription_short'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṩ)<br />';
$lang['ferror_submit_bug'] = '<27><><EFBFBD>Ǹ<EFBFBD>phpLDAPadmin <20><>©<EFBFBD><C2A9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><a href=\'%s\'><3E><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB></a><3E><>';
$lang['ferror_unrecognized_num'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD> ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b><3E><EFBFBD><E3B7A2><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>phpLDAPadmin <20><>©<EFBFBD><C2A9></b></td></tr><tr><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td><3E>ļ<EFBFBD><C4BC><EFBFBD></td>
<td><b>%s</b> <20><> <b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD> <b>%s</b></td></tr><tr><td><3E><EFBFBD><E6B1BE></td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFB1A8><EFBFBD>ô<EFBFBD>©</a><3E><></center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '<27><>ϲ<EFBFBD><20><EFBFBD><E3B7A2><EFBFBD><EFBFBD>phpLDAPadmin<69><6E>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>©<EFBFBD><C2A9><br /><br />
<table class=\'bug\'>
<tr><td><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E><><EFBFBD><EFBFBD>:</td><td><b>%s</b></td></tr>
<tr><td><3E>ļ<EFBFBD><C4BC><EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E>У<EFBFBD></td><td><b>%s</b></td></tr>
<tr><td><3E><><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD></td><td><b>%s</b></td></tr>
<tr><td>PLA <20><EFBFBD><E6B1BE></td><td><b>%s</b></td></tr>
<tr><td>PHP <20><EFBFBD><E6B1BE></td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>PHP <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></td><td><b>%s</b></td></tr>
</table>
<br />
<20><>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>©<EFBFBD><C2A9>';
//ldif_import_form
$lang['import_ldif_file_title'] = '<27><><EFBFBD><EFBFBD>LDIF<49>ļ<EFBFBD>';
$lang['select_ldif_file'] = 'ѡ<><D1A1>һ<EFBFBD><D2BB>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['dont_stop_on_errors'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ֹͣ';
//ldif_import
$lang['add_action'] = '<27><><EFBFBD><EFBFBD>...';
$lang['delete_action'] = <><C9BE>...';
$lang['rename_action'] = '<27><><EFBFBD><EFBFBD>...';
$lang['modify_action'] = '<27>޸<EFBFBD>...';
$lang['warning_no_ldif_version_found'] = <><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>š<EFBFBD> <20><><EFBFBD><EFBFBD> 1<><31>';
$lang['valid_dn_line_required'] = <><D2AA>һ<EFBFBD><D2BB><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>dn<64>С<EFBFBD>';
$lang['missing_uploaded_file'] = '<27><>ʧ<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>';
$lang['no_ldif_file_specified'] = <><C3BB>ָ<EFBFBD><D6B8>LDIF<49>ļ<EFBFBD><C4BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['ldif_file_empty'] = '<27>ϴ<EFBFBD><CFB4><EFBFBD>LDIF <20>ļ<EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>';
$lang['empty'] = '<27>յ<EFBFBD>';
$lang['file'] = '<27>ļ<EFBFBD>';
$lang['number_bytes'] = '%s <20>ֽ<EFBFBD>';
$lang['failed'] = <><CAA7>';
$lang['ldif_parse_error'] = 'LDIF<49><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_add_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_rename_object'] = '<27><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_delete_object'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_could_not_modify_object'] = '<27><><EFBFBD><EFBFBD><EFBFBD>޸Ķ<DEB8><C4B6><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldif_line_number'] = '<27>кţ<D0BA>';
$lang['ldif_line'] = '<27><><EFBFBD><EFBFBD>:';
// Exports
$lang['export_format'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ';
$lang['line_ends'] = '<27>н<EFBFBD><D0BD><EFBFBD>';
$lang['must_choose_export_format'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>';
$lang['invalid_export_format'] = '<27>Ƿ<EFBFBD><C7B7>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>ʽ';
$lang['no_exporter_found'] = <><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['error_performing_search'] = '<27><>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['showing_results_x_through_y'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>%s<><73><EFBFBD><EFBFBD><EFBFBD>ɵġ<C9B5>';
$lang['searching'] = '<27><><EFBFBD><EFBFBD>...';
$lang['size_limit_exceeded'] = <><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ơ<EFBFBD>';
$lang['entry'] = '<27><>Ŀ';
$lang['ldif_export_for_dn'] = <><CEAA> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDIF';
$lang['generated_on_date'] = '<27><>phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) <20><> %s<><73><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD>';
$lang['total_entries'] = '<27><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>';
$lang['dsml_export_for_dn'] = <><CEAA> %s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DSLM';
$lang['include_system_attrs'] = '<27><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
//$lang['could_not_find_user'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>û<EFBFBD>"%s"';
$lang['password_blank'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD>';
//$lang['login_cancelled'] = '<27><>¼ȡ<C2BC><C8A1><EFBFBD>ˡ<EFBFBD>';
$lang['no_one_logged_in'] = <>˵<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['could_not_logout'] = '<27><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD>';
$lang['unknown_auth_type'] = '<27><><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>auth_type<70><65> %s';
$lang['logged_out_successfully'] = '<27>ɹ<EFBFBD><C9B9><EFBFBD><b>%s</b><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>';
$lang['authenticate_to_server'] = '<27><>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s';
$lang['warning_this_web_connection_is_unencrypted'] = '<27><><EFBFBD><20><>web<65><62><EFBFBD><EFBFBD>û<EFBFBD>м<EFBFBD><D0BC>ܡ<EFBFBD>';
$lang['not_using_https'] = '<27><>û<EFBFBD><C3BB>ʹ<EFBFBD><CAB9>\'https\'<27><> Web<65><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>Ϣ<EFBFBD><CFA2>';
$lang['login_dn'] = '<27><>¼DN';
$lang['user_name'] = '<27>û<EFBFBD><C3BB><EFBFBD>';
$lang['password'] = '<27><><EFBFBD><EFBFBD>';
$lang['authenticate'] = '<27><>֤';
$lang['login_not_allowed'] = '<27>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨LDAP<41><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>phpLDAPadmin<69><6E>';
// Entry browser
$lang['entry_chooser_title'] = '<27><>Ŀѡ<C4BF><D1A1><EFBFBD><EFBFBD>';
// Index page
$lang['need_to_configure'] = '<27><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>phpLDAPadmin<69><6E> <20><EFBFBD>ļ<EFBFBD>\'config.php\'<27>Ϳ<EFBFBD><CDBF>ԡ<EFBFBD> <20>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><E1B9A9> \'config.php.example\'<27><>';
// Mass deletes
$lang['no_deletes_in_read_only'] = '<27><>ֻ<EFBFBD><D6BB>ģʽ<C4A3>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>';
$lang['error_calling_mass_delete'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mass_delete.php<68><70><EFBFBD><EFBFBD>POST<53><54><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʧ mass_delete<74><65>';
$lang['mass_delete_not_array'] = 'mass_delete POST <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD>顣';
$lang['mass_delete_not_enabled'] = 'Mass deletion(<28><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><><C3BB><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD> <20><><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ǰ<EFBFBD><C7B0>config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['search_attrs_wrong_count'] = '<27><><EFBFBD><EFBFBD>config.php<68>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>$search_attributes <20><> $search_attributes_display<61><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>Ų<EFBFBD>һ<EFBFBD><D2BB>';
$lang['mass_deleting'] = '<27><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ɾ<EFBFBD><C9BE>';
$lang['mass_delete_progress'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"%s"<22>ϵ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['malformed_mass_delete_array'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mass_delete <20><><EFBFBD>顣';
$lang['no_entries_to_delete'] = '<27><>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD>κ<EFBFBD>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['deleting_dn'] = '<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE> %s';
$lang['total_entries_failed'] = <><C9BE><EFBFBD><EFBFBD>Ŀ%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73>ʧ<EFBFBD>ܡ<EFBFBD>';
$lang['all_entries_successful'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀɾ<C4BF><C9BE><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>';
$lang['confirm_mass_delete'] = <>ϴ<EFBFBD><CFB4><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ŀ%s<><73><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD>%s<>ϣ<EFBFBD>';
$lang['yes_delete'] = '<27>ǵģ<C7B5>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = '<27><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['no_rdn_change'] = '<27><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>RDN';
$lang['invalid_rdn'] = '<27><>Ч<EFBFBD><D0A7>RDNֵ';
$lang['could_not_rename'] = '<27><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ';
// General errors
//$lang['php5_unsupported'] = 'phpLDAPadmin <20><><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>PHP 5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܻ<EFBFBD><DCBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⡣';
$lang['mismatched_search_attr_config'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $search_attributes <20><> $search_attributes_display <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
// Password checker
$lang['passwords_match'] = '<27><><EFBFBD><EFBFBD>ƥ<EFBFBD>䣡';
$lang['passwords_do_not_match'] = '<27><><EFBFBD>벻ƥ<EBB2BB>䣡';
$lang['password_checker_tool'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E9B9A4>';
$lang['compare'] = '<27>Ƚ<EFBFBD>';
$lang['to'] = '<27><>';
// Templates
$lang['using'] = 'ʹ<>ø<EFBFBD>';
//$lang['template'] = 'ģ<><C4A3>';
$lang['switch_to'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>';
$lang['default_template'] = <><C4AC>ģ<EFBFBD><C4A3>';
// template_config
$lang['user_account'] = '<27>û<EFBFBD><C3BB>˺<EFBFBD>(posixAccount)';
$lang['address_book_inet'] = '<27><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ(inetOrgPerson)';
$lang['address_book_moz'] = '<27><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ(mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab<61>û<EFBFBD><C3BB><EFBFBD>Ŀ';
$lang['organizational_unit'] = '<27><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>Ԫ(Organizational Unit)';
$lang['organizational_role'] = '<27><>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>ɫ';
$lang['posix_group'] = 'Posix<69><78>';
$lang['samba_machine'] = 'Samba NT <20><><EFBFBD><EFBFBD>';
$lang['samba3_machine'] = 'Samba 3 NT <20><><EFBFBD><EFBFBD>';
$lang['samba_user'] = 'Samba <20>û<EFBFBD>';
$lang['samba3_user'] = 'Samba 3 <20>û<EFBFBD>';
$lang['samba3_group'] = 'Samba 3 <20><>ӳ<EFBFBD><D3B3>(Mapping)';
$lang['dns_entry'] = 'DNS <20><>Ŀ';
$lang['simple_sec_object'] = '<27>򵥰<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>(Simple Security Object)';
$lang['courier_mail_account'] = 'Courier <20>ʼ<EFBFBD><CABC>˺<EFBFBD>';
$lang['courier_mail_alias'] = 'Courier <20>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>';
$lang['ldap_alias'] = 'LDAP <20><><EFBFBD><EFBFBD>';
$lang['sendmail_cluster'] = 'Sendmail <20><>Ⱥ';
$lang['sendmail_domain'] = 'Sendmail <20><>';
$lang['sendmail_alias'] = 'Sendmail <20><><EFBFBD><EFBFBD>';
$lang['sendmail_virt_dom'] = 'Sendmail <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['sendmail_virt_users'] = 'Sendmail <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>';
$lang['sendmail_relays'] = 'Sendmail <20>ظ<EFBFBD>';
$lang['custom'] = '<27>Զ<EFBFBD><D4B6><EFBFBD>';
$lang['samba_domain_name'] = '<27>ҵ<EFBFBD>Samba<62><61><EFBFBD><EFBFBD>';
$lang['administrators'] = '<27><><EFBFBD><EFBFBD>Ա';
$lang['users'] = '<27>û<EFBFBD>';
$lang['guests'] = 'һ<><D2BB><EFBFBD>û<EFBFBD>(Guests)';
$lang['power_users'] = '<27><>ǿ<EFBFBD>û<EFBFBD>(Power Users)';
$lang['account_ops'] = '<27>˺Ź<CBBA><C5B9><EFBFBD>Ա';
$lang['server_ops'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա';
$lang['print_ops'] = '<27><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>Ա';
$lang['backup_ops'] = '<27><><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>Ա';
$lang['replicator'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Replicator)';
$lang['unable_smb_passwords'] = '<27><><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD>Samba<62><61><EFBFBD><EFBFBD><EBA1A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>template_config.php<68><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>';
$lang['err_smb_conf'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>samba<62><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['err_smb_no_name_sid'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪΪ<D2AA><CEAA><EFBFBD><EFBFBD>samba<62><61><EFBFBD>һ<E1B9A9><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(name)<29><>һ<EFBFBD><D2BB>sid<69><64>';
$lang['err_smb_no_name'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊsamba<62><61><EFBFBD><EFBFBD><E1B9A9><EFBFBD>֡<EFBFBD>';
$lang['err_smb_no_sid'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Ϊsamba<62><61><EFBFBD>ṩsid<69><64>';
// Samba Account Template
$lang['samba_account'] = 'Samba <20>˺<EFBFBD>';
$lang['samba_account_lcase'] = 'samba <20>˺<EFBFBD>';
// New User (Posix) Account
$lang['t_new_user_account'] = '<27>½<EFBFBD><C2BD>û<EFBFBD><C3BB>˺<EFBFBD>';
$lang['t_hint_customize'] = '<27><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա༭<D4B1>ļ<EFBFBD>templates/creation/new_user_template.php';
$lang['t_name'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_first_name'] = '<27><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_last_name'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_first'] = '<27><>һ<EFBFBD><D2BB>';
$lang['t_last'] = '<27><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>';
$lang['t_common_name'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Common name)';
$lang['t_user_name'] = '<27>û<EFBFBD><C3BB><EFBFBD>';
$lang['t_password'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_encryption'] = '<27><><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD>';
$lang['t_login_shell'] = '<27><>¼Shell';
$lang['t_home_dir'] = '<27><>Ŀ¼';
$lang['t_uid_number'] = 'UID<49><44>';
$lang['t_auto_det'] = '<27><><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>';
$lang['t_group'] = '<27><>';
$lang['t_gid_number'] = 'GID<49><44>';
$lang['t_err_passwords'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>벻ƥ<EBB2BB><EFBFBD><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_field_blank'] = '%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_field_num'] = '%s<>ֶβ<D6B6><CEB2><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_err_bad_container'] = '<27><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(%s)<29><><EFBFBD><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_confirm_account_creation'] = <>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD>˺<EFBFBD>';
$lang['t_secret'] = '[<5B><><EFBFBD><EFBFBD>]';
$lang['t_create_account'] = '<27><><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>';
// New Address Template
$lang['t_new_address'] = '<27>½<EFBFBD><C2BD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>Ŀ';
$lang['t_organization'] = '<27><>֯';
$lang['t_address'] = '<27><>ַ';
$lang['t_city'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_postal_code'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
$lang['t_street'] = '<27>ֵ<EFBFBD>';
$lang['t_work_phone'] = '<27><><EFBFBD><EFBFBD><EFBFBD>绰';
$lang['t_fax'] = '<27><><EFBFBD><EFBFBD>(Fax)';
$lang['t_mobile'] = '<27>ƶ<EFBFBD><C6B6>绰(Mobile)';
$lang['t_email'] = '<27><><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD>';
$lang['t_container'] = '<27><><EFBFBD><EFBFBD>';
$lang['t_err_cn_blank'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Common Name)<29><><EFBFBD><EFBFBD>Ϊ<EFBFBD>ա<EFBFBD><D5A1><EFBFBD><EBB7B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԡ<EFBFBD>';
$lang['t_confim_creation'] = <>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>';
$lang['t_create_address'] = '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>';
// default template
$lang['t_check_pass'] = '<27><><EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA1AD>';
// compare form
$lang['compare'] = '<27>Ƚ<EFBFBD>';
$lang['comparing'] = '<27>ȽϽ<C8BD><CFBD><EFBFBD><EFBFBD>ŵ<EFBFBD>DN';
$lang['compare_dn'] = '<27>Ƚ<EFBFBD><C8BD><EFBFBD>һ<EFBFBD><D2BB>DN<44><4E>';
$lang['with'] = 'ͬ ';
$lang['compf_source_dn'] = 'ԴDN';
$lang['compf_dn_tooltip'] = '<27><><EFBFBD><EFBFBD>DN<44><4E><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƚ<EFBFBD>';
$lang['switch_entry'] = '<27>л<EFBFBD><D0BB><EFBFBD>Ŀ';
$lang['no_value'] = <><C3BB>ֵ';
$lang['compare_with'] = <><CDAC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>бȽ<D0B1>';
$lang['need_oclass'] = <><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ObjectClass(es)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ࡣ';
// Time out page
$lang['session_timed_out_1'] = '<27><><EFBFBD>ĻỰ<C4BB>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>޻<DEBB><EEB6AF>';
$lang['session_timed_out_2'] = '<27><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD>ڡ<EFBFBD><DAA1><EFBFBD>Զ<EFBFBD><D4B6>˳<EFBFBD><CBB3><EFBFBD>';
$lang['log_back_in'] = '<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>';
$lang['session_timed_out_tree'] = '(<28><EFBFBD><E1BBB0>ʱ<EFBFBD><CAB1><EFBFBD>Զ<EFBFBD><D4B6>˳<EFBFBD><CBB3><EFBFBD>)';
$lang['timeout_at'] = '<27><>%s<><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB6AF><EFBFBD><EFBFBD><E3BDAB><EFBFBD>dz<EFBFBD><C7B3><EFBFBD>';
?>

490
lang/zh-tw.php Normal file
View File

@@ -0,0 +1,490 @@
<?php
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
// Based on en.php version 1.58
// Search form
$lang['simple_search_form_str']='簡易搜尋表單';
$lang['advanced_search_form_str']='進階搜尋表單';
$lang['server']='伺服器';
// search_form_simple.php
$lang['search_for_entries_whose']='選擇搜尋條件';
$lang['base_dn']='基礎識別名稱';
$lang['search_scope']='搜尋範圍';
$lang['show_attributes']='顯示屬性';
$lang['Search']='搜尋';
$lang['predefined_search_str']='以預先定義好的條件搜尋';
$lang['predefined_searches']='預先定義好的搜尋';
$lang['no_predefined_queries']='config.php中沒有預先定義的搜尋條件';
// Tree browser
$lang['request_new_feature']='建議新功能';
$lang['report_bug']='回報問題';
$lang['schema']='schema';
$lang['search']='搜尋';
$lang['create']='建立';
$lang['info']='系統資訊';
$lang['import']='匯入';
$lang['refresh']='重新整理';
$lang['logout']='登出';
$lang['create_new']='建立新紀錄';
$lang['view_schema_for']='查閱schema';
$lang['refresh_expanded_containers']='重新整理所有展開的集合';
$lang['create_new_entry_on']='建立新紀錄於';
$lang['new']='新';
$lang['view_server_info']='查閱伺服器提供的資訊';
$lang['import_from_ldif']='從LDIF檔案匯入紀錄';
$lang['logout_of_this_server']='登出此伺服器';
$lang['logged_in_as']='登入為';
$lang['read_only']='唯讀';
$lang['could_not_determine_root']='找不到LDAP根目錄';
$lang['ldap_refuses_to_give_root']='此LDAP伺服器設定為不顯示根節點';
$lang['please_specify_in_config']='請在config.php中指定';
$lang['create_new_entry_in']='建立新紀錄於';
$lang['login_link']='登入...';
$lang['login']='登入';
// Entry display
$lang['delete_this_entry']='刪除此紀錄';
$lang['delete_this_entry_tooltip']='在您確認之後刪除此記錄';
$lang['copy_this_entry']='複製此記錄';
$lang['copy_this_entry_tooltip']='將此記錄複製到您選擇的目的地';
$lang['export']='匯出';
$lang['export_tooltip']='將此物件匯出';
$lang['export_subtree_tooltip']='將此物件及所有子物件匯出';
$lang['export_subtree']='將此子樹匯出';
$lang['create_a_child_entry']='建立子記錄';
$lang['rename_entry']='重新命名';
$lang['rename']='更名';
$lang['add']='新增';
$lang['view']='查閱';
$lang['view_one_child']='查閱 1 子紀錄';
$lang['view_children']='查閱 %s 子紀錄';
$lang['add_new_attribute']='新增屬性';
$lang['add_new_objectclass']='新增ObjectClass';
$lang['hide_internal_attrs']='不顯示隱藏屬性';
$lang['show_internal_attrs']='顯示隱藏屬性';
$lang['attr_name_tooltip']='查閱屬性 ';
$lang['none']='none';
$lang['save_changes']='儲存';
$lang['add_value']='加入新數值';
$lang['add_value_tooltip']='增加一個附加值到屬性 \"%s\"';
$lang['refresh_entry']='重新整理';
$lang['refresh_this_entry']='重整此筆資';
$lang['delete_hint']='提示: 將欄位數值刪除並按存檔即可刪除該屬性';
$lang['attr_schema_hint']='提示: 在該屬性上點一下即可查閱所使用的schema';
$lang['attrs_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['attr_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['viewing_read_only']='以唯讀模式查閱資料';
$lang['no_new_attrs_available']='此筆資料沒有新屬性';
$lang['no_new_binary_attrs_available']='此筆資料沒有二進位屬性';
$lang['binary_value']='二進位數值';
$lang['add_new_binary_attr']='新增二進位屬性';
$lang['alias_for']='Alias for %s';
$lang['download_value']='下載數值';
$lang['delete_attribute']='刪除屬性';
$lang['true']='true';
$lang['false']='false';
$lang['none_remove_value']='空白, 移除該值';
$lang['really_delete_attribute']='確定要刪除屬性?';
$lang['add_new_value']='新增數值';
// Schema browser
$lang['the_following_objectclasses']='此LDAP伺服器支援下列objectClasses';
$lang['the_following_attributes']='此LDAP伺服器支援下列屬性';
$lang['the_following_matching']='此LDAP伺服器支援下列搜尋規則';
$lang['the_following_syntaxes']='此LDAP伺服器支援下列語法';
$lang['schema_retrieve_error_1']='此伺服器並未完全支援LDAP協定';
$lang['schema_retrieve_error_2']='您的php版本並未正確執行此查詢';
$lang['schema_retrieve_error_3']='或是phpLDAPadmin不知道如何從您的伺服器擷取schema';
$lang['jump_to_objectclass']='選擇objectClass';
$lang['jump_to_attr']='選擇屬性';
$lang['jump_to_matching_rule']='選擇配對規則';
$lang['schema_for_server']='伺服器的schema';
$lang['required_attrs']='必要屬性';
$lang['optional_attrs']='選擇性屬性';
$lang['optional_binary_attrs']='選擇性二進位屬性';
$lang['OID']='OID';
$lang['aliases']='別名';
$lang['desc']='說明';
$lang['no_description']='沒有說明';
$lang['name']='名稱';
$lang['equality']='相同';
$lang['is_obsolete']='這個 objectClass 是必須得.';
$lang['inherits']='繼承';
$lang['inherited_from']='已繼承於';
$lang['jump_to_this_oclass']='選擇此objectClass定義';
$lang['matching_rule_oid']='OID配對規則';
$lang['syntax_oid']='OID語法';
$lang['not_applicable']='未應用的';
$lang['not_specified']='未指定的';
$lang['character']='字元';
$lang['characters']='字元集';
$lang['used_by_objectclasses']='已被 objectClasses 使用';
$lang['used_by_attributes']='已被屬性使用';
$lang['maximum_length']='最大長度';
$lang['attributes']='屬性型態';
$lang['syntaxes']='語法';
$lang['matchingrules']='配對規則';
$lang['oid']='OID';
$lang['obsolete']='必要';
$lang['ordering']='排序中';
$lang['substring_rule']='子字串規則';
$lang['single_valued']='單一值';
$lang['collective']='集合';
$lang['user_modification']='使用者修改';
$lang['usage']='使用量';
$lang['could_not_retrieve_schema_from']='無法恢復 Schema 於';
$lang['type']='類型';
// Deleting entries
$lang['entry_deleted_successfully']='資料 %s 成功的刪除';
$lang['you_must_specify_a_dn']='您必須指定一個識別名稱';
$lang['could_not_delete_entry']='無法刪除記錄 %s';
$lang['no_such_entry']='無此記錄 %s';
$lang['delete_dn']='刪除 %s';
$lang['permanently_delete_children']='永久刪除所有子資料?';
$lang['entry_is_root_sub_tree']='此資料';
$lang['view_entries']='查閱資料';
$lang['confirm_recursive_delete']='phpLDAPadmin可以幫您刪除此資料與所有 %s 子資料.下列資料將會被刪除,您確定要刪除?';
$lang['confirm_recursive_delete_note']='請注意:這項功能無法還原,且可能是非常危險的,且可能因此而造成問題';
$lang['delete_all_x_objects']='刪除所有 %s 物件';
$lang['recursive_delete_progress']='遞迴刪除進度';
$lang['entry_and_sub_tree_deleted_successfully']='成功刪除資料 %s 與子資料';
$lang['failed_to_delete_entry']='無法刪除資料 %s';
$lang['list_of_entries_to_be_deleted']='下列資料將被刪除:';
$lang['sure_permanent_delete_object']='您確定要永久刪除此物件?';
$lang['dn']='識別名稱';
// Deleting attributes
$lang['attr_is_read_only']='屬性 \"%s\" 在phpLDAPadmin中被設定成唯讀';
$lang['no_attr_specified']='請指定屬性名稱';
$lang['no_dn_specified']='請指定識別名稱';
// Adding attributes
$lang['left_attr_blank']='您沒有輸入屬性數值,請重新輸入';
$lang['failed_to_add_attr']='無法新增此屬性';
// Updating values
$lang['modification_successful']='修改成功';
$lang['change_password_new_login']='您的密碼已更新,請登出並以新密碼重新登入';
// Adding objectClass form
$lang['new_required_attrs']='新必須屬性';
$lang['requires_to_add']='執行此項操作前您必須先加入';
$lang['new_attributes']='新屬性';
$lang['new_required_attrs_instructions']='作法在新增objectClass之前您必須指定';
$lang['that_this_oclass_requires']='此objectClass為必須您可以在此表單中指定';
$lang['add_oclass_and_attrs']='新增ObjectClass與屬性';
$lang['objectclasses']='ObjectClasses';
// General
$lang['chooser_link_tooltip']='點選此處即可以圖形介面選擇資料(識別名稱)';
$lang['no_updates_in_read_only_mode']='伺服器為唯讀模式,無法更新資料';
$lang['bad_server_id']='錯誤的 server id';
$lang['not_enough_login_info']='沒有足夠的資訊以進行登入伺服器,請檢查您的設定值';
$lang['could_not_connect']='無法連接LDAP伺服器';
$lang['could_not_connect_to_host_on_port']='無法透過port \"%s\" 連接到 \"%s\" ';
$lang['could_not_perform_ldap_mod_add']='無法執行ldap_mod_add操作';
$lang['bad_server_id_underline']='錯誤的 server_id:';
$lang['success']='成功';
$lang['server_colon_pare']='伺服器:';
$lang['look_in']='登入:';
$lang['missing_server_id_in_query_string']='查詢字串中並未指定server ID';
$lang['missing_dn_in_query_string']='查詢字串中並未指定識別名稱';
$lang['back_up_p']='備份...';
$lang['no_entries']='沒有任何紀錄';
$lang['not_logged_in']='尚未登入';
$lang['could_not_det_base_dn']='無法確定 Base DN';
$lang['please_report_this_as_a_bug']='請回報這個問題至 Bug 系統';
$lang['reasons_for_error']='此問題可能有好幾個原因,最有可能的是:';
$lang['yes']='確定';
$lang['no']='否';
$lang['go']='衝!!';
$lang['delete']='刪除';
$lang['back']='返回';
$lang['object']='物件';
$lang['delete_all']='刪除全部';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint']='提示';
$lang['bug']='臭蟲';
$lang['warning']='警告';
$lang['light']='light';
$lang['proceed_gt']='下一步 >>';
// Add value form
$lang['add_new']='新增';
$lang['value_to']='數值至';
$lang['distinguished_name']='識別名稱';
$lang['current_list_of']='此屬性有';
$lang['values_for_attribute']='下列數值:';
$lang['inappropriate_matching_note']='請注意若您的LDAP伺服器中並未設定等式規則您將會遇到\"無適合的比對\"錯誤';
$lang['enter_value_to_add']='請輸入您要加入的數值';
$lang['new_required_attrs_note']='請注意由於此objectClass定義的';
$lang['syntax']='語法,您必須輸入新屬性';
//copy.php
$lang['copy_server_read_only']='無法在伺服器為唯讀模式時更新資料';
$lang['copy_dest_dn_blank']='目的地識別名稱不能是空白';
$lang['copy_dest_already_exists']='目的地識別名稱 (%s) 已經存在';
$lang['copy_dest_container_does_not_exist']='目的地集合 (%s) 不存在';
$lang['copy_source_dest_dn_same']='來源識別名稱與目的地識別名稱重複';
$lang['copy_copying']='複製中';
$lang['copy_recursive_copy_progress']='遞迴複製作業';
$lang['copy_building_snapshot']='對資料樹建立副本來複製';
$lang['copy_successful_like_to']='複製成功!!您要';
$lang['copy_view_new_entry']='查閱此新紀錄?';
$lang['copy_failed']='以下 DN 複製失敗:';
//edit.php
$lang['missing_template_file']='警告:找不到樣版檔案';
$lang['using_default']='使用預設值';
$lang['template']='樣版';
$lang['must_choose_template']='你必須選擇一個樣版';
$lang['invalid_template']='%s 是錯誤的樣版';
$lang['using_template']='使用樣版';
$lang['go_to_dn']='到 %s';
//copy_form.php
$lang['copyf_title_copy']='複製';
$lang['copyf_to_new_object']='成新物件';
$lang['copyf_dest_dn']='目的地識別名稱';
$lang['copyf_dest_dn_tooltip']='來源資料複製後的完整識別名稱';
$lang['copyf_dest_server']='目的伺服器';
$lang['copyf_note']='提示只有當不同的伺服器間的schema相容才能在不同的伺服器之間進行複製';
$lang['copyf_recursive_copy']='遞迴複製所有此物件的子資料';
$lang['recursive_copy']='遞迴複製';
$lang['filter']='過濾條件';
$lang['filter_tooltip']='只有符合過濾條件的資料會被遞迴複製';
//create.php
$lang['create_required_attribute']='必要的屬性 (%s) 必須有資料';
$lang['redirecting']='正在轉換至...';
$lang['here']='這裡';
$lang['create_could_not_add']='不能新增物件到此LDAP伺服器';
//create_form.php
$lang['createf_create_object']='創造物件';
$lang['createf_choose_temp']='選擇樣版';
$lang['createf_select_temp']='請選擇一個你要建立的紀錄模板';
$lang['createf_proceed']='下一步';
$lang['rdn_field_blank']='相對識別名稱欄位不能是空白';
$lang['container_does_not_exist']='您指定的集合 (%s) 不存在,請重新指定';
$lang['no_objectclasses_selected']='您必須為此物件指定ObjectClasses';
$lang['hint_structural_oclass']='提示:您必須在伺服器上至少';
//creation_template.php
$lang['ctemplate_on_server']='選擇一個objectClass';
$lang['ctemplate_no_template']='在POST變數中並未指定模版';
$lang['ctemplate_config_handler']='您的設定指定了由某個程式來執行此模版';
$lang['ctemplate_handler_does_not_exist']='但此程式在 templates/creation 目錄中找不到';
$lang['create_step1']='步驟 1 之 2:名稱與ObjectClass(es)';
$lang['create_step2']='步驟 2 之 2:指定屬性與數值';
$lang['relative_distinguished_name']='相對識別名稱';
$lang['rdn']='相對識別名稱';
$lang['rdn_example']='(範例: cn=MyNewPerson)(範例: cn=MyNewPerson)';
$lang['container']='集合';
// search.php
$lang['you_have_not_logged_into_server']='您必須先登入伺服器才能在伺服器執行搜尋';
$lang['click_to_go_to_login_form']='點選這邊回去登入表單';
$lang['unrecognized_criteria_option']='無法辨識的基準';
$lang['if_you_want_to_add_criteria']='如果您要加入自己的基準到項目列表中請編輯search.php';
$lang['entries_found']='找到的紀錄:';
$lang['filter_performed']='執行過濾條件';
$lang['search_duration']='phpLDAPadmin將會';
$lang['seconds']='馬上執行查詢';
// search_form_advanced.php
$lang['scope_in_which_to_search']='搜尋範圍';
$lang['scope_sub']='Sub (整個子樹)';
$lang['scope_one']='One (單一階層下)';
$lang['scope_base']='Base (只有基礎識別名稱)';
$lang['standard_ldap_search_filter']='標準的LDAP搜尋條件. 如: (&(sn=Smith)(givenname=David))';
$lang['search_filter']='過濾搜尋';
$lang['list_of_attrs_to_display_in_results']='下列為搜尋結果(以 , 區隔)';
$lang['equals']='等於';
$lang['starts with']='開始於';
$lang['contains']='內含';
$lang['ends with']='結束於';
$lang['sounds like']='喜愛的聲音';
// server_info.php
$lang['could_not_fetch_server_info']='無法從伺服器取得 LDAP 資訊';
$lang['server_info_for']='伺服器資訊:';
$lang['server_reports_following']='伺服器回報下列資訊:';
$lang['nothing_to_report']='此伺服器沒有資訊可以回報';
//update.php
$lang['update_array_malformed']='無法更新陣列可能是phpLDAPadmin的bug請回報此問題';
$lang['could_not_perform_ldap_modify']='無法執行ldap_modify操作';
// update_confirm.php
$lang['do_you_want_to_make_these_changes']='您確定要做這些更動?';
$lang['attribute']='屬性';
$lang['old_value']='原設定值';
$lang['new_value']='新設定植';
$lang['attr_deleted']='[屬性已刪除]';
$lang['commit']='送出';
$lang['cancel']='取消';
$lang['you_made_no_changes']='您並沒有做任何更動';
$lang['go_back']='回上頁';
// welcome.php
$lang['welcome_note']='請用左邊的選單瀏覽';
$lang['credits']='成員列表';
$lang['changelog']='更新紀錄';
$lang['donate']='捐獻';
// view_jpeg_photo.php
$lang['unsafe_file_name']='不安全的檔案名稱:';
$lang['no_such_file']='沒有以下檔案:';
//function.php
$lang['auto_update_not_setup']='您在設定中開啟 <b>%s</b>的auto_uid_numbers功能但並未指定auto_uid_number_mechanism請修正此問題';
$lang['uidpool_not_set']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為uidpool但並未指定audo_uid_number_uid_pool_dn請修正此問題再繼續';
$lang['uidpool_not_exist']='您再設定檔(\"%s\")中指定的uidPool機制並不存在';
$lang['specified_uidpool']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為search但您並未指定auto_uid_number_search_base請修正此問題再繼續';
$lang['auto_uid_invalid_credential']='無法以您的auto_uid設定登入<b>%s</b>,請檢查您的設定檔';
$lang['bad_auto_uid_search_base']='您在phpLDAPadmin設定中對伺服器%s指定了無效的auto_uid_search_base';
$lang['auto_uid_invalid_value']='您的auto_uid_number_mechanism (\"%s\") 設定是無效的只有uidpool與search為有效設定請修正此問題';
$lang['error_auth_type_config']='錯誤您的設定有錯誤變數auth_type只允許session , cookie與config您的設定值 ';
$lang['php_install_not_supports_tls']='您安裝的 php 並沒有支援 TLS.';
$lang['could_not_start_tls']='無法啟動 TLS 請檢查您的 LDAP 伺服器設定.';
$lang['could_not_bind_anon']='伺服器不接受匿名登入';
$lang['anonymous_bind']='匿名登入';
$lang['bad_user_name_or_password']='錯誤的 使用者名稱 或 密碼.請重新輸入一次.';
$lang['redirecting_click_if_nothing_happens']='正在重新導向...如果瀏覽器沒有動作,請點選這裡.';
$lang['successfully_logged_in_to_server']='成功登入伺服器 %s';
$lang['could_not_set_cookie']='不能設定 cookie';
$lang['ldap_said']='伺服器回應: %s';
$lang['ferror_error']='錯誤';
$lang['fbrowse']='瀏覽';
$lang['delete_photo']='刪除相片';
$lang['install_not_support_blowfish']='您所安裝的 PHP 並不支援 Blowfish 加密';
$lang['install_no_mash']='您所安裝的 PHP 並沒有 mhash() 函數,無法進行 SHA 加密';
$lang['jpeg_contains_errors']='jpegPhoto 內容發生錯誤<br />';
$lang['ferror_number']='錯誤碼: %s (%s)';
$lang['ferror_discription']='說明: %s <br /><br />';
$lang['ferror_number_short']='錯誤編號: %s';
$lang['ferror_discription_short']='說明: (無任何說明內容)<br />';
$lang['ferror_submit_bug']='這是 phpLDAPadmin 的 bug? 如果是,請<a href=\"%s\">回報這個Bug</a>.';
$lang['ferror_unrecognized_num']='無法辨識的錯誤代碼:';
$lang['ferror_nonfatil_bug']='<center><table class=\"notice\"><tr><td colspan=\"2\"><center><img src=\"images/warning.png\" height=\"12\" width=\"13\" />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\"2\"><center><a target=\"new\" href=\"%s\">
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug']='恭喜! 您發現了phpLDAPadmin的bug.<br /><br /> <table class=\"bug\">
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Level:</td><td><b>%s</b></td></tr>
<tr><td>File:</td><td><b>%s</b></td></tr>
<tr><td>Line:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title']='匯入 LDIF 檔案';
$lang['select_ldif_file']='選擇一個 LDIF 檔案:';
$lang['select_ldif_file_proceed']='下一步';
//ldif_import
$lang['add_action']='增加中...';
$lang['delete_action']='刪除中...';
$lang['rename_action']='更名中...';
$lang['modify_action']='改變中...';
$lang['warning_no_ldif_version_found']='找不到版本資訊預設使用版本1';
$lang['valid_dn_line_required']='需要有效的識別名稱行';
$lang['missing_uploaded_file']='找不到指定的上傳檔案';
$lang['no_ldif_file_specified.']='沒有指定LDIF檔案請重試';
$lang['ldif_file_empty']='上傳的 LDIF 檔案是空白的';
$lang['file']='檔案';
$lang['number_bytes']='%s bytes';
$lang['failed']='失敗';
$lang['ldif_parse_error']='LDIF 解析錯誤';
$lang['ldif_could_not_add_object']='無法新增 object:';
$lang['ldif_could_not_rename_object']='無法重新命名 object:';
$lang['ldif_could_not_delete_object']='無法刪除 object:';
$lang['ldif_could_not_modify_object']='無法修改 object:';
$lang['ldif_line_number']='行數:';
$lang['ldif_line']='行:';
// Exports
$lang['export_format']='匯出格式';
$lang['line_ends']='斷行';
$lang['must_choose_export_format']='你必須選擇一種匯出格式';
$lang['invalid_export_format']='無效的匯出格式';
$lang['no_exporter_found']='沒有可用的匯出程式';
$lang['error_performing_search']='在執行搜尋時發生錯誤';
$lang['showing_results_x_through_y']='透過 %s 顯示結果 %s';
$lang['searching']='搜索中...';
$lang['size_limit_exceeded']='注意:到達搜尋大小上限';
$lang['entry']='紀錄';
$lang['ldif_export_for_dn']='匯出 LDIF :';
$lang['generated_on_date']='由';
$lang['total_entries']='全部的紀錄';
$lang['dsml_export_for_dn']='匯出 DSLM :';
// logins
$lang['could_not_find_user']='找不到使用者 \"%s\"';
$lang['password_blank']='您沒有輸入密碼欄位.';
$lang['login_cancelled']='已經取消登入.';
$lang['no_one_logged_in']='在此伺服器尚無人登入.';
$lang['could_not_logout']='無法登出.';
$lang['unknown_auth_type']='未知的認證模式: %s';
$lang['logged_out_successfully']='成功的從 %s 伺服器登出';
$lang['authenticate_to_server']='登入伺服器 %s';
$lang['warning_this_web_connection_is_unencrypted']='警告: 這個網頁連線是沒有加密的.';
$lang['not_using_https']='您並未使用https加密連線您的瀏覽器將直接以明碼傳送您的帳號與密碼';
$lang['login_dn']='登入 DN';
$lang['user_name']='使用者名稱';
$lang['password']='密碼';
$lang['authenticate']='驗證';
// Entry browser
$lang['entry_chooser_title']='紀錄選擇器';
// Index page
$lang['need_to_configure']='您必須先設定phpLDAPadmin請依照config.php.example編輯config.php';
// Mass deletes
$lang['no_deletes_in_read_only']='在唯讀模式時不允許刪除資料';
$lang['error_calling_mass_delete']='呼叫mass_delete.php時發生錯誤mass_delete不在POST變數中';
$lang['mass_delete_not_array']='mass_delete POST變數不是陣列';
$lang['mass_delete_not_enabled']='大量刪除功能並未開啟請在config.php中開啟此功能';
$lang['mass_deleting']='大量刪除';
$lang['mass_delete_progress']='正在 \"%s\" 伺服器上進行刪除程序';
$lang['malformed_mass_delete_array']='錯誤的大量刪除陣列';
$lang['no_entries_to_delete']='您沒有選擇任何要刪除的紀錄';
$lang['deleting_dn']='刪除 %s';
$lang['total_entries_failed']='無法刪除紀錄 %s %s';
$lang['all_entries_successful']='全部刪除完成';
$lang['confirm_mass_delete']='確認要刪除 %s 登入在伺服器 %s上';
$lang['yes_delete']='沒錯,刪除吧!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed']='當此記錄有子紀錄時無法重新命名';
$lang['no_rdn_change']='您並沒有改變相對識別名稱';
$lang['invalid_rdn']='無效的相對識別名稱';
$lang['could_not_rename']='無法重新命名';
?>

180
ldap_supported_oids.txt Normal file
View File

@@ -0,0 +1,180 @@
# $Header: /cvsroot/phpldapadmin/phpldapadmin/ldap_supported_oids.txt,v 1.1 2005/03/07 20:24:42 wurley Exp $
# If you find some reliable and more meaningful descriptions to this OIDS,
# then please let the phpldapadmin development know so that this file can be
# more descriptive.
1.2.826.0.1.334810.2.3 "LDAP_CONTROL_VALUESRETURNFILTER"
1.2.826.0.1.3344810.2.3 "Matched Values Control. RFC 3876 control"
1.2.826.0.1050.11.1.1 "Read-Only LDAP Server"
1.2.826.0.1050.11.2.1 "Read-Write LDAP Server"
1.2.826.0.1050.11.3.1 "White Pages Application LDAP Server"
1.2.826.0.1050.11.4.1 "Certificate Application LDAP Server"
1.2.826.0.1050.11.5.1 "Single Sign On Application LDAP Server"
1.2.840.113549.6.0.0 "Signed Operation"
1.2.840.113549.6.0.1 "Demand Signed Result"
1.2.840.113549.6.0.2 "Signed Result RFC 2649"
1.2.840.113556.1.4.319 "Pages Results RFC 2696"
1.2.840.113556.1.4.417 "Show deleted control (Stateless)"
1.2.840.113556.1.4.473 "LDAP Server Sort Result extesion"
1.2.840.113556.1.4.474 "LDAP Server Sort Result extension response control"
1.2.840.113556.1.4.521 "Cross-domain move control (Stateless)"
1.2.840.113556.1.4.528 "Server search notification control (Forbidden)"
1.2.840.113556.1.4.529 "Extended DN control (Stateless)"
1.2.840.113556.1.4.616 "LDAP_CONTROL_REFERRALS"
1.2.840.113556.1.4.619 "Lazy commit control (Stateless)"
1.2.840.113556.1.4.800 "LDAP_CAP_ACTIVE_DIRECTORY_OID"
1.2.840.113556.1.4.801 "Security descriptor flags control (Stateless)"
1.2.840.113556.1.4.802 "Attribute Range Option"
1.2.840.113556.1.4.803 "LDAP_MATCHING_RULE_BIT_AND"
1.2.840.113556.1.4.804 "LDAP_MATCHING_RULE_BIT_OR"
1.2.840.113556.1.4.805 "Tree Delete"
1.2.840.113556.1.4.841 "Directory synchronization control (Stateless)"
1.2.840.113556.1.4.906 "Microsoft Large Integer"
1.2.840.113556.1.4.970 "Get stats control (Stateless)"
1.2.840.113556.1.4.1302 "Microsoft OID used with DEN Attributes"
1.2.840.113556.1.4.1338 "Verify name control (Stateless)"
1.2.840.113556.1.4.1339 "Domain scope control (Stateless)"
1.2.840.113556.1.4.1340 "Search options control (Stateless)"
1.2.840.113556.1.4.1413 "LDAP ease modify restrictions"
1.2.840.113556.1.4.1504 "Attribute scoped query control (Stateless)"
1.2.840.113556.1.4.1670 "LDAP_CAP_ACTIVE_DIRECTORY_V51_OID"
1.2.840.113556.1.4.1781 "Fast concurrent bind extended operation (Forbidden)"
1.2.840.113556.1.4.1791 "LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID"
1.2.840.113556.1.4.1852 "LDAP_SERVER_QUOTA_CONTROL_OID"
1.3.6.1.1.7.1 "LCUP Sync Request Control. RFC 3928 control"
1.3.6.1.1.7.2 "LCUP Sync Update Control. RFC 3928 control"
1.3.6.1.1.7.3 "LCUP Sync Done Control. RFC 3928 control"
1.3.6.1.1.8 "Cancel Operation. RFC 3909 extension"
1.3.6.1.4.1.42.2.27.8.5.1 "passwordPolicyRequest"
1.3.6.1.4.1.1466.101.119.1 "Dynamic Directory Services Refresh Request RFC2589"
1.3.6.1.4.1.1466.20036 "LDAP_NOTICE_OF_DISCONNECTION"
1.3.6.1.4.1.1466.20037 "Start TLS extended operation RFC2830"
1.3.6.1.4.1.1466.29539.1 "LDAP_CONTROL_ATTR_SIZELIMIT"
1.3.6.1.4.1.1466.29539.2 "LDAP_CONTROL_NO_COPY"
1.3.6.1.4.1.1466.29539.3 "LDAP_CONTROL_PARTIAL_COPY"
1.3.6.1.4.1.1466.29539.5 "LDAP_CONTROL_NO_CHAINING"
1.3.6.1.4.1.1466.29539.7 "LDAP_CONTROL_ALIAS_ON_UPDATE"
1.3.6.1.4.1.1466.29539.10 "LDAP_CONTROL_TRIGGER"
1.3.6.1.4.1.1466.29539.12 "nsTransmittedControl"
1.3.6.1.4.1.4203.1.5.1 "All Operational Attribute RFC 3673"
1.3.6.1.4.1.4203.1.5.2 "Return of all attributes of an object class"
1.3.6.1.4.1.4203.1.5.3 "Supports absolute True (&) and False (|) filters"
1.3.6.1.4.1.4203.1.5.4 "Server supports storing attributes with language tag options in the DIT"
1.3.6.1.4.1.4203.1.5.5 "Server supports language range matching of attributes with language tag options stored in the DIT"
1.3.6.1.4.1.4203.1.10.1 "Subentries. RFC 3672 control"
1.3.6.1.4.1.4203.1.10.2 "LDAP_CONTROL_NOOP"
1.3.6.1.4.1.4203.1.11.1 "Modify Password. RFC 3062 extension"
1.3.6.1.4.1.4203.1.11.2 "LDAP Cancel Extended Operation"
1.3.6.1.4.1.4203.1.11.3 "Who Am I? Extended Operation"
1.3.6.1.4.1.4203.666.5.1 "Subentries Control"
1.3.6.1.4.1.4203.666.5.2 "NO OP Control"
1.3.18.0.2.12.1 "The ACL credential controls provide a method to flow a subject's credentials associated with a bind."
1.3.18.0.2.12.5 "tranExtOpInit"
1.3.18.0.2.12.6 "tranExtOpInit"
2.16.840.1.113531.18.2.1 "LDAP_C_SETOPTIONS_OID"
2.16.840.1.113531.18.2.2 "LDAP_C_SETDONTUSECOPY_OID"
2.16.840.1.113531.18.2.3 "LDAP_C_SETLOCALSCOPE_OID"
2.16.840.1.113531.18.2.4 "Return operational attributes as well as user attributes"
2.16.840.1.113531.18.2.5 "Return only subentries"
2.16.840.1.113531.18.2.6 "LDAP_C_SETUSEALIAS_OID"
2.16.840.1.113531.18.2.7 "LDAP_C_SETPREFERCHAIN_OID"
2.16.840.1.113531.18.2.8 "LDAP_C_SETX500DN_OID"
2.16.840.1.113531.18.2.9 "LDAP_C_SETCOPYSHALLDO_OID"
2.16.840.1.113531.18.2.10 "LDAP_C_SETDONTMAPATTRS_OID"
2.16.840.1.113531.18.2.11 "Return normal entries as well as sub-entries"
2.16.840.1.113719.1.27.99.1 "Superior References"
2.16.840.1.113719.1.27.100.1 "ndsToLdapResponse"
2.16.840.1.113719.1.27.100.2 "ndsToLdapRequest"
2.16.840.1.113719.1.27.100.3 "createNamingContextRequest"
2.16.840.1.113719.1.27.100.4 "createNamingContextResponse"
2.16.840.1.113719.1.27.100.5 "mergeNamingContextRequest"
2.16.840.1.113719.1.27.100.6 "mergeNamingContextResponse"
2.16.840.1.113719.1.27.100.7 "addReplicaRequest"
2.16.840.1.113719.1.27.100.8 "addReplicaResponse"
2.16.840.1.113719.1.27.100.9 "refreshLDAPServerRequest"
2.16.840.1.113719.1.27.100.10 "refreshLDAPServerResponse"
2.16.840.1.113719.1.27.100.11 "removeReplicaRequest"
2.16.840.1.113719.1.27.100.12 "removeReplicaResponse"
2.16.840.1.113719.1.27.100.13 "namingContextEntryCountRequest"
2.16.840.1.113719.1.27.100.14 "namingContextEntryCountResponse"
2.16.840.1.113719.1.27.100.15 "changeReplicaTypeRequest"
2.16.840.1.113719.1.27.100.16 "changeReplicaTypeResponse"
2.16.840.1.113719.1.27.100.17 "getReplicaInfoRequest"
2.16.840.1.113719.1.27.100.18 "getReplicaInfoResponse"
2.16.840.1.113719.1.27.100.19 "listReplicaRequest"
2.16.840.1.113719.1.27.100.20 "listReplicaResponse"
2.16.840.1.113719.1.27.100.21 "receiveAllUpdatesRequest"
2.16.840.1.113719.1.27.100.22 "receiveAllUpdatesResponse"
2.16.840.1.113719.1.27.100.23 "sendAllUpdatesRequest"
2.16.840.1.113719.1.27.100.24 "sendAllUpdatesResponse"
2.16.840.1.113719.1.27.100.25 "requestNamingContextSyncRequest"
2.16.840.1.113719.1.27.100.26 "requestNamingContextSyncResponse"
2.16.840.1.113719.1.27.100.27 "requestSchemaSyncRequest"
2.16.840.1.113719.1.27.100.28 "requestSchemaSyncResponse"
2.16.840.1.113719.1.27.100.29 "abortNamingContextOperationRequest"
2.16.840.1.113719.1.27.100.30 "abortNamingContextOperationResponse"
2.16.840.1.113719.1.27.100.31 "Get Bind DN Request"
2.16.840.1.113719.1.27.100.32 "Get Bind DN Response"
2.16.840.1.113719.1.27.100.33 "Get Effective Privileges Request"
2.16.840.1.113719.1.27.100.34 "Get Effective Privileges Response"
2.16.840.1.113719.1.27.100.35 "Set Replication Filter Request"
2.16.840.1.113719.1.27.100.36 "Set Replication Filter Response"
2.16.840.1.113719.1.27.100.37 "Get Replication Filter Request"
2.16.840.1.113719.1.27.100.38 "Get Replication Filter Response"
2.16.840.1.113719.1.27.100.39 "Create Orphan Partition Request"
2.16.840.1.113719.1.27.100.40 "Create Orphan Partition Response"
2.16.840.1.113719.1.27.100.41 "Remove Orphan Partition Request"
2.16.840.1.113719.1.27.100.42 "Remove Orphan Partition Response"
2.16.840.1.113719.1.27.100.43 "Trigger Backlinker Request"
2.16.840.1.113719.1.27.100.44 "Trigger Backlinker Response"
2.16.840.1.113719.1.27.100.47 "Trigger Janitor Request"
2.16.840.1.113719.1.27.100.48 "Trigger Janitor Response"
2.16.840.1.113719.1.27.100.49 "Trigger Limber Request"
2.16.840.1.113719.1.27.100.50 "Trigger Limber Response"
2.16.840.1.113719.1.27.100.51 "Trigger Skulker Request"
2.16.840.1.113719.1.27.100.52 "Trigger Skulker Response"
2.16.840.1.113719.1.27.100.53 "Trigger Schema Synch Request"
2.16.840.1.113719.1.27.100.54 "Trigger Schema Synch Response"
2.16.840.1.113719.1.27.100.55 "Trigger Partition Purge Request"
2.16.840.1.113719.1.27.100.56 "Trigger Partition Purge Response"
2.16.840.1.113719.1.27.100.79 "Monitor Events Request"
2.16.840.1.113719.1.27.100.80 "Monitor Events Response"
2.16.840.1.113719.1.27.100.81 "Event Notification"
2.16.840.1.113719.1.27.101.1 "Duplicate Entry Request"
2.16.840.1.113719.1.27.101.2 "DuplicateSearchResult"
2.16.840.1.113719.1.27.101.3 "DuplicateEntryResponseDone"
2.16.840.1.113719.1.27.101.5 "Simple Password"
2.16.840.1.113719.1.27.101.6 "Forward Reference"
2.16.840.1.113719.1.142.100.1 "startFramedProtocolRequest"
2.16.840.1.113719.1.142.100.2 "startFramedProtocolResponse"
2.16.840.1.113719.1.142.100.3 "ReplicationUpdate"
2.16.840.1.113719.1.142.100.4 "endFramedProtocolRequest"
2.16.840.1.113719.1.142.100.5 "endFramedProtocolResponse"
2.16.840.1.113719.1.142.100.6 "lburpOperationRequest"
2.16.840.1.113719.1.142.100.7 "lburpOperationResponse"
2.16.840.1.113730.3.4 "Netscape LDAPv3 controls"
2.16.840.1.113730.3.4.2 "Manage DSA IT LDAPv3 control"
2.16.840.1.113730.3.4.3 "Persistent Search LDAPv3 control"
2.16.840.1.113730.3.4.4 "Netscape Password Expired LDAPv3 control"
2.16.840.1.113730.3.4.5 "Netscape Password Expiring LDAPv3 control"
2.16.840.1.113730.3.4.6 "Netscape NT Synchronization Client LDAPv3 control"
2.16.840.1.113730.3.4.7 "Entry Change Notification LDAPv3 control"
2.16.840.1.113730.3.4.8 "Transaction ID Request Control"
2.16.840.1.113730.3.4.9 "VLV Request LDAPv3 control"
2.16.840.1.113730.3.4.10 "VLV Response LDAPv3 control"
2.16.840.1.113730.3.4.11 "Transaction ID Response Control"
2.16.840.1.113730.3.4.12 "Proxied Authorization (version 1) control"
2.16.840.1.113730.3.4.13 "iPlanet Directory Server Replication Update Information Control"
2.16.840.1.113730.3.4.14 "iPlanet Directory Server "search on specific backend" control"
2.16.840.1.113730.3.4.15 "Authentication Response Control"
2.16.840.1.113730.3.4.16 "Authentication Request Control"
2.16.840.1.113730.3.4.17 "Real Attributes Only Request Control"
2.16.840.1.113730.3.4.18 "Proxied Authorization (version 2) Control"
2.16.840.1.113730.3.4.999 "iPlanet Replication Modrdn Extra Mods Control"
2.16.840.1.113730.3.5.3 "iPlanet Start Replication Request Extended Operation"
2.16.840.1.113730.3.5.4 "iPlanet Replication Response Extended Operation"
2.16.840.1.113730.3.5.5 "iPlanet End Replication Request Extended Operation"
2.16.840.1.113730.3.5.6 "iPlanet Replication Entry Request Extended Operation"
2.16.840.1.113730.3.5.7 "iPlanet Bulk Import Start Extended Operation"
2.16.840.1.113730.3.5.8 "iPlanet Bulk Import Finished Extended Operation"

View File

@@ -1,6 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_functions.php,v 1.23 2004/04/18 19:21:54 xrenard Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_functions.php,v 1.26 2005/02/25 13:44:06 wurley Exp $
/**
* @todo put the display_parse_error method in ldif_import here
@@ -18,6 +17,7 @@
/**
* This class represente an entry in the ldif file
* @package phpLDAPadmin
*/
class LdifEntry{
@@ -98,6 +98,7 @@ class LdifEntry{
* This exception is similar to the one in LdifReader
* Should be remove latter
* see comment for the class Ldif_LdapEntryReader
* @package phpLDAPadmin
*/
class LdifEntryReaderException{
@@ -126,6 +127,7 @@ class LdifEntryReaderException{
/**
* Class in charge of reading a paricular entry
* @package phpLDAPadmin
*/
class LdifEntryReader{
@@ -150,11 +152,13 @@ class LdifEntryReader{
*
* @param String[] $lines the line of the entry
*/
function LdifEntryReader( &$lines ){
$this->lines = &$lines;
$this->_currentLineNumber = 1;
$this->_error = 0;
}
function LdifEntryReader(){}
function readLines(&$lines){
$this->lines = &$lines;
$this->_currentLineNumber = 1;
$this->_error = 0;
}
/**
* Read the change type action associated with the entry
@@ -520,6 +524,7 @@ $arr=array();
/**
* Exception which can be raised during processing the ldif file
* @package phpLDAPadmin
*/
class LdifReaderException{
@@ -545,6 +550,7 @@ class LdifReaderException{
/**
* Helper base class to read file.
* @package phpLDAPadmin
*/
class FileReader{
@@ -615,6 +621,7 @@ class FileReader{
/**
* Main parser of the ldif file
* @package phpLDAPadmin
*/
class LdifReader extends FileReader{
@@ -642,6 +649,7 @@ class LdifReader extends FileReader{
// continuous mode operation flag
var $continuous_mode;
var $ldifEntryReader = NULL;
/**
* Private constructor of the LDIFReader class.
* Marked as private as we need to instantiate the class
@@ -656,6 +664,7 @@ class LdifReader extends FileReader{
$this->_currentLines = array();
$this->_warningMessage="";
$this->_warningVersion="";
$this->ldifEntryReader = new LdifEntryReader();
//need to change this one
$this->_currentEntry = new LdifEntry();
}
@@ -701,14 +710,28 @@ class LdifReader extends FileReader{
}
/**
* Return the current entry object
* Return the current entry as an object
*
* @return Ldap_Ldif_entry the current ldif entry
*/
function getCurrentEntry(){
function fetchEntryObject(){
return $this->_currentEntry;
}
/**
* Return the current entry as an array
*
*/
function fetchEntryArray(){}
/**
* Return the entry as it is.
*
* @return String[] The lines from the entry.
*/
function fetchEntryRaw(){
return getCurrentLines();
}
/**
* Get the lines of the next entry
*
@@ -877,15 +900,15 @@ class LdifReader extends FileReader{
function readEntry(){
if($lines = $this->nextLines()){
$ldifEntryReader = new LdifEntryReader($lines);
$this->ldifEntryReader->readLines($lines);
//fetch entry
$entry = $ldifEntryReader->getEntry();
$entry = $this->ldifEntryReader->getEntry();
$this->_currentEntry = $entry;
// if any exception has raised, catch it and throw it to the main reader
if($ldifEntryReader->hasRaisedException()){
$exception = $ldifEntryReader->getLdifEntryReaderException();
$faultyLineNumber = $this->dnLineNumber + $exception->lineNumber - 1;
$this->setLdapLdifReaderException(new LdifReaderException($faultyLineNumber,$exception->currentLine,$exception->message));
if($this->ldifEntryReader->hasRaisedException()){
$exception = $this->ldifEntryReader->getLdifEntryReaderException();
$faultyLineNumber = $this->dnLineNumber + $exception->lineNumber - 1;
$this->setLdapLdifReaderException(new LdifReaderException($faultyLineNumber,$exception->currentLine,$exception->message));
if ( ! $this->continuous_mode )
return 0;
@@ -904,6 +927,7 @@ class LdifReader extends FileReader{
/**
* Helper class to write entries into the ldap server
* @package phpLDAPadmin
*/
class LdapWriter{

View File

@@ -1,23 +1,29 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import.php,v 1.27 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import.php,v 1.30 2005/03/05 02:37:18 wurley Exp $
/*
* ldif_import.php
/**
* Imports an LDIF file to the specified server_id.
*
* Variables that come in as POST vars:
* - ldif_file (as an uploaded file)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$debug = true;
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$continuous_mode = isset( $_POST['continuous_mode'] ) ?1:0;
$server_name = $servers[$server_id]['name'];
$file = $_FILES['ldif_file']['tmp_name'];
$remote_file = $_FILES['ldif_file']['name'];
$file_len = $_FILES['ldif_file']['size'];
@@ -25,8 +31,6 @@ $file_len = $_FILES['ldif_file']['size'];
is_array( $_FILES['ldif_file'] ) or pla_error( $lang['missing_uploaded_file'] );
file_exists( $file ) or pla_error( $lang['no_ldif_file_specified'] );
$file_len > 0 or pla_error( $lang['ldif_file_empty'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
@@ -34,7 +38,7 @@ include './header.php'; ?>
<h3 class="title"><?php echo $lang['import_ldif_file_title']; ?></h3>
<h3 class="subtitle">
<?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars( $server_name ); ?></b>
<?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b>
<?php echo $lang['file']; ?>: <b><?php echo htmlspecialchars( $remote_file ); ?>
(<?php echo sprintf( $lang['number_bytes'], number_format( $file_len ) ); ?>)</b>
</h3>
@@ -64,14 +68,14 @@ $actionErrorMsg['moddn']= $lang['ldif_could_not_rename_object'];
$actionErrorMsg['modify']= $lang['ldif_could_not_modify_object'];
// get the connection
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
//$ds = pla_ldap_connect( $server_id );
//pla_ldap_connection_is_error( $ds );
//instantiate the reader
$ldifReader = new LdifReader($file,$continuous_mode);
//instantiate the writer
$ldapWriter = new LdapWriter($ds);
$ldapWriter = new LdapWriter($ldapserver->connect());
// if ldif file has no version number, just display a warning
if(!$ldifReader->hasVersionNumber()){
@@ -83,7 +87,7 @@ if( $continuous_mode ){
while( $ldifReader->readEntry() ){
$i++;
// get the entry.
$currentEntry = $ldifReader->getCurrentEntry();
$currentEntry = $ldifReader->fetchEntryObject();
$changeType = $currentEntry->getChangeType();
echo "<small>".$actionString[$changeType]." ".$currentEntry->dn;
@@ -99,8 +103,8 @@ echo "<small><span style=\"color:red;\">".$lang['desc'].": ".$exception->message
echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>";
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
echo "<small><span style=\"color:red;\">Error Code: ".ldap_errno($ds)."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".ldap_error($ds)."</span></small><br />";
echo "<small><span style=\"color:red;\">Error Code: ".ldap_errno($ldapserver->connect())."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".ldap_error($ldapserver->connect())."</span></small><br />";
}
}
if( 0 == $i % 5 )
@@ -122,14 +126,14 @@ while($entry = $ldifReader->readEntry()){
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br><br>";
reload_left_frame();
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
}
// if any errors occurs during reading file ,"catch" the exception and display it here.
if($ldifReader->hasRaisedException()){
//get the entry which raise the exception,quick hack here
$currentEntry = $ldifReader->getCurrentEntry();
$currentEntry = $ldifReader->fetchEntryObject();
if($currentEntry->dn !=""){
echo "<small>".$actionString[$currentEntry->getChangeType()]." ".$currentEntry->dn." <span style=\"color:red;\">".$lang['failed']."</span></small><br>";

View File

@@ -1,30 +1,34 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import_form.php,v 1.16 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import_form.php,v 1.18 2005/03/05 06:27:06 wurley Exp $
/*
* ldif_import_form.php
/**
* Displays a form to allow the user to upload and import
* an LDIF file.
*
* Variables expected as GET vars:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_name = $servers[$server_id]['name'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['import_ldif_file_title']?></h3>
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $server_name ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b></h3>
<br />
<br />

156
login.php
View File

@@ -1,6 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login.php,v 1.35 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login.php,v 1.41 2005/04/03 09:24:41 wurley Exp $
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the login info
@@ -12,8 +11,12 @@
*
* Variables that come in as POST vars:
* - login_dn
* - login_pass
* - login_pass
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
@@ -22,87 +25,115 @@ require './common.php';
isset( $_POST['server_id'] ) or header( "Location: index.php" );
$server_id = $_POST['server_id'];
$ldapserver = new LDAPServer($server_id);
$dn = isset( $_POST['login_dn'] ) ? $_POST['login_dn'] : null;
$uid = isset( $_POST['uid'] ) ? $_POST['uid'] : null;
$pass = isset( $_POST['login_pass'] ) ? $_POST['login_pass'] : null;
$anon_bind = isset( $_POST['anonymous_bind'] ) && $_POST['anonymous_bind'] == 'on' ? true : false;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
if( ! $anon_bind ) {
if( ! $anon_bind )
strlen($pass) or pla_error( $lang['password_blank'] );
}
$auth_type = $servers[$server_id]['auth_type'];
$save_auth_type = $ldapserver->auth_type;
if( $anon_bind ) {
$dn = null;
$pass = null;
}
// Checks if the login_attr option is enabled for this host,
// which allows users to login with a simple username like 'jdoe' rather
// than the fully qualified DN, 'uid=jdoe,ou=people,,dc=example,dc=com'.
elseif ( login_attr_enabled( $server_id ) ) {
elseif ( $ldapserver->isLoginAttrEnabled() ) {
// Is this a login string (printf-style)
if( login_string_enabled( $server_id ) ) {
$dn = str_replace( '<username>', $uid, get_login_string( $server_id ) );
} else {
// This is a standard login_attr
// Is this a login string (printf-style)
if( $ldapserver->isLoginStringEnabled() ) {
$dn = str_replace( '<username>', $uid, $ldapserver->getLoginString() );
// Fake the auth_type of config to do searching. This way, the admin can specify
// the DN to use when searching for the login_attr user.
$servers[$server_id]['auth_type'] = 'config';
} else {
// This is a standard login_attr
// search for the "uid" first
set_error_handler( 'temp_login_error_handler' );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
restore_error_handler();
$search_base = isset( $servers[$server_id]['base'] ) && '' != trim( $servers[$server_id]['base'] ) ?
$servers[$server_id]['base'] :
try_to_get_root_dn( $server_id, $ds );
if (!empty($servers[$server_id]['login_class'])) {
$filter = '(&(objectClass='.$servers[$server_id]['login_class'].')('.$servers[$server_id]['login_attr'].'='.$uid.'))';
} else {
$filter = $servers[$server_id]['login_attr'].'='.$uid;
}
$sr = @ldap_search($ds, $search_base, $filter, array('dn'), 0, 1);
$result = @ldap_get_entries($ds, $sr);
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
if( ! $dn ) {
pla_error( $lang['bad_user_name_or_password'] );
}
// Fake the auth_type of config to do searching. This way, the admin can specify
// the DN to use when searching for the login_attr user.
$ldapserver->auth_type = 'config';
// restore the original auth_type
$servers[$server_id]['auth_type'] = $auth_type;
}
set_error_handler( 'temp_login_error_handler' );
if ($ldapserver->login_dn)
$ldapserver->connect(true,false);
else
$ldapserver->connect(true,true);
restore_error_handler();
if (!empty($servers[$ldapserver->server_id]['login_class'])) {
$filter = '(&(objectClass='.$servers[$ldapserver->server_id]['login_class'].')('.$servers[$ldapserver->server_id]['login_attr'].'='.$uid.'))';
} else {
$filter = $servers[$ldapserver->server_id]['login_attr'].'='.$uid;
}
// Got through each of the BASE DNs and test the login.
foreach ($ldapserver->getBaseDN() as $base_dn) {
debug_log(sprintf('login.php: Searching LDAP with base [%s]',$base_dn),9);
$sr = @ldap_search($ldapserver->connect(false), $base_dn, $filter, array('dn'), 0, 1);
$result = @ldap_get_entries($ldapserver->connect(false), $sr);
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
if ($dn) {
debug_log(sprintf('login.php: Got DN [%s] for user ID [%s]',$dn,$uid),5);
break;
}
}
// If we got here then we werent able to find a DN for the login filter.
if( ! $dn ) {
pla_error( $lang['bad_user_name_or_password'] );
}
// restore the original auth_type
$ldapserver->auth_type = $save_auth_type;
}
}
// We fake a 'config' server auth_type to omit duplicated code
$auth_type = $servers[$server_id]['auth_type'];
$servers[$server_id]['auth_type'] = 'config';
$servers[$server_id]['login_dn'] = $dn;
$servers[$server_id]['login_pass'] = $pass;
// We fake a 'config' server auth_type to omit duplicated code
debug_log(sprintf('Setting login type to config with DN [%s]',$dn),9);
$save_auth_type = $ldapserver->auth_type;
$ldapserver->auth_type = 'config';
$servers[$ldapserver->server_id]['login_dn'] = $dn;
$servers[$ldapserver->server_id]['login_pass'] = $pass;
// verify that the login is good
// Verify that dn is allowed to login
if ( ! userIsAllowedLogin($ldapserver,$dn) )
pla_error( $lang['login_not_allowed'] );
debug_log(sprintf('User is not prohibited from logging in - now bind [%s]',$dn),9);
// verify that the login is good
if( null == $dn && null == $pass )
$ds = pla_ldap_connect( $server_id, true, false );
$ds = $ldapserver->connect(true,true,true);
else
$ds = pla_ldap_connect( $server_id, false, false );
$ds = $ldapserver->connect(true,false,true);
if( ! is_resource( $ds ) ) {
debug_log(sprintf('login.php: ds is a [%s]',$ds),9);
if( ! is_resource( $ds ) ) {
if( $anon_bind )
pla_error( $lang['could_not_bind_anon'] );
else
pla_error( $lang['bad_user_name_or_password'] );
}
$servers[$server_id]['auth_type'] = $auth_type;
set_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( $lang['could_not_set_cookie'] );
syslog_msg ( LOG_NOTICE,"Authentification FAILED for $dn" );
}
$ldapserver->auth_type = $save_auth_type;
set_login_dn( $ldapserver, $dn, $pass, $anon_bind ) or pla_error( $lang['could_not_set_cookie'] );
set_lastactivity( $ldapserver );
initialize_session_tree();
$_SESSION['tree'][$server_id] = array();
$_SESSION['tree_icons'][$server_id] = array();
$_SESSION['tree'][$ldapserver->server_id] = array();
$_SESSION['tree_icons'][$ldapserver->server_id] = array();
if( ! $anon_bind ) {
syslog_msg ( LOG_NOTICE,"Authentification successful for $dn" );
}
session_write_close();
@@ -113,13 +144,13 @@ include realpath( 'header.php' );
<script language="javascript">
<?php if( $anon_bind && anon_bind_tree_disabled() ) { ?>
parent.location.href='search.php?server_id=<?php echo $server_id; ?>'
parent.location.href='search.php?server_id=<?php echo $ldapserver->server_id; ?>'
<?php } else { ?>
parent.left_frame.location.reload();
<?php } ?>
<?php if ( isset($custom_welcome_page) and $custom_welcome_page ) { ?>
parent.right_frame.location.href='welcome.php';
<?php } ?>
</script>
@@ -127,10 +158,10 @@ include realpath( 'header.php' );
<br />
<br />
<br />
<?php echo sprintf( $lang['successfully_logged_in_to_server'],
htmlspecialchars( $servers[$server_id]['name'] ) ); ?><br />
<?php echo sprintf( $lang['successfully_logged_in_to_server'],
htmlspecialchars( $ldapserver->name ) ); ?><br />
<?php if( $anon_bind ) { ?>
(<?php echo $lang['anonymous_bind']; ?>)
(<?php echo $lang['anonymous_bind']; ?>)
<?php } ?>
<br />
</center>
@@ -144,10 +175,9 @@ include realpath( 'header.php' );
*/
function temp_login_error_handler( $errno, $errstr, $file, $lineno )
{
global $lang;
global $lang;
if( 0 == ini_get( 'error_reporting' ) || 0 == error_reporting() )
return;
pla_error( $lang['could_not_connect'] . "<br /><br />" . htmlspecialchars( $errstr ) );
return;
pla_error( $lang['could_not_connect'] . "<br /><br />" . htmlspecialchars( $errstr ) );
}
?>

View File

@@ -1,46 +1,40 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login_form.php,v 1.23 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login_form.php,v 1.24 2005/02/25 13:44:06 wurley Exp $
/*
* login_form.php
* Displays the login form for a server for users who specify
* 'cookie' or 'session' for their auth_type.
/**
* Displays the login form for a server for users who specify 'cookie' or 'session' for their auth_type.
*
* Variables that come in as GET vars:
* - server_id
* @param int $server_id - Should come via a GET variable.
* @package phpLDAPadmin
* @author The phpLDAPadmin development team
* @see login.php
*/
/**
*/
require './common.php';
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : null;
$ldapserver = new LDAPServer($server_id);
if( $server_id != null ) {
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
}
$server = $servers[$server_id];
$anonymous_bind_allowed = is_anonymous_bind_allowed( $server_id );
isset( $servers[ $server_id ][ 'auth_type' ] ) or pla_error( $lang['error_auth_type_config'] );
$auth_type = $servers[ $server_id ][ 'auth_type' ];
if( $auth_type != 'cookie' && $auth_type != 'session' )
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $auth_type ) ) );
if (! $ldapserver->auth_type)
pla_error( $lang['error_auth_type_config'] );
if( ! in_array( $ldapserver->auth_type, array( 'cookie', 'session' ) ) )
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $ldapserver->auth_type ) ) );
include './header.php'; ?>
<body>
<?php if( $anonymous_bind_allowed ) { ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<script language="javascript">
<!--
function toggle_disable_login_fields( anon_checkbox )
{
if( anon_checkbox.checked ) {
anon_checkbox.form.<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>.disabled = true;
anon_checkbox.form.<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>.disabled = true;
anon_checkbox.form.login_pass.disabled = true;
} else {
anon_checkbox.form.<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>.disabled = false;
anon_checkbox.form.<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>.disabled = false;
anon_checkbox.form.login_pass.disabled = false;
}
}
@@ -48,21 +42,19 @@ include './header.php'; ?>
</script>
<?php } ?>
<h3 class="title"><?php echo sprintf( $lang['authenticate_to_server'], $servers[$server_id]['name'] ); ?></h3>
<h3 class="title"><?php echo sprintf( $lang['authenticate_to_server'], $ldapserver->name ); ?></h3>
<br />
<?php if( ! isset( $_SERVER['HTTPS'] ) || $_SERVER['HTTPS'] != 'on' ) { ?>
<center>
<span style="color:red">
<acronym title="<?php echo $lang['not_using_https']; ?>">
<?php echo $lang['warning_this_web_connection_is_unencrypted']; ?>
</acronym>
</span>
<br />
</center>
<?php } ?>
</span>
<br />
</center>
<?php } ?>
<br />
@@ -71,28 +63,34 @@ include './header.php'; ?>
<?php if( isset( $_GET['redirect'] ) ) { ?>
<input type="hidden" name="redirect" value="<?php echo rawurlencode( $_GET['redirect'] ) ?>" />
<?php } ?>
<center>
<table class="login">
<tr>
</tr>
<?php if( $anonymous_bind_allowed ) { ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<tr>
<td colspan="2"><small><label for="anonymous_bind_checkbox"><?php echo $lang['anonymous_bind']; ?></label></small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" id="anonymous_bind_checkbox"/></td>
</tr>
<?php } ?>
<tr>
<td><small><?php
if ( login_attr_enabled( $server_id ) )
echo $lang['user_name'];
else
echo $lang['login_dn'];
?></small></td>
<td><input type="text" name="<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>" size="40" value="<?php echo login_attr_enabled( $server_id ) ? '' : $servers[$server_id]['login_dn']; ?>" /></td>
<td><small>
<?php
if ( $ldapserver->isLoginAttrEnabled() )
echo $lang['user_name'];
else
echo $lang['login_dn'];
?>
</small></td>
<td><input type="text" name="<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>" size="40" value="<?php echo $ldapserver->isLoginAttrEnabled() ? '' : $ldapserver->login_dn; ?>" /></td>
</tr>
<tr>
<td><small><?php echo $lang['password']; ?></small></td>
<td><input type="password" size="40" value="" name="login_pass" /></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['authenticate']; ?>" /></center></td>
</tr>

View File

@@ -1,32 +1,34 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/logout.php,v 1.10 2004/10/24 21:25:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/logout.php,v 1.14 2005/03/16 11:20:25 wurley Exp $
/*
* logout.php
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me
* the server_id and I will log out the user (delete the cookie)
*
* Variables that come in as GET vars:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['no_one_logged_in'] );
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer ($server_id);
if( ! isset( $servers[ $server_id ][ 'auth_type' ] ) )
return false;
$auth_type = $servers[ $server_id ][ 'auth_type' ];
if( 'cookie' == $auth_type || 'session' == $auth_type )
unset_login_dn( $server_id ) or pla_error( $lang['could_not_logout'] );
else
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $auth_type ) ) );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['no_one_logged_in'] );
if( in_array($ldapserver->auth_type, array('cookie','session')) ) {
syslog_msg ( LOG_NOTICE,"Logout for " . get_logged_in_dn( $ldapserver ) );
unset_login_dn( $ldapserver ) or pla_error( $lang['could_not_logout'] );
unset_lastactivity( $ldapserver );
} else
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $ldapserver->auth_type ) ) );
include realpath( 'header.php' );
?>
<script language="javascript">
@@ -41,4 +43,3 @@ include realpath( 'header.php' );
</body>
</html>

View File

@@ -1,10 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/mass_delete.php,v 1.9 2004/05/27 12:50:42 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/mass_delete.php,v 1.11 2005/02/25 13:44:06 wurley Exp $
/*
* mass_delete.php
*
/**
* Enables user to mass delete multiple entries using checkboxes.
*
* Variables that come in as GET vars:
@@ -14,121 +11,128 @@
* [cn=bob,dc=example,dc=com] => on
* etc.
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_deletes_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
check_server_id( $server_id ) or
pla_error( $lang['bad_server_id'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_deletes_in_read_only'] );
have_auth_info( $server_id ) or
pla_error( $lang['no_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$confirmed = isset( $_POST['confirmed'] ) ? true : false;
isset( $_POST['mass_delete'] ) or
isset( $_POST['mass_delete'] ) or
pla_error( $lang['error_calling_mass_delete'] );
$mass_delete = $_POST['mass_delete'];
is_array( $mass_delete ) or
is_array( $mass_delete ) or
pla_error( $lang['mass_delete_not_array'] );
mass_delete_enabled( $server_id ) or
$ldapserver->isMassDeleteEnabled() or
pla_error( $lang['mass_delete_not_enabled'] );
$server_name = $servers[ $server_id ][ 'name' ];
require realpath( 'header.php' );
echo "<body>\n";
echo "<h3 class=\"title\">" . $lang['mass_deleting'] . "</h3>\n";
if( $confirmed == true ) {
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $server_name ) . "</h3>\n";
echo "<blockquote>";
echo "<small>\n";
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $ldapserver->name ) . "</h3>\n";
echo "<blockquote>";
echo "<small>\n";
$successfully_delete_dns = array();
$failed_dns = array();
$successfully_delete_dns = array();
$failed_dns = array();
if( ! is_array( $mass_delete ) )
pla_error( $lang['malformed_mass_delete_array'] );
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>" . $lang['no_entries_to_delete'] . "</center>";
die();
if( ! is_array( $mass_delete ) )
pla_error( $lang['malformed_mass_delete_array'] );
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>" . $lang['no_entries_to_delete'] . "</center>";
die();
}
foreach( $mass_delete as $dn => $junk ) {
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) );
flush();
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $server_id, 'dn' => $dn ) ) ) {
$success = @ldap_delete( $ldapserver->connect(), $dn );
if( $success ) {
run_hook ( 'post_entry_delete', array ( 'server_id' => $server_id, 'dn' => $dn ) );
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n";
$successfully_delete_dns[] = $dn;
} else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n";
echo "(" . ldap_error( $ldapserver->connect() ) . ")<br />\n";
$failed_dns[] = $dn;
}
}
foreach( $mass_delete as $dn => $junk ) {
flush();
}
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) );
flush();
echo "<blockquote>";
echo "</small>\n";
if( true === preEntryDelete( $server_id, $dn ) ) {
$success = @ldap_delete( $ds, $dn );
if( $success ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n";
$successfully_delete_dns[] = $dn;
}
else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n";
echo "(" . ldap_error( $ds ) . ")<br />\n";
$failed_dns[] = $dn;
}
}
$failed_count = count( $failed_dns );
$total_count = count( $mass_delete );
flush();
}
if( $failed_count > 0 ) {
echo "<span style=\"color: red; font-weight: bold;\">\n";
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n";
echo "<blockquote>";
echo "</small>\n";
$failed_count = count( $failed_dns );
$total_count = count( $mass_delete );
if( $failed_count > 0 ) {
echo "<span style=\"color: red; font-weight: bold;\">\n";
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n";
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo $lang['all_entries_successful'] . "</span>\n";
}
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo $lang['all_entries_successful'] . "</span>\n";
}
// kill the deleted DNs from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) )
{
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
foreach( $successfully_delete_dns as $dn ) {
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// search and destroy
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// search and destroy
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
}
$_SESSION['tree'] = $tree;
session_write_close();
?>
session_write_close(); ?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php
}
<?php }
} else {
$n = count( $mass_delete );
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $server_name ) . "</h3>\n";
?>
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $ldapserver->name ) . "</h3>\n"; ?>
<center>
Do you really want to delete
Do you really want to delete
<?php echo ($n==1?'this':'these') . ' ' . $n . ' ' . ($n==1?'entry':'entries'); ?>?
<form action="mass_delete.php" method="post">
@@ -148,7 +152,5 @@ if( $confirmed == true ) {
</form>
<?php
}
<?php }
?>

View File

@@ -1,4 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/password_checker.php,v 1.7 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
@@ -14,7 +21,6 @@ if( isset( $_REQUEST['base64'] ) ) {
}
$enc_type = get_enc_type( $hash );
?>
<h3 class="subtitle"><?php echo $lang['password_checker_tool']; ?></h3>
@@ -33,9 +39,9 @@ $enc_type = get_enc_type( $hash );
<tr>
<td></td><td><input type="submit" value="Compare" />
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>";
if( password_check( $hash, $check_password) )
if( password_check( $hash, $check_password) )
echo "<span style=\"color: green\">" . $lang['passwords_match'] . "</span>";
else
echo "<span style=\"color: red\">" . $lang['passwords_do_not_match'] . "</span>";
@@ -45,5 +51,3 @@ $enc_type = get_enc_type( $hash );
</tr>
</table>
</form>

View File

@@ -1,10 +1,16 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/purge_cache.php,v 1.5 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
$purge_session_keys = array( 'schema' );
?>
<body>
@@ -21,7 +27,7 @@ foreach( $purge_session_keys as $key ) {
if( isset( $_SESSION[$key] ) ) {
$size += strlen( serialize( $_SESSION[$key] ) );
unset( $_SESSION[$key] );
}
}
}
session_write_close();

View File

@@ -1,68 +1,70 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rdelete.php,v 1.17 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rdelete.php,v 1.20 2005/03/05 06:27:06 wurley Exp $
/*
* rdelete.php
*
/**
* Recursively deletes the specified DN and all of its children
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id'];
$rdn = get_rdn( $dn );
if( ! $dn )
pla_error( $lang['you_must_specify_a_dn'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], htmlspecialchars( $dn ) ) );
dn_exists( $ldapserver, $dn ) or pla_error( sprintf( $lang['no_such_entry'], htmlspecialchars( $dn ) ) );
include './header.php';
echo "<body>\n";
echo "<h3 class=\"title\">" . sprintf( $lang['deleting_dn'], htmlspecialchars($rdn) ) . "</h3>\n";
echo "<h3 class=\"subtitle\">" . $lang['recursive_delete_progress'] . "</h3>";
echo "<br /><br />";
echo "<small>\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
$del_result = pla_rdelete( $server_id, $dn );
$del_result = pla_rdelete( $ldapserver, $dn );
echo "</small><br />\n";
if( $del_result )
{
if( $del_result ) {
// kill the DN from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) )
{
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
// does it have children? (it shouldn't, but hey, you never know)
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// Get a tree in the session if not already gotten
initialize_session_tree();
// Get a tree in the session if not already gotten
initialize_session_tree();
// search and destroy from the tree sesssion
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
}
@@ -75,52 +77,56 @@ if( $del_result )
parent.left_frame.location.reload();
</script>
<?php
<?php
echo sprintf( $lang['entry_and_sub_tree_deleted_successfully'], '<b>' . htmlspecialchars( $dn ) . '</b>' );
} else {
pla_error( sprintf( $lang['could_not_delete_entry'], htmlspecialchars( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( sprintf( $lang['could_not_delete_entry'], htmlspecialchars( $dn ) ), ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
exit;
function pla_rdelete( $server_id, $dn )
{
function pla_rdelete( $ldapserver, $dn ) {
global $lang;
$children = get_container_contents( $server_id, $dn );
global $ds;
$ds = pla_ldap_connect( $server_id );
$children = get_container_contents( $ldapserver, $dn );
if( ! is_array( $children ) || count( $children ) == 0 ) {
echo "<nobr>" . sprintf( $lang['deleting_dn'], htmlspecialchars( $dn ) ) . "...";
flush();
if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ds ), ldap_errno( $ds ) );
}
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) ) )
if( @ldap_delete( $ldapserver->connect(), $dn ) ) {
run_hook ( 'post_entry_delete',
array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
} else {
foreach( $children as $child_dn ) {
pla_rdelete( $server_id, $child_dn );
pla_rdelete( $ldapserver, $child_dn );
}
echo "<nobr>" . sprintf( $lang['deleting_dn'], htmlspecialchars( $dn ) ) . "...";
flush();
if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ds ), ldap_errno( $ds ) );
}
}
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) ) )
if( @ldap_delete( $ldapserver->connect(), $dn ) ) {
run_hook ( 'post_entry_delete',
array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
}
}
?>

View File

@@ -1,48 +1,47 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/refresh.php,v 1.10 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/refresh.php,v 1.13 2005/03/05 09:41:01 wurley Exp $
/*
* refresh.php
/**
* This script alters the session variable 'tree', by re-querying
* the LDAP server to grab the contents of every expanded container.
*
* Variables that come in as GET vars:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! check_server_id( $server_id ) || ! have_auth_info( $server_id ) )
header( "Location: tree.php" );
if( ! array_key_exists( 'tree', $_SESSION ) )
if( ! $ldapserver->haveAuthInfo() || ! array_key_exists( 'tree', $_SESSION ))
header( "Location: tree.php" );
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
// Get the icon for the base object for this server
$base_dn = $servers[ $server_id ][ 'base' ];
$tree_icons[$server_id][ $base_dn ] = get_icon( $server_id, $base_dn );
// Get the icon for the base object(s) for this server
foreach ($ldapserver->getBaseDN() as $base_dn)
$tree_icons[$server_id][ $base_dn ] = get_icon( $ldapserver, $base_dn );
// get all the icons and container contents for all expanded entries
if( isset($tree[$server_id]) && is_array( $tree[$server_id] ) )
{
foreach( $tree[$server_id] as $dn => $children )
{
$tree[$server_id][$dn] = get_container_contents( $server_id, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
if( isset($tree[$server_id]) && is_array( $tree[$server_id] ) ) {
foreach( $tree[$server_id] as $dn => $children ) {
$tree[$server_id][$dn] = get_container_contents( $ldapserver, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
if( is_array( $tree[$server_id][$dn] ) ) {
foreach( $tree[$server_id][$dn] as $child_dn )
$tree_icons[$server_id][$child_dn] = get_icon( $server_id, $child_dn );
$tree_icons[$server_id][$child_dn] = get_icon( $ldapserver, $child_dn );
sort( $tree[ $server_id ][ $dn ] );
}
}
}
else
{
} else {
header( "Location: tree.php#$server_id" );
}
@@ -51,6 +50,4 @@ $_SESSION['tree_icons'] = $tree_icons;
session_write_close();
header( "Location: tree.php#$server_id" );
?>

View File

@@ -1,78 +1,94 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename.php,v 1.20 2004/05/27 12:50:42 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename.php,v 1.23 2005/03/05 06:27:06 wurley Exp $
/*
* rename.php
* Renames a DN to a different name.
/**
* Renames a DN to a different name.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
* - new_rdn
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = ( $_POST['dn'] );
$server_id = $_POST['server_id'];
$new_rdn = ( $_POST['new_rdn'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$children = get_container_contents( $server_id, $dn, 1 );
$children = get_container_contents( $ldapserver, $dn, 1 );
if( count( $children ) > 0 )
pla_error( $lang['non_leaf_nodes_cannot_be_renamed'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$container = get_container( $dn );
$new_dn = $new_rdn . ',' . $container;
if( $new_dn == $dn )
if( $new_dn == $dn )
pla_error( $lang['no_rdn_change'] );
$dn_attr = explode( '=', $dn );
$dn_attr = $dn_attr[0];
$old_dn_value = pla_explode_dn( $dn );
$old_dn_value = explode( '=', $old_dn_value[0], 2 );
$old_dn_value = $old_dn_value[1];
$new_dn_value = explode( '=', $new_rdn, 2 );
if( count( $new_dn_value ) != 2 || ! isset( $new_dn_value[1] ) )
pla_error( $lang['invalid_rdn'] );
$new_dn_value = $new_dn_value[1];
// Add the new DN attr value to the DN attr (ie, add newName to cn)
$add_new_dn_attr = array( $dn_attr => $new_dn_value );
// Remove the old DN attr value
$remove_old_dn_attr = array( $dn_attr => $old_dn_value );
// attempt to add the new DN attr value (if we can't, die a silent death)
$add_dn_attr_success = @ldap_mod_add( $ds, $dn, $add_new_dn_attr );
if( ! @ldap_rename( $ds, $dn, $new_rdn, $container, false ) )
{
pla_error( $lang['could_not_rename'], ldap_error( $ds ), ldap_errno( $ds ), false );
$success = run_hook ( 'pre_rename_entry', array ( 'server_id' => $server_id,
'old_dn' => $dn, 'new_dn' => $new_dn_value ) );
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ds, $dn, $add_new_dn_attr );
if ( $success ) {
$success = false;
// attempt to add the new DN attr value (if we can't, die a silent death)
$add_dn_attr_success = @ldap_mod_add( $ldapserver->connect(), $dn, $add_new_dn_attr );
if( ! @ldap_rename( $ldapserver->connect(), $dn, $new_rdn, $container, false ) ) {
pla_error( $lang['could_not_rename'], ldap_error( $ldapserver->connect() ),
ldap_errno( $ldapserver->connect() ), false );
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ldapserver->connect(), $dn, $add_new_dn_attr );
} else
$success = true;
} else {
pla_error( $lang['could_not_rename'] );
}
else
{
// attempt to remove the old DN attr value (if we can't, die a silent death)
@ldap_mod_del( $ds, $new_dn, $remove_old_dn_attr );
if( array_key_exists( 'tree', $_SESSION ) )
{
if ( $success ) {
// attempt to remove the old DN attr value (if we can't, die a silent death)
@ldap_mod_del( $ldapserver->connect(), $new_dn, $remove_old_dn_attr );
run_hook ( 'post_rename_entry', array ( 'server_id' => $server_id, 'old_dn' => $dn,
'new_dn' => $new_dn_value ) );
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$old_dn = $dn;
@@ -81,11 +97,11 @@ else
// cannot occur on parents)
foreach( $tree[$server_id] as $parent_dn => $children ) {
foreach( $children as $i => $child_dn ) {
if( 0 == strcasecmp( $child_dn, $old_dn ) ) {
if( 0 == strcasecmp( $child_dn, $old_dn ) )
$tree[$server_id][$parent_dn][$i] = $new_dn;
}
}
}
// Update the icon tree to reflect the change (remove the old DN and add the new one)
$tree_icons[ $server_id ][ $new_dn ] = $tree_icons[ $server_id ][ $old_dn ];
unset( $tree_icons[ $server_id ][ $old_dn ] );
@@ -95,7 +111,6 @@ else
session_write_close();
$edit_url="edit.php?server_id=$server_id&dn=" . rawurlencode( "$new_rdn,$container" );
?>
<html>
@@ -115,7 +130,6 @@ else
</body>
</html>
<?php
}
<?php }
}
?>

View File

@@ -1,36 +1,38 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename_form.php,v 1.6 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename_form.php,v 1.7 2005/02/25 13:44:06 wurley Exp $
/*
* rename_form.php
/**
* Displays a form for renaming an LDAP entry.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['rename_entry'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<br />
<center>
@@ -43,4 +45,3 @@ include './header.php'; ?>
</center>
</body>
</html>

View File

@@ -1,56 +1,51 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/schema.php,v 1.55 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/schema.php,v 1.59 2005/03/07 20:19:32 wurley Exp $
/*
* schema.php
/**
* Displays the schema for the specified server_id
*
*
* Variables that come in as GET vars:
* - server_id
* - view (optional: can be 'attr' or empty. If 'attr', show that attribute)
* - attr (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$view = isset( $_GET['view'] ) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset( $_GET['viewvalue'] ) ? $_GET['viewvalue'] : null;
if( trim( $viewvalue ) == "" )
$viewvalue = null;
if( ! is_null( $viewvalue ) )
$viewed = false;
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
check_server_id( $server_id ) or
pla_error( $lang['bad_server_id'].": " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or
pla_error( $lang['not_enough_login_info']);
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$view = isset( $_GET['view'] ) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset( $_GET['viewvalue'] ) ? $_GET['viewvalue'] : null;
if( trim( $viewvalue ) == "" )
$viewvalue = null;
if( ! is_null( $viewvalue ) )
$viewed = false;
include './header.php';
$schema_error_str = $lang['could_not_retrieve_schema_from']." <b>"
. htmlspecialchars($servers[$server_id]['name'])
. "</b>.<br /><br /></center>"
.$lang['reasons_for_error']
."<ul><li>"
.$lang['schema_retrieve_error_1']
. "</li><li>"
.$lang['schema_retrieve_error_2']
."</li><li>"
.$lang['schema_retrieve_error_3']
."</li></ul><a href=\"".$lang['url_bug_report']."\" target=\"new\">".$lang['please_report_this_as_a_bug']."</a>";
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></center>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
$lang['could_not_retrieve_schema_from'],htmlspecialchars($ldapserver->name),
$lang['reasons_for_error'],$lang['schema_retrieve_error_1'],
$lang['schema_retrieve_error_2'],$lang['schema_retrieve_error_3'],
$lang['schema_retrieve_error_4']);
?>
<body>
<h3 class="title"><?php echo $lang['schema_for_server']; ?>
<b><?php echo htmlspecialchars($servers[$server_id]['name']); ?></b></h3>
<h3 class="title"><?php echo $lang['schema_for_server']; ?>
<b><?php echo htmlspecialchars($ldapserver->name); ?></b></h3>
<br />
<center>
<?php echo ( $view=='objectClasses' ?
$lang['objectclasses'] :
@@ -70,362 +65,410 @@ $schema_error_str = $lang['could_not_retrieve_schema_from']." <b>"
</center>
<br />
<?php flush(); ?>
<?php
<?php flush();
if( $view == 'syntaxes' ) {
$highlight_oid = isset( $_GET['highlight_oid'] ) ? $_GET['highlight_oid'] : false;
//echo "<center>" . $lang['the_following_syntaxes'] . "</center><br />\n\n";
echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
echo "<tr><th>" . $lang['syntax_oid'] . "</th><th>" . $lang['desc'] . "</th></tr>\n";
flush();
$counter=1;
$schema_syntaxes = get_schema_syntaxes( $server_id, null, false );
$schema_syntaxes = get_schema_syntaxes( $ldapserver, null, true );
if( ! $schema_syntaxes ) pla_error( $schema_error_str );
foreach( $schema_syntaxes as $syntax ) {
$counter++;
$oid = htmlspecialchars( $syntax->getOID() );
$desc = htmlspecialchars( $syntax->getDescription() );
if( $highlight_oid && $highlight_oid == $oid )
echo "<tr class=\"highlight\">";
else
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
echo "<td><a name=\"$oid\">$oid</a></td><td>$desc</td></tr>\n\n";
}
echo "</table>\n";
} elseif( $view == 'attributes' ) {
//echo "<center>" . $lang['the_following_attributes'] . "</center><br />\n";
flush();
$schema_attrs = get_schema_attributes( $server_id, null, false );
$schema_object_classes = get_schema_objectclasses( $server_id, null, false );
if( ! $schema_attrs || ! $schema_object_classes )
$schema_attrs = get_schema_attributes( $ldapserver, null, true );
$schema_object_classes = get_schema_objectclasses( $ldapserver, null, true );
if( ! $schema_attrs || ! $schema_object_classes )
pla_error( $schema_error_str );
//echo "<pre>";
//print_r( $schema_attrs );
//echo "</pre>";
?>
<small><?php echo $lang['jump_to_attr']; ?>:</small>
<form><input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all -</option>
<?php foreach( $schema_attrs as $attr ) {
echo( '<option value="'
.$attr->getName()
.'" '
.( 0 == strcasecmp( $attr->getName(), $viewvalue ) ? ' selected ' : '' )
.'>'
. $attr->getName()
.'</option>' . "\n" );
} ?>
<?php foreach( $schema_attrs as $attr ) {
printf( '<option value="%s" %s>%s</option>',
$attr->getName(),
( 0 == strcasecmp( $attr->getName(), $viewvalue ) ? 'selected' : '' ),
$attr->getName());
} ?>
</select><input type="submit" value="<?php echo $lang['go']; ?>" /></form>
<br />
<table class="schema_attr" width="100%">
<?php
foreach( $schema_attrs as $attr ) {
if ( is_null( $viewvalue ) || 0 == strcasecmp( $viewvalue, $attr->getName() ) ) {
if( ! is_null( $viewvalue ) )
$viewed = true;
flush();
echo "<tr><th colspan=\"2\"><a name=\"" . strtolower( $attr->getName() ) . "\">";
echo $attr->getName() . "</a></th></tr>\n\n";
$counter = 0;
<?php foreach( $schema_attrs as $attr ) {
if ( is_null( $viewvalue ) || 0 == strcasecmp( $viewvalue, $attr->getName() ) ) {
if( ! is_null( $viewvalue ) )
$viewed = true;
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['desc']."</td>\n";
echo "<td>" . ( $attr->getDescription() == null ? '('.$lang['no_description'].')' : $attr->getDescription() ). "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td><acronym title=\"Object Identier\">".$lang['oid']."</acronym></td>\n";
echo "<td>" . $attr->getOID() . "</td>\n";
echo "</tr>\n\n";
flush();
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo '<td>'.$lang['obsolete']."?</td>\n";
echo "<td>" . ( $attr->getIsObsolete() ? '<b>' . $lang['yes'] . '</b>' : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr><th colspan=\"2\"><a name=\"" . strtolower( $attr->getName() ) . "\">";
echo $attr->getName() . "</a></th></tr>\n\n";
$counter = 0;
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['inherits']."</td>\n";
echo "<td>";
if( $attr->getSupAttribute()==null )
echo '('.$lang['none'].')';
else
echo "<a href=\"?server_id=".$server_id."&view=$view&amp;viewvalue=" . strtolower( $attr->getSupAttribute() ) . "\">" . $attr->getSupAttribute() . "</a></td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['desc']."</td>\n";
echo "<td>" . ( $attr->getDescription() == null ? '('.$lang['no_description'].')' : $attr->getDescription() ). "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td><acronym title=\"Object Identier\">".$lang['oid']."</acronym></td>\n";
echo "<td>" . $attr->getOID() . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['equality']."</td>\n";
echo "<td>" . ( $attr->getEquality() == null ? '('.$lang['not_specified'].')' : "<a href=\"?server_id=".$server_id."&view=matching_rules&viewvalue=".$attr->getEquality()."\">".$attr->getEquality() ) . "</a></td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo '<td>'.$lang['obsolete']."?</td>\n";
echo "<td>" . ( $attr->getIsObsolete() ? '<b>' . $lang['yes'] . '</b>' : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['ordering']."</td>\n";
echo "<td>" . ( $attr->getOrdering()==null? '('.$lang['not_specified'].')' : $attr->getOrdering() ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['inherits']."</td>\n";
echo "<td>";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['substring_rule']."</td>\n";
echo "<td>" . ( $attr->getSubstr()==null? '('.$lang['not_specified'].')' : $attr->getSubstr() ) . "</td>\n";
echo "</tr>\n\n";
if( $attr->getSupAttribute()==null )
echo '('.$lang['none'].')';
else
echo "<a href=\"?server_id=".$server_id."&view=$view&amp;viewvalue=" . strtolower( $attr->getSupAttribute() ) . "\">" . $attr->getSupAttribute() . "</a></td>\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['syntax']."</td>\n";
echo "<td>";
if( null != $attr->getType() ) {
echo "<a href=\"?server_id=$server_id&amp;view=syntaxes&amp;highlight_oid=";
echo $attr->getSyntaxOID() . "#" . $attr->getSyntaxOID();
echo "\">" . $attr->getType() . " (" . $attr->getSyntaxOID() . ")</a>";
} else {
echo $attr->getSyntaxOID();
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['equality']."</td>\n";
echo "<td>" . ( $attr->getEquality() == null ? '('.$lang['not_specified'].')' : "<a href=\"?server_id=".$server_id."&view=matching_rules&viewvalue=".$attr->getEquality()."\">".$attr->getEquality() ) . "</a></td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['ordering']."</td>\n";
echo "<td>" . ( $attr->getOrdering()==null? '('.$lang['not_specified'].')' : $attr->getOrdering() ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['substring_rule']."</td>\n";
echo "<td>" . ( $attr->getSubstr()==null? '('.$lang['not_specified'].')' : $attr->getSubstr() ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['syntax']."</td>\n";
echo "<td>";
if( null != $attr->getType() ) {
echo "<a href=\"?server_id=$server_id&amp;view=syntaxes&amp;highlight_oid=";
echo $attr->getSyntaxOID() . "#" . $attr->getSyntaxOID();
echo "\">" . $attr->getType() . " (" . $attr->getSyntaxOID() . ")</a>";
} else {
echo $attr->getSyntaxOID();
}
echo "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['single_valued']."</td>\n";
echo "<td>" . ( $attr->getIsSingleValue() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['collective']."?</td>\n";
echo "<td>" . ( $attr->getIsCollective() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['user_modification']."</td>\n";
echo "<td>" . ( $attr->getIsNoUserModification() ? $lang['no'] : $lang['yes'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['usage']."</td>\n";
echo "<td>" . ( $attr->getUsage() ? $attr->getUsage() : '('.$lang['not_specified'].')' ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['maximum_length']."</td>\n";
echo "<td>";
if ( $attr->getMaxLength() === null )
echo '('.$lang['not_applicable'].')';
else {
echo number_format( $attr->getMaxLength() ) ." ";
if ( $attr->getMaxLength()>1)
echo $lang['characters'];
else
echo $lang['character'];
}
echo "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['aliases']."</td>\n";
echo "<td>";
if( count( $attr->getAliases() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getAliases() as $alias_attr_name )
echo "<a href=\"?server_id=$server_id&view=attributes&amp;viewvalue=" . $alias_attr_name. "\">$alias_attr_name</a> ";
echo "</td>";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['used_by_objectclasses']."</td>\n";
echo "<td>";
if( count( $attr->getUsedInObjectClasses() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getUsedInObjectClasses() as $used_in_oclass)
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" .
$used_in_oclass. "\">$used_in_oclass</a> ";
echo "</td>";
echo "</tr>\n\n";
flush();
}
echo "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['single_valued']."</td>\n";
echo "<td>" . ( $attr->getIsSingleValue() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['collective']."?</td>\n";
echo "<td>" . ( $attr->getIsCollective() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['user_modification']."</td>\n";
echo "<td>" . ( $attr->getIsNoUserModification() ? $lang['no'] : $lang['yes'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['usage']."</td>\n";
echo "<td>" . ( $attr->getUsage() ? $attr->getUsage() : '('.$lang['not_specified'].')' ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['maximum_length']."</td>\n";
echo "<td>";
if ( $attr->getMaxLength() === null ) { echo '('.$lang['not_applicable'].')';}
else {
echo number_format( $attr->getMaxLength() ) ." ";
if ( $attr->getMaxLength()>1) {echo $lang['characters'];}
else { echo $lang['character'] ;}
}
echo "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['aliases']."</td>\n";
echo "<td>";
if( count( $attr->getAliases() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getAliases() as $alias_attr_name )
echo "<a href=\"?server_id=$server_id&view=attributes&amp;viewvalue=" . $alias_attr_name. "\">$alias_attr_name</a> ";
echo "</td>";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['used_by_objectclasses']."</td>\n";
echo "<td>";
if( count( $attr->getUsedInObjectClasses() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getUsedInObjectClasses() as $used_in_oclass)
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" .
$used_in_oclass. "\">$used_in_oclass</a> ";
echo "</td>";
echo "</tr>\n\n";
flush();
}
}
echo "</table>\n";
} elseif( $view == 'matching_rules' ) {
//echo "<center>" . $lang['the_following_matching'] . "</center><br />\n\n";
$schema_matching_rules = get_schema_matching_rules( $server_id, null, false );
$schema_matching_rules = get_schema_matching_rules( $ldapserver, null, true );
echo '<small>' . $lang['jump_to_matching_rule'].'</small><br />';
echo '<form get="?">';
echo '<input type="hidden" name="server_id" value="'.$server_id.'" />';
echo '<input type="hidden" name="view" value="matching_rules" />';
echo '<select name="viewvalue" onChange="submit()">';
echo '<option value=""> - all -</option>';
foreach( $schema_matching_rules as $rule ) {
echo '<option value="'.$rule->getName().'"'.($rule->getName()==$viewvalue? ' selected ': '').'>'.$rule->getName().'</option>\n';
}
foreach( $schema_matching_rules as $rule )
printf( '<option value="%s" %s>%s</option>',
$rule->getName(),
($rule->getName() == $viewvalue ? 'selected': ''),
$rule->getName());
echo '</select>';
echo '<input type="submit" value="'.$lang['go'].'" />';
echo '</form>';
echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
echo "<tr><th>" . $lang['matching_rule_oid'] . "</th><th>" . $lang['name'] . "</th><th>".$lang['used_by_attributes']."</th></tr>\n";
flush();
$counter=1;
$schema_matching_rules = get_schema_matching_rules( $server_id, null, false );
$schema_matching_rules = get_schema_matching_rules( $ldapserver, null, true );
if( ! $schema_matching_rules ) pla_error( $schema_error_str );
$counter=1;
foreach( $schema_matching_rules as $rule ) {
$counter++;
$oid = htmlspecialchars( $rule->getOID() );
$desc = htmlspecialchars( $rule->getName() );
if ( $viewvalue==null || $viewvalue==($rule->getName() )) {
if( ! is_null( $viewvalue ) )
$viewed = true;
if( null != $rule->getDescription() )
$desc .= ' (' . $rule->getDescription() . ')';
if( true === $rule->getIsObsolete() )
$desc .= ' <span style="color:red">' . $lang['obsolete'] . '</span>';
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
echo "<td>$oid</td>";
echo "<td>$desc</td>";
echo "<td>";
if( count( $rule->getUsedByAttrs() ) == 0 ) {
echo "<center>(" . $lang['none'] . ")</center><br /><br />\n";
} else {
echo "<table><tr><td style=\"text-align: right\"><form>";
echo "<input type=\"hidden\" name=\"server_id\" value=\"".$server_id."\" />";
echo "<input type=\"hidden\" name=\"view\" value=\"attributes\" />";
echo "<select style=\"width: 150px; color:black; background-color: #eee\" size=\"4\" name=\"viewvalue\">\n";
foreach( $rule->getUsedByAttrs() as $attr )
echo "<option>$attr</option>\n";
echo "</select><br /><input type=\"submit\" value=\"".$lang['go']."\" /></form></td></tr></table>\n";
if( ! is_null( $viewvalue ) )
$viewed = true;
if( null != $rule->getDescription() )
$desc .= ' (' . $rule->getDescription() . ')';
if( true === $rule->getIsObsolete() )
$desc .= ' <span style="color:red">' . $lang['obsolete'] . '</span>';
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
echo "<td>$oid</td>";
echo "<td>$desc</td>";
echo "<td>";
if( count( $rule->getUsedByAttrs() ) == 0 ) {
echo "<center>(" . $lang['none'] . ")</center><br /><br />\n";
} else {
echo "<table><tr><td style=\"text-align: right\"><form>";
echo "<input type=\"hidden\" name=\"server_id\" value=\"".$server_id."\" />";
echo "<input type=\"hidden\" name=\"view\" value=\"attributes\" />";
echo "<select style=\"width: 150px; color:black; background-color: #eee\" size=\"4\" name=\"viewvalue\">\n";
foreach( $rule->getUsedByAttrs() as $attr )
echo "<option>$attr</option>\n";
echo "</select><br /><input type=\"submit\" value=\"".$lang['go']."\" /></form></td></tr></table>\n";
}
echo "</td></tr>\n";
}
echo "</td></tr>\n";
}
}
echo "</table>\n";
} elseif( $view == 'objectClasses' ) {
//echo "<center>" . $lang['the_following_objectclasses'] . "</center><br />\n";
} elseif( $view == 'objectClasses' ) {
flush();
$schema_oclasses = get_schema_objectclasses( $server_id, null, false );
if( ! $schema_oclasses ) pla_error( $schema_error_str );
?>
$schema_oclasses = get_schema_objectclasses( $ldapserver, null, true );
if( ! $schema_oclasses ) pla_error( $schema_error_str ); ?>
<small><?php echo $lang['jump_to_objectclass']; ?>:</small>
<form><input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<select name="viewvalue"
onChange="submit()">
<option value=""> - all - </option>
<?php foreach( $schema_oclasses as $name => $oclass ) {
echo '<option value="'
.$oclass->getName()
.'"'
. ( 0 == strcasecmp( $oclass->getName(), $viewvalue ) ? ' selected ':'')
.'>'.$oclass->getName()
.'</option>';
} ?>
<?php foreach( $schema_oclasses as $name => $oclass ) {
printf( '<option value="%s" %s>%s</option>',
$oclass->getName(),
( 0 == strcasecmp( $oclass->getName(), $viewvalue ) ? ' selected ':''),
$oclass->getName());
} ?>
</select><input type="submit" value="<?php echo $lang['go']; ?>" />
</form>
<?php flush(); ?>
<?php flush();
<?php foreach( $schema_oclasses as $name => $oclass ) {
foreach( $oclass->getSupClasses() as $parent_name ) {
$parent_name = $parent_name;
if( isset( $schema_oclasses[ $parent_name ] ) ) {
$schema_oclasses[ $parent_name ]->addChildObjectClass( $oclass->getName() );
}
}
} ?>
foreach( $schema_oclasses as $name => $oclass ) {
foreach( $oclass->getSupClasses() as $parent_name ) {
$parent_name = $parent_name;
if( isset( $schema_oclasses[ $parent_name ] ) ) {
$schema_oclasses[ $parent_name ]->addChildObjectClass( $oclass->getName() );
}
}
} ?>
<br />
<?php foreach( $schema_oclasses as $name => $oclass ) {
if ( $viewvalue==null || 0 == strcasecmp( $viewvalue, $oclass->getName() ) ){
if( ! is_null( $viewvalue ) )
$viewed = true;
if ( $viewvalue==null || 0 == strcasecmp( $viewvalue, $oclass->getName() ) ) {
if( ! is_null( $viewvalue ) )
$viewed = true;
?>
<h4 class="oclass"><a name="<?php echo $name; ?>"><?php echo $oclass->getName(); ?></a></h4>
<h4 class="oclass_sub"><?php echo $lang['OID']; ?>: <b><?php echo $oclass->getOID(); ?></b></h4>
<?php if( $oclass->getDescription() ) { ?>
<h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $oclass->getDescription(); ?></b></h4>
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['type']; ?>: <b><?php echo $oclass->getType(); ?></b></h4>
<?php if( $oclass->getIsObsolete() == true ) { ?>
<h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4>
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b><?php
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b><?php
if( count( $oclass->getSupClasses() ) == 0 )
echo "(" . $lang['none'] . ")";
else
foreach( $oclass->getSupClasses() as $i => $object_class ) {
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
href="?server_id='.$server_id.'&amp;view='.$view.'&amp;viewvalue='.htmlspecialchars( $object_class ) ;
echo '">' . htmlspecialchars( $object_class ) . '</a>';
if( $i < count( $oclass->getSupClasses() ) - 1 )
echo ', ';
}
?></b></h4>
}
?>
</b></h4>
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b><?php
if( 0 == strcasecmp( $oclass->getName(), 'top' ) )
echo "(<a href=\"schema.php?view=objectClasses&amp;server_id=$server_id\">all</a>)";
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b><?php
if( 0 == strcasecmp( $oclass->getName(), 'top' ) )
echo "(<a href=\"schema.php?view=objectClasses&amp;server_id=$server_id\">all</a>)";
elseif( count( $oclass->getChildObjectClasses() ) == 0 )
echo "(" . $lang['none'] . ")";
else
foreach( $oclass->getChildObjectClasses() as $i => $object_class ) {
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
href="?server_id='.$server_id.'&view='.$view.'&amp;viewvalue='.htmlspecialchars( $object_class ) ;
echo '">' . htmlspecialchars( $object_class ) . '</a>';
if( $i < count( $oclass->getChildObjectClasses() ) - 1 )
echo ', ';
}
?></b></h4>
}
?>
</b></h4>
<table width="100%" class="schema_oclasses">
<tr>
<th width="50%"><b><?php echo $lang['required_attrs']; ?></b></th>
<th width="50%"><b><?php echo $lang['optional_attrs']; ?></b></th>
</tr>
<tr>
<td>
<?php if( count( $oclass->getMustAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">';
foreach( $oclass->getMustAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"?server_id=$server_id&amp;view=attributes&amp;viewvalue=";
echo rawurlencode( $attr->getName() ). "\">" . htmlspecialchars($attr->getName());
echo "</a>";
if( $attr->getSource() != $oclass->getName() )
{
if( $attr->getSource() != $oclass->getName() ) {
echo "<br /><small>&nbsp;&nbsp;(".$lang['inherited_from']." ";
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" . $attr->getSource() . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
}
echo "</li>\n";
}
} else
} else
echo "<center>(" . $lang['none'] . ")</center>\n";
?>
</ul>
</td>
<td width="50%">
<?php
if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
<?php if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">';
foreach( $oclass->getMayAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"?server_id=$server_id&amp;view=attributes&amp;viewvalue=";
echo rawurlencode( $attr->getName() ) . "\">" . htmlspecialchars($attr->getName() );
echo "</a>\n";
if( $attr->getSource() != $oclass->getName() )
{
if( $attr->getSource() != $oclass->getName() ) {
echo "<br /><small>&nbsp;&nbsp; (".$lang['inherited_from']." ";
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" . $attr->getSource() . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
}
echo "</li>";
}
}
else
} else
echo "<center>(" . $lang['none'] . ")</center>\n";
?>
@@ -434,13 +477,13 @@ if( $view == 'syntaxes' ) {
</tr>
</table>
<?php } } /* End foreach objectClass */ ?>
<?php } /* End else (displaying objectClasses */ ?>
<?php }
} /* End foreach objectClass */
<?php if( ! is_null( $viewvalue ) && ! $viewed )
pla_error( sprintf( $lang['no_such_schema_item'], htmlspecialchars( $viewvalue ) ) );
?>
} /* End else (displaying objectClasses */
if( ! is_null( $viewvalue ) && ! $viewed )
pla_error( sprintf( $lang['no_such_schema_item'], htmlspecialchars( $viewvalue ) ) ); ?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search.php,v 1.58 2004/12/10 04:43:17 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search.php,v 1.66 2005/03/26 01:07:32 wurley Exp $
/*
* search.php
/**
* Perform LDAP searches and draw the advanced/simple search forms
*
* Variables that come in as GET vars:
@@ -13,80 +11,56 @@
* - attribute, criterion, filter
* For advanced searches:
* - base_dn, scope, filter
*
* @package phpLDAPadmin
* @todo Search is probably broken, since base_dn is now an array
*/
/**
*/
require './common.php';
// try to get an available server_id if one is not provided
if( ! isset( $_GET['server_id'] ) )
$server_id = get_avail_server_id();
else {
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
}
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
// Output format, table or list?
$result_formats = array( 'list', 'table' );
$format = isset( $_GET['format'] ) ? $_GET['format'] : get_default_search_display();
if( ! in_array( $format, $result_formats ) )
$format = 'list';
$js_on_change_string ='';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' )
$js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].getBaseDn()"';
if( ! in_array( $format, $result_formats ) )
$format = 'list';
// build the server drop-down html and JavaScript array (for base_dns)
$js_on_change_string = '';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' )
$js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"';
$server_info_list =array();
$server_menu_html = server_select_list($server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list();
$server_menu_html = '';
if (count($servers)>1){
$server_menu_html = '<select style="width: 200px" name="server_id" '.$js_on_change_string.'>';
foreach( $servers as $id => $server ) {
$base_dn = $server['base'] ? $server['base'] : try_to_get_root_dn( $id );
$server_info_list[$id]['id'] = $id;
$server_info_list[$id]['name'] = $server['name'];
$server_info_list[$id]['base_dn'] = $base_dn;
if( $server['host'] ) {
$server_menu_html .= '<option value="'.$id.'"' . ( $id==$server_id? ' selected="true"' : '' ) . '>';
$server_menu_html .= $server['name'] . '</option>';
}
}
$server_menu_html .= '</select>';
} else {
$server = reset($servers);
$id = key($servers);
$base_dn = $server['base'] ? $server['base'] : try_to_get_root_dn( $id );
$server_info_list[$id]['id'] = $id;
$server_info_list[$id]['name'] = $server['name'];
$server_info_list[$id]['base_dn'] = $base_dn;
if( $server['host'] )
$server_menu_html .= '<input type="hidden" name="server_id" value="'.$id.'" />' .
'<b>' . $server['name'] . '</b>';
}
$filter = isset( $_GET['filter'] ) ? $_GET['filter'] : null;
$filter = isset( $_GET['filter'] ) ? clean_search_vals($_GET['filter']) : null;
$attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null;
// grab the base dn for the search
if( isset( $_GET['base_dn'] ) ) {
if( isset( $_GET['base_dn'] ) && $_GET['base_dn'] ) {
$base_dn = $_GET['base_dn'];
$base_dn_is_invalid = false;
$base_dn_does_not_exist = false;
if( trim( $base_dn ) )
if( ! is_dn_string( $base_dn ) )
$base_dn_is_invalid = true;
elseif( ! dn_exists( $server_id, $base_dn ) )
$base_dn_does_not_exist = true;
} elseif( '' != $servers[$server_id]['base'] )
$base_dn = $servers[$server_id]['base'];
else
$base_dn = try_to_get_root_dn( $server_id );
$base_dn_is_invalid = false;
$base_dn_does_not_exist = false;
if( trim( $base_dn ) )
if( ! is_dn_string( $base_dn ) )
$base_dn_is_invalid = true;
elseif( ! dn_exists( $ldapserver, $base_dn ) )
$base_dn_does_not_exist = true;
$base_dns = array($base_dn);
} else
$base_dns = $ldapserver->getBaseDN();
$criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null;
$form = isset( $_GET['form'] ) ? $_GET['form'] : null;
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
@@ -94,64 +68,57 @@ $scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
include './header.php'; ?>
<body>
<center>
<?php if( $form == 'advanced' ) {
include 'search_form_advanced.php';
<?php if( $form == 'advanced' ) {
include './search_form_advanced.php';
} elseif( $form == 'predefined' ) {
include 'search_form_predefined.php';
include './search_form_predefined.php';
} else /* Draw simple search form */ {
process_config();
if( count( $search_attributes ) != count( $search_attributes_display ) )
pla_error( $lang['mismatched_search_attr_config'] );
include 'search_form_simple.php';
if( count( $search_attributes ) != count( $search_attributes_display ) )
pla_error( $lang['mismatched_search_attr_config'] );
include './search_form_simple.php';
} ?>
</center>
<?php
<?php
flush();
if( isset( $_GET['search'] ) )
{
if( isset( $_GET['search'] ) ) {
if( $form == 'advanced' ) {
$search_result_attributes = isset( $_GET['display_attrs'] ) ?
rawurldecode( $_GET['display_attrs'] ) :
( isset( $search_result_attributes ) ?
$search_result_attributes :
"dn, cn" );
$search_result_attributes = isset( $_GET['display_attrs'] ) ?
rawurldecode( $_GET['display_attrs'] ) : ( isset( $search_result_attributes ) ?
$search_result_attributes : "dn, cn" );
process_config();
}
}
// do we have enough authentication information for the specified server_id
if( ! have_auth_info( $server_id ) )
{
$login_url = "login_form.php?server_id=$server_id&amp;redirect=" . rawurlencode( $_SERVER['REQUEST_URI'] );
?>
if( ! $ldapserver->haveAuthInfo() ) {
$login_url = sprintf('login_form.php?server_id=%s&amp;redirect=%s',
$server_id,rawurlencode($_SERVER['REQUEST_URI'])); ?>
<center>
<br />
<?php echo $lang['you_have_not_logged_into_server']; ?><br />
<a href="<?php echo $login_url; ?>"><?php echo $lang['click_to_go_to_login_form']; ?></a>.
</center>
<?php
exit;
}
//making $predefined safe for "register_globals off"
if( isset( $_GET['predefined'] ) )
{
if( isset( $_GET['predefined'] ) ) {
$predefined = $_GET['predefined'];
if( is_numeric( $predefined ) )
{
if( is_numeric( $predefined ) ) {
$query = get_cleaned_up_predefined_search( $predefined );
$search_result_attributes = $query['attributes'];
@@ -159,57 +126,67 @@ if( isset( $_GET['search'] ) )
$search_attributes = $search_result_attributes;
process_config();
$filter = $query['filter'];
$scope = $query['scope'];
$base_dn = $query['base'];
$server_id = $query['server'];
}
} else {
$predefined = '';
if (is_array($query['base']))
$base_dns = $query['base'];
else
$base_dns = array($query['base']);
$ldapserver = new LDAPServer($query['server']);
}
} else {
$predefined = '';
}
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( $filter )
{
if( $filter ) {
// if they are using the simple search form, build an LDAP search filter from their input
if( $form == 'simple' & ! is_numeric( $predefined ) )
{
if( $form == 'simple' & ! is_numeric( $predefined ) ) {
switch( $criterion ) {
case 'starts with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
$filter = "($attr=$filter*)";
break;
case 'contains':
// to fix bug 789113
if( $filter == "*" )
$filter = "($attr=*)";
else
$filter = "($attr=*$filter*)";
break;
case 'ends with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
$filter = "($attr=*$filter)";
break;
case 'equals':
$filter = "($attr=$filter)";
break;
case 'sounds like':
$filter = "($attr~=$filter)";
break;
default:
pla_error( $lang['unrecognized_criteria_option'] .
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
pla_error( $lang['unrecognized_criteria_option'] .
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
}
}
echo "<center>" . $lang['searching'] . "</center>\n";
flush();
@@ -217,37 +194,50 @@ if( isset( $_GET['search'] ) )
@set_time_limit( 0 );
// grab the size limit set in config.php
$size_limit = isset ( $search_result_size_limit ) && is_numeric( $search_result_size_limit ) ?
$search_result_size_limit :
50;
// Sanity check
if( $size_limit < 1 )
$size_limit = 1;
$size_limit = isset ( $search_result_size_limit ) && is_numeric( $search_result_size_limit ) ?
$search_result_size_limit : 50;
// Sanity check
if( $size_limit < 1 )
$size_limit = 1;
$page = isset( $_GET['page'] ) ? $_GET['page'] : 0;
$time_start = utime();
$time_elapsed = 0;
foreach ($base_dns as $base_dn) {
if (! dn_exists( $ldapserver, $base_dn ) ) {
debug_log(sprintf('BaseDN [%s] skipped as it doesnt exist in [%s].',$base_dn,$ldapserver->server_id),1);
continue;
} else {
debug_log(sprintf('Search with base DN [%s]',$base_dn),9);
}
if( $scope == 'base' )
$results = @ldap_read( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$results = @ldap_read( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
elseif( $scope == 'one' )
$results = @ldap_list( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$results = @ldap_list( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
else // scope == 'sub'
$results = @ldap_search( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$errno = @ldap_errno( $ds );
$results = @ldap_search( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$errno = @ldap_errno( $ldapserver->connect(false) );
if( ! $results ) {
pla_error( $lang['error_performing_search'], ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( $lang['error_performing_search'], ldap_error( $ldapserver->connect(false) ), ldap_errno( $ldapserver->connect(false) ) );
}
$time_end = utime();
$time_elapsed = round( $time_end - $time_start, 2 );
$count = @ldap_count_entries( $ds, $results );
$time_elapsed += round( $time_end - $time_start, 2 );
$count = @ldap_count_entries( $ldapserver->connect(), $results );
$start_entry = $page * $size_limit;
$end_entry = min( $start_entry + $size_limit + 1, $count+1 );
?>
<table class="search_header">
@@ -260,119 +250,131 @@ if( isset( $_GET['search'] ) )
<small>
<nobr>
<?php echo "[ <a href=\"export_form.php?server_id=$server_id&amp;scope=$scope&amp;dn=" .
urlencode($base_dn) . "&amp;filter=" . urlencode($filter) . "&amp;attributes=" .
urlencode( join( ', ', $search_result_attributes ) ) . "\"><img src=\"images/save.png\" /> " .
$lang['export_results'] . "</a> ]"; ?>
<?php
echo '[ <img src="images/rename.png" /> ' . $lang['format'] . ':';
foreach( $result_formats as $f ) {
echo '&nbsp;';
if( $format == $f ) {
echo '<b>' . $lang[$f] . '</b>';
} else {
$php_self = $_SERVER['PHP_SELF'];
$query_string = array_to_query_string( $_GET, array( 'format' ) );
$query_string .= "&amp;format=$f";
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>";
}
}
?>
<?php echo "[ <a href=\"export_form.php?server_id=$server_id&amp;scope=$scope&amp;dn=" .
urlencode($base_dn) . "&amp;filter=" . urlencode($filter) . "&amp;attributes=" .
urlencode( join( ', ', $search_result_attributes ) ) . "\"><img src=\"images/save.png\" /> " .
$lang['export_results'] . "</a> ]";
echo '[ <img src="images/rename.png" /> ' . $lang['format'] . ':';
foreach( $result_formats as $f ) {
echo '&nbsp;';
if( $format == $f ) {
echo '<b>' . $lang[$f] . '</b>';
} else {
$php_self = $_SERVER['PHP_SELF'];
$query_string = array_to_query_string( $_GET, array( 'format' ) );
$query_string .= "&amp;format=$f";
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>";
}
} ?>
]
</small>
</nobr>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr>
<?php } ?>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr>
<?php } ?>
</td>
</tr>
</table>
<?php
<?php
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><center><small>" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><center><small style=\"color:red; white-space: nowrap\">" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
// Draw the paging links
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
if( $count > $size_limit ) {
echo sprintf( $lang['showing_results_x_through_y'], "<b>" . number_format($start_entry+1) . "</b>", "<b>" . number_format($end_entry-1) . "</b>" ) . "<br />\n";
echo sprintf( $lang['showing_results_x_through_y'], "<b>" . number_format($start_entry+1) . "</b>", "<b>" . number_format($end_entry-1) . "</b>" ) . "<br />\n";
$php_self = $_SERVER['PHP_SELF'];
if( $page != 0 ) {
if( $page != 0 ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page-1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],$page ) . "\" href=\"$php_self?$query_string\">&lsaquo;&lsaquo;</a>";
} else {
$pager_html .= "&lsaquo;&lsaquo;";
}
$pager_html .= '&nbsp;&nbsp;';
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
for( $i=0; $i<$count; $i+=$size_limit ) {
$page_num = $i/$size_limit;
if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) {
if( ! $elipsis_printed ) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} else if( $page == $page_num ) {
if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) {
if( ! $elipsis_printed ) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} else if( $page == $page_num ) {
$pager_html .= '<b>' . ($page_num + 1) . '</b>';
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
} else {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . $page_num;
$pager_html .= "<a href=\"$php_self?$query_string\">" . ($page_num+1) . "</a>";
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
}
}
if( $page+1 < $total_pages ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page+1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],($page+2) ) . "\" href=\"$php_self?$query_string\">&rsaquo;&rsaquo;</a>";
} else {
$pager_html .= "&rsaquo;&rsaquo;";
}
}
}
if( 0 == $count )
echo '<center><h2>' . $lang['no_results'] . '</h2></center>';
else {
echo '<center>' . $pager_html . '</center><br />';
flush();
if( $format == 'list' )
include realpath( './search_results_list.php' );
elseif( $format == 'table' )
include realpath( './search_results_table.php' );
else
pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) );
echo '<br /><center>' . $pager_html . '</center>';
}
if( 0 == $count )
echo '<center><h2>' . $lang['no_results'] . '</h2></center>';
?>
else {
echo '<center>' . $pager_html . '</center><br />';
flush();
if( $format == 'list' )
// $lang['list'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
include realpath( './search_results_list.php' );
elseif( $format == 'table' )
// $lang['table'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
include realpath( './search_results_table.php' );
else
pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) );
echo '<br /><center>' . $pager_html . '</center>';
}
} ?>
<br /><br />
<div class="search_result"><center><span style="font-weight:normal;font-size:75%;">
<?php echo $lang['search_duration']; ?>
<b><?php echo $time_elapsed; ?></b> <?php echo $lang['seconds'];?>.</small></center></div>
<?php
}
}
?>
<?php }
} ?>
</body>
</html>

View File

@@ -1,17 +1,23 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_advanced.php,v 1.19 2004/12/17 15:10:51 uugdave Exp $
?><script>
<?php
$num_server = count($server_info_list);
for($i=0;$i<$num_server;$i++){
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_advanced.php,v 1.21 2005/03/05 09:41:01 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
addToServersList(new server(<?php echo $i; ?>,"<?php echo $server_info_list[$i]['name']; ?>","<?php echo $server_info_list[$i]['base_dn']; ?>"));
<?php
}
?>
function focus_filter() {
<script>
<?php foreach ($server_info_list as $i => $ignore) { ?>
addToServersList(new server(<?php echo $i; ?>,"<?php echo $server_info_list[$i]['name']; ?>","<?php echo $server_info_list[$i]['base_dn']; ?>"));
<?php } ?>
function focus_filter() {
document.advanced_search_form.filter.focus();
}
}
</script>
<form action="search.php" method="get" class="search" name="advanced_search_form">
@@ -20,7 +26,7 @@ for($i=0;$i<$num_server;$i++){
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<center><b><?php echo $lang['advanced_search_form_str']; ?></b></center>
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
<br />
@@ -32,11 +38,17 @@ for($i=0;$i<$num_server;$i++){
<tr>
<td><small><?php echo $lang['base_dn']; ?></small></td>
<td><input type="text" name="base_dn" value="<?php echo htmlspecialchars($base_dn); ?>" style="width: 200px" id="base_dn" />
<?php draw_chooser_link( 'advanced_search_form.base_dn' ); ?>
<?php if( isset( $base_dn_is_invalid ) && $base_dn_is_invalid ) echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_is_not_valid'] . "</small>"; ?>
<?php if( isset( $base_dn_does_not_exist ) && $base_dn_does_not_exist ) echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_does_not_exist'] . "</small>"; ?>
</td>
<td><input type="text" name="base_dn" value="<?php echo count($base_dns) == 1 ? $base_dns[0] : '' ?>" style="width: 200px" id="base_dn" />
<?php draw_chooser_link( 'advanced_search_form.base_dn' );
if( isset( $base_dn_is_invalid ) && $base_dn_is_invalid )
echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_is_not_valid'] . "</small>";
if( isset( $base_dn_does_not_exist ) && $base_dn_does_not_exist )
echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_does_not_exist'] . "</small>"; ?>
</td>
</tr>
<tr>
@@ -60,25 +72,27 @@ for($i=0;$i<$num_server;$i++){
<tr>
<td><small><acronym title="<?php echo $lang['standard_ldap_search_filter']; ?>">
<?php echo $lang['search_filter']; ?></acronym></small></td>
<td><input type="text" name="filter" id="filter" style="width: 200px" value="<?php echo $filter ? htmlspecialchars($filter) : 'objectClass=*'; ?>" /></td>
</tr>
<tr>
<td><small><acronym title="<?php echo $lang['list_of_attrs_to_display_in_results']; ?>">
<?php echo $lang['show_attributes']; ?></acronym></small></td>
<td><input type="text" name="display_attrs" style="width: 200px" value="<?php
echo isset( $_GET['display_attrs'] ) ?
htmlspecialchars( $_GET['display_attrs'] ) :
echo isset( $_GET['display_attrs'] ) ?
htmlspecialchars( $_GET['display_attrs'] ) :
$search_result_attributes; ?>" />
</tr>
<tr>
<td colspan="2"><br /><center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center></td>
</tr>
</table>
</form>
<script language="javascript">
// Move the cursor to the filter field
focus_filter();
</script>

View File

@@ -1,49 +1,65 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_predefined.php,v 1.6 2004/06/04 13:42:08 uugdave Exp $
?><form action="search.php" method="get" class="search">
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_predefined.php,v 1.7 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
<form action="search.php" method="get" class="search">
<input type="hidden" name="search" value="true" />
<input type="hidden" name="form" value="predefined" />
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<table>
<td>
<?php
if( isset( $_GET['predefined'] ) )
$selected_q_number = intval( $_GET['predefined'] );
<tr>
<td>
<?php if( isset( $_GET['predefined'] ) )
$selected_q_number = intval( $_GET['predefined'] );
else
$selected_q_number = null;
?>
<center><b><?php echo $lang['predefined_searches']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
$selected_q_number = null; ?>
<center><b><?php echo $lang['predefined_searches']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a>)</small><br />
<br />
<?php
if( ! isset( $queries ) || ! is_array( $queries ) || 0 == count( $queries ) ) {
<br />
<?php if( ! isset( $queries ) || ! is_array( $queries ) || 0 == count( $queries ) ) {
echo "<br />\n";
echo $lang['no_predefined_queries'];
echo $lang['no_predefined_queries'];
echo "<br />\n";
echo "<br />\n";
echo "<br />\n";
echo "</td></table>\n";
echo "</td></tr></table>\n";
echo "</body>\n";
echo "</html>\n";
die();
} else { ?>
<small><?php echo $lang['predefined_search_str']; ?>: </small>
<select name="predefined">
<?php
foreach( $queries as $q_number => $q ) {
if ($selected_q_number === $q_number)
$selected = " selected";
else $selected = "";
print("\t<option value=\"" . $q_number . "\"" . $selected . ">\n");
print("\t" . htmlspecialchars( $q['name'] ) . "\n");
print("\t</option>\n");
}
?>
<?php foreach( $queries as $q_number => $q ) {
if ($selected_q_number === $q_number)
$selected = " selected";
else
$selected = "";
print("\t<option value=\"" . $q_number . "\"" . $selected . ">\n");
print("\t" . htmlspecialchars( $q['name'] ) . "\n");
print("\t</option>\n");
} ?>
</select>
<?php } ?>
<br />
<br />
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>

View File

@@ -1,6 +1,12 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_simple.php,v 1.12 2004/10/28 13:37:39 uugdave Exp $
?><script language="javascript">
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_simple.php,v 1.13 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
<script language="javascript">
function focus_filter() {
document.simple_search_form.filter.focus();
}
@@ -13,47 +19,49 @@
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<table>
<td>
<center><b><?php echo $lang['simple_search_form_str']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a> |
<tr>
<td>
<center><b><?php echo $lang['simple_search_form_str']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a> |
<a href="search.php?form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
</center>
<br />
</center>
<br />
<small><?php echo $lang['server']; ?></small><br /> <?php echo $server_menu_html; ?><br />
<br />
<small><?php echo $lang['search_for_entries_whose']; ?></small><br />
<small><?php echo $lang['server']; ?></small><br /> <?php echo $server_menu_html; ?><br />
<br />
<small><?php echo $lang['search_for_entries_whose']; ?></small><br />
<nobr>
<select name="attribute">
<?php foreach( $search_attributes as $id => $attribute ) { ?>
<option value="<?php echo rawurlencode( $attribute ); ?>"<?php echo $attribute==$attr?' selected="true"':''; ?>>
<?php echo htmlspecialchars($search_attributes_display[$id]); ?>
</option>
<?php } ?>
</select>
<nobr>
<select name="attribute">
<?php foreach( $search_attributes as $id => $attribute ) { ?>
<option value="<?php echo rawurlencode( $attribute ); ?>"<?php echo $attribute==$attr?' selected="true"':''; ?>>
<?php echo htmlspecialchars($search_attributes_display[$id]); ?>
</option>
<?php } ?>
</select>
<select name="criterion">
<select name="criterion">
<?php if( ! isset( $search_criteria_options ) || ! is_array( $search_criteria_options ) )
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
<?php
if( ! isset( $search_criteria_options ) || ! is_array( $search_criteria_options ) )
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
foreach( $search_criteria_options as $c ) { ?>
<option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected="true"':''; ?>>
<?php echo htmlspecialchars( $lang[$c] ); ?>
</option>
<?php } ?>
</select>
<input type="text" name="filter" id="filter" size="20" value="<?php echo htmlspecialchars($filter); ?>" /><br />
<br />
foreach( $search_criteria_options as $c ) { ?>
<option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected="true"':''; ?>>
<?php echo htmlspecialchars( $lang[$c] ); ?>
</option>
<?php } ?>
</select>
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</nobr>
</td>
<input type="text" name="filter" id="filter" size="20" value="<?php echo htmlspecialchars($filter); ?>" /><br />
<br />
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</nobr>
</td>
</tr>
</table>
</form>
<script language="javascript">
// Move the cursor to the filter field
focus_filter();

View File

@@ -1,90 +1,92 @@
<?php
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_list.php,v 1.4 2005/03/05 06:27:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
$friendly_attrs = process_friendly_attr_table();
$entry_id = ldap_first_entry( $ds, $results );
$entry_id = ldap_first_entry( $ldapserver->connect(), $results );
// Iterate over each entry
$i = 0;
while( $entry_id ) {
$i++;
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ds, $entry_id );
continue;
}
if( $i >= $end_entry )
break;
$dn = ldap_get_dn( $ds, $entry_id );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
?>
$i++;
<div class="search_result">
<table>
<tr>
<td><img src="images/<?php echo get_icon_use_cache( $server_id, $dn ); ?>" /></td>
<td><a href="edit.php?server_id=<?php
echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo htmlspecialchars($rdn); ?></a>
</td>
</tr>
</table>
</div>
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
continue;
}
<table class="attrs">
if( $i >= $end_entry )
break;
<?php
$dn = ldap_get_dn( $ldapserver->connect(), $entry_id );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn ); ?>
$attrs = ldap_get_attributes( $ds, $entry_id );
$attr = ldap_first_attribute( $ds, $entry_id, $attrs );
<div class="search_result">
<table>
<tr>
<td><img src="images/<?php echo get_icon_use_cache( $ldapserver, $dn ); ?>" /></td>
<td><a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo htmlspecialchars($rdn); ?></a></td>
</tr>
</table>
</div>
// Always print out the DN in the attribute list
echo "<tr><td class=\"attr\" valign=\"top\">dn</td>";
echo "<td>" . htmlspecialchars($dn) . "</td></tr>\n";
<table class="attrs">
// Iterate over each attribute for this entry
while( $attr ) {
<?php $attrs = ldap_get_attributes( $ldapserver->connect(), $entry_id );
$attr = ldap_first_attribute( $ldapserver->connect(), $entry_id, $attrs );
if( is_attr_binary( $server_id, $attr ) )
$values = array( "(binary)" );
else
$values = ldap_get_values( $ds, $entry_id, $attr );
if( isset( $values['count'] ) )
unset( $values['count'] );
// Always print out the DN in the attribute list
echo "<tr><td class=\"attr\" valign=\"top\">dn</td>";
echo "<td>" . htmlspecialchars($dn) . "</td></tr>\n";
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr = "<acronym title=\"Alias for $attr\">" .
htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
$attr = htmlspecialchars( $attr );
?>
// Iterate over each attribute for this entry
while( $attr ) {
<tr>
<td class="attr" valign="top"><?php echo $attr; ?></td>
<td class="val">
<?php
if( is_jpeg_photo( $server_id, $attr ) )
draw_jpeg_photos( $server_id, $dn, $attr, false, false, 'align="left"' );
else
foreach( $values as $value )
echo str_replace( ' ', '&nbsp;',
htmlspecialchars( $value ) ) . "<br />\n";
?>
</td>
</tr>
<?php
$attr = ldap_next_attribute( $ds, $entry_id, $attrs );
} // end while( $attr )
if( is_attr_binary( $ldapserver, $attr ) )
$values = array( "(binary)" );
?>
else
$values = ldap_get_values( $ldapserver->connect(), $entry_id, $attr );
if( isset( $values['count'] ) )
unset( $values['count'] );
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr = "<acronym title=\"Alias for $attr\">".htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
$attr = htmlspecialchars( $attr ); ?>
<tr>
<td class="attr" valign="top"><?php echo $attr; ?></td>
<td class="val">
<?php if( is_jpeg_photo( $ldapserver, $attr ) )
draw_jpeg_photos( $ldapserver, $dn, $attr, false, false, 'align="left"' );
else
foreach( $values as $value )
echo str_replace( ' ', '&nbsp;', htmlspecialchars( $value ) ) . "<br />\n"; ?>
</td>
</tr>
<?php $attr = ldap_next_attribute( $ldapserver->connect(), $entry_id, $attrs );
} // end while( $attr ) ?>
</table>
<?php
<?php $entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
$entry_id = ldap_next_entry( $ds, $entry_id );
// flush every 5th entry (sppeds things up a bit)
if( 0 == $i % 5 )
flush();
// flush every 5th entry (speeds things up a bit)
if( 0 == $i % 5 )
flush();
} // end while( $entry_id )
?>

View File

@@ -1,17 +1,18 @@
<?php
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_table.php,v 1.6 2005/03/05 06:27:06 wurley Exp $
/**
* Incoming variables (among others)
* $results: The result of ldap_search(), ldap_list(), or ldap_read().
* $ds: LDAP connection resource.
* $ldapserver: LDAP Server Object.
* $start_entry: The index of the entry at which to begin displaying
* $end_entry: The index of the entry at which to end displaying
* @package phpLDAPadmin
*/
$friendly_attrs = process_friendly_attr_table();
$entry_id = ldap_first_entry( $ds, $results );
$all_attrs = array( '' => 1,
'dn' => 1 );
$entry_id = ldap_first_entry( $ldapserver->connect(), $results );
$all_attrs = array( '' => 1, 'dn' => 1 );
// Iterate over each entry and store the whole dang thing in memory (necessary to extract
// all attribute names and display in table format in a single pass)
@@ -21,21 +22,21 @@ $entries_display = array();
while( $entry_id ) {
$i++;
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ds, $entry_id );
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
continue;
}
if( $i >= $end_entry )
break;
$dn = ldap_get_dn( $ds, $entry_id );
$dn_display = strlen( $dn ) > 40 ? "<acronym title=\"" . htmlspecialchars( $dn ) . "\">" .
$dn = ldap_get_dn( $ldapserver->connect(), $entry_id );
$dn_display = strlen( $dn ) > 40 ? "<acronym title=\"" . htmlspecialchars( $dn ) . "\">" .
htmlspecialchars( substr( $dn, 0, 40 ) . '...' ) .
"</acronym>"
: htmlspecialchars( $dn );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$icon = get_icon_use_cache( $server_id, $dn );
$attrs = ldap_get_attributes( $ds, $entry_id );
$attr = ldap_first_attribute( $ds, $entry_id, $attrs );
$icon = get_icon_use_cache( $ldapserver, $dn );
$attrs = ldap_get_attributes( $ldapserver->connect(), $entry_id );
$attr = ldap_first_attribute( $ldapserver->connect(), $entry_id, $attrs );
$attrs_display = array();
$edit_url = "edit.php?server_id=$server_id&amp;dn=$encoded_dn";
$attrs_display[''] = "<center><a href=\"$edit_url\"><img src=\"images/$icon\" /></a><center>";
@@ -47,7 +48,7 @@ while( $entry_id ) {
// Clean up the attr name
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr_display = "<acronym title=\"Alias for $attr\">" .
$attr_display = "<acronym title=\"Alias for $attr\">" .
htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
@@ -58,15 +59,15 @@ while( $entry_id ) {
// Get the values
$display = '';
if( is_jpeg_photo( $server_id, $attr ) ) {
if( is_jpeg_photo( $ldapserver, $attr ) ) {
ob_start();
draw_jpeg_photos( $server_id, $dn, $attr, false, false, 'align="center"' );
draw_jpeg_photos( $ldapserver, $dn, $attr, false, false, 'align="center"' );
$display = ob_get_contents();
ob_end_clean();
} elseif( is_attr_binary( $server_id, $attr ) ) {
} elseif( is_attr_binary( $ldapserver, $attr ) ) {
$display = array( "(binary)" );
} else {
$values = @ldap_get_values( $ds, $entry_id, $attr );
$values = @ldap_get_values( $ldapserver->connect(), $entry_id, $attr );
if( ! is_array( $values ) ) {
$display = 'Error';
} else {
@@ -78,7 +79,7 @@ while( $entry_id ) {
}
}
$attrs_display[ $attr_display ] = $display;
$attr = ldap_next_attribute( $ds, $entry_id, $attrs );
$attr = ldap_next_attribute( $ldapserver->connect(), $entry_id, $attrs );
} // end while( $attr )
$entries_display[] = $attrs_display;
@@ -86,7 +87,7 @@ while( $entry_id ) {
//echo '<pre>';
//print_r( $attrs_display );
//echo "\n\n";
$entry_id = ldap_next_entry( $ds, $entry_id );
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
} // end while( $entry_id )
@@ -126,5 +127,7 @@ for( $i=0; $i<count($entries_display); $i++ ) {
}
echo "</tr>\n";
}
echo "</table>";
echo "</center>";
?>

838
server_functions.php Normal file
View File

@@ -0,0 +1,838 @@
<?php
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/server_functions.php,v 1.10 2005/04/05 07:46:24 wurley Exp $ */
/**
* Classes and functions for LDAP server configuration and capability
*
* @author The phpLDAPadmin development team
* @package phpLDAPadmin
*/
/**
* @package phpLDAPadmin
*/
class LDAPServer
{
/** Server ID as defined in config.php */
var $server_id;
/** Server Name as defined in config.php */
var $name;
/** Server Hostname as defined in config.php */
var $host;
/** Server Port as defined in config.php */
var $port;
/** Server Authentication method as defined in config.php */
var $auth_type;
/** Server Authentication Login DN as defined in config.php */
var $login_dn;
/** Server Authentication Password as defined in config.php */
var $login_pass;
/** Array of our connections to this LDAP server */
var $connections = array();
/** Server Base Dn */
var $_baseDN;
/** Default constructor.
* @param int $server_id the server_id of the LDAP server as defined in config.php
* @todo Need some error checking here in case the config is screwed.
*/
function LDAPServer($server_id,$ignore=true)
{
global $servers, $lang;
// Other Internal Values
$this->_baseDN = null;
$this->_schemaDN = null;
$this->server_id = $server_id;
$this->name = isset( $servers[$server_id]['name'] ) ? $servers[$server_id]['name'] : '';
$this->auth_type = isset( $servers[$server_id]['auth_type'] ) ? $servers[$server_id]['auth_type'] : '';
if ($this->isValidServer($server_id)) {
$this->host = isset( $servers[$server_id]['host'] ) ? $servers[$server_id]['host'] : '';
$this->port = isset( $servers[$server_id]['port'] ) ? $servers[$server_id]['port'] : '';
} else {
if (! $ignore)
pla_error ( $lang['bad_server_id']." ($server_id)",null,-1,true );
else
return null;
}
$this->login_dn = isset( $servers[$server_id]['login_dn'] ) ? $servers[$server_id]['login_dn'] : false;
$this->login_pass = isset( $servers[$server_id]['login_pass'] ) ? $servers[$server_id]['login_pass'] : false;
}
/**
* Checks the specified server id for sanity. Ensures that the server is indeed in the configured
* list and active. This is used by many many scripts to ensure that valid server ID values
* are passed in POST and GET.
*
* @param int $server_id the server_id of the LDAP server as defined in config.php
* @return bool
*/
function isValidServer( $server_id )
{
global $servers;
if( ! is_numeric( $server_id )
|| ! isset( $servers[$server_id] )
|| ! isset( $servers[$server_id]['host'] )
|| trim($servers[$server_id]['host']) == '' )
return false;
else
return true;
}
/**
* Check if there is sufficent information to Authenticate to the LDAP server.
*
* Given a server, returns whether or not we have enough information
* to authenticate against the server. For example, if the user specifies
* auth_type of 'cookie' in the config for that server, it checks the $_COOKIE array to
* see if the cookie username and password is set for the server. If the auth_type
* is 'session', the $_SESSION array is checked.
*
* There are three cases for this function depending on the auth_type configured for
* the specified server. If the auth_type is session or cookie, then get_logged_in_dn() is
* called to verify that the user has logged in. If the auth_type is config, then the
* $servers array in config.php is checked to ensure that the user has specified
* login information. In any case, if phpLDAPadmin has enough information to login
* to the server, true is returned. Otherwise false is returned.
*
* @return bool
* @see get_logged_in_dn
*/
function haveAuthInfo()
{
global $servers;
// For session or cookie auth_types, we check the session or cookie to see if a user has logged in.
if( in_array( $this->auth_type, array( 'session', 'cookie' ) ) ) {
// we don't look at get_logged_in_pass() cause it may be null for anonymous binds
// get_logged_in_dn() will never return null if someone is really logged in.
if( get_logged_in_dn( $this ) )
return true;
else
return false;
}
// whether or not the login_dn or pass is specified, we return
// true here. (if they are blank, we do an anonymous bind anyway)
elseif( ! isset( $server['auth_type'] ) || $server['auth_type'] == 'config' ) {
return true;
} else {
global $lang;
pla_error( sprintf($lang['error_auth_type_config'],htmlspecialchars($server['auth_type'])) );
}
return false;
}
/**
* Connect to the LDAP server.
* @param bool $anonymous Connect as the anonymous user.
* @param bool $reconnect Use a cached connetion, or create a new one.
* @returns resource|false Connection resource to LDAP server, or false if no connection made.
* @todo Need to make changes so that multiple connects can be made.
*/
function connect($process_error=true,$anonymous=false,$reconnect=false,$connect_num=0)
{
debug_log(sprintf('%s::connect(): Starting with (%s,%s,%s,%s)',get_class($this),$process_error,$anonymous,$reconnect,$connect_num),8);
if (isset($this->connections[$connect_num]['resource']) && ! $reconnect) {
debug_log(sprintf('%s::connect(): Returning CACHED connection resource [%s](%s)',get_class($this),$this->connections[$connect_num]['resource'
],$connect_num),7);
return $this->connections[$connect_num]['resource'];
} else {
debug_log(sprintf('%s::connect(): Creating new connection #[%s] for Server ID [%s]',get_class($this),$connect_num,$this->server_id),9);
global $servers, $lang;
if( $anonymous == true ) {
debug_log(sprintf('%s::connect(): This IS an anonymous login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = null;
$this->connections[$connect_num]['login_pass'] = null;
} // grab the auth info based on the auth_type for this server
elseif( $this->auth_type == 'config' ) {
debug_log(sprintf('%s::connect(): This IS a "config" login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = $servers[$this->server_id]['login_dn'];
$this->connections[$connect_num]['login_pass'] = $servers[$this->server_id]['login_pass'];
$this->connections[$connect_num]['login_dn'] = expand_dn_with_base( $this, $this->connections[$connect_num]['login_dn'], false );
debug_log(sprintf('%s::connect(): Config settings, DN [%s], PASS [%s]',get_class($this),
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] ? md5($this->connections[$connect_num]['login_pass']) : ''),9);
} else {
debug_log(sprintf('%s::connect(): This IS some other login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = get_logged_in_dn( $this );
$this->connections[$connect_num]['login_pass'] = get_logged_in_pass( $this );
debug_log(sprintf('%s::connect(): Config settings, DN [%s], PASS [%s]',get_class($this),
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] ? md5($this->connections[$connect_num]['login_pass']) : ''),9);
// Was this an anonyous bind (the cookie stores 0 if so)?
if( 'anonymous' == $this->connections[$connect_num]['login_dn'] ) {
$this->connections[$connect_num]['login_dn'] = null;
$this->connections[$connect_num]['login_pass'] = null;
$anonymous = true;
}
}
if (! $anonymous && ! $this->connections[$connect_num]['login_dn'] && ! $this->connections[$connect_num]['login_pass']) {
debug_log(sprintf('%s::connect(): We dont have enough auth info for server [%s]',get_class($this),$this->server_id),9);
return false;
}
run_hook ( 'pre_connect', array ( 'server_id' => $this->server_id,
'connect_num' => $connect_num,
'anonymous' => $anonymous ) );
if( $this->port )
$resource = @ldap_connect( $this->host, $this->port );
else
$resource = @ldap_connect( $this->host );
debug_log(sprintf('%s::connect(): LDAP Resource [%s], Host [%s], Port [%s]',get_class($this),$resource,$this->host,$this->port),9);
// go with LDAP version 3 if possible (needed for renaming and Novell schema fetching)
@ldap_set_option( $resource, LDAP_OPT_PROTOCOL_VERSION, 3 );
// Disabling this makes it possible to browse the tree for Active Directory, and seems
// to not affect other LDAP servers (tested with OpenLDAP) as phpLDAPadmin explicitly
// specifies deref behavior for each ldap_search operation.
@ldap_set_option( $resource, LDAP_OPT_REFERRALS, 0);
// try to fire up TLS is specified in the config
if( $this->isTLSEnabled() ) {
function_exists( 'ldap_start_tls' ) or pla_error( $lang['php_install_not_supports_tls'] );
@ldap_start_tls( $resource ) or pla_error( $lang['could_not_start_tls'], ldap_error($resource));
}
$bind_result = @ldap_bind( $resource, $this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] );
debug_log(sprintf('%s::connect(): Resource [%s], Bind Result [%s]',
get_class($this),$resource,$bind_result),9);
if( ! $bind_result ) {
debug_log(sprintf('%s::connect(): Leaving with FALSE, bind FAILed',get_class($this)),9);
if ($process_error) {
switch( ldap_errno($resource) ) {
case 0x31:
pla_error( $lang['bad_user_name_or_password'] );
break;
case 0x32:
pla_error( $lang['insufficient_access_rights'] );
break;
case -1:
pla_error( sprintf($lang['could_not_connect_to_host_on_port'],$this->host,$this->port) );
break;
default:
pla_error( $lang['could_not_bind'], ldap_err2str( $resource ), $resource );
}
} else {
return false; // ldap_errno( $resource );
}
}
if (is_resource($resource) && ($bind_result)) {
debug_log(sprintf('%s::connect(): Bind successful',get_class($this)),9);
$this->connections[$connect_num]['connected'] = true;
$this->connections[$connect_num]['resource'] = $resource;
/*
} else {
if ($process_error) {
debug_log(sprintf('Server: [%s], Username: [%s], Password: [%s]',
$this->server_id,
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass']),9);
if( is_numeric( $resource ) ) {
switch( $resource ) {
case -1: pla_error( $lang['bad_server_id'] ); break;
case -2: pla_error( $lang['not_enough_login_info'] ); break;
default: pla_error( $lang['ferror_error'] ); break;
}
// return true; Do we get here?
}
switch( $resource ) {
case 0x31:
pla_error( $lang['bad_user_name_or_password'] );
break;
case 0x32:
pla_error( $lang['insufficient_access_rights'] );
break;
case 0x5b:
pla_error( $lang['could_not_connect'] );
break;
default:
pla_error( $lang['could_not_bind'], ldap_err2str( $this->connections[$connect_num]['resource'] ), $this->connections[$connect_num]['resource'] );
}
}
debug_log(sprintf('%s::connect(): Leaving with FALSE',get_class($this)),9);
return false;
*/
}
}
debug_log(sprintf('%s::connect(): Leaving with Connect #[%s], Resource [%s]',get_class($this),$connect_num,$this->connections[$connect_num]['resource']),9);
return $this->connections[$connect_num]['resource'];
}
/**
* Gets the root DN of the specified LDAPServer, or null if it
* can't find it (ie, the server won't give it to us, or it isnt
* specified in the configuration file).
*
* Tested with OpenLDAP 2.0, Netscape iPlanet, and Novell eDirectory 8.7 (nldap.com)
* Please report any and all bugs!!
*
* Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
* the search base if it is blank - so edit that file and comment out the BASE line.
*
* @return array dn|null The root DN of the server on success (string) or null on error.
* @todo Sort the entries, so that they are in the correct DN order.
*/
function getBaseDN()
{
global $servers;
debug_log(sprintf('%s::getBaseDN(): Looking for BaseDN',get_class($this)),8);
// Return the cached entry if we've been here before.
if (! is_null($this->_baseDN)) {
debug_log(sprintf('%s::getBaseDN(): Return CACHED BaseDN [%s]',get_class($this),implode('|',$this->_baseDN)),7);
return $this->_baseDN;
}
debug_log(sprintf('%s::getBaseDN(): Checking config for BaseDN',get_class($this)),9);
// If the base is set in the configuration file, then just return that.
// @todo Do we need to test if the config array is blank?
if (isset($servers[$this->server_id]['base']) && $servers[$this->server_id]['base']) {
$this->_baseDN = is_array($servers[$this->server_id]['base']) ? $servers[$this->server_id]['base'] : array($servers[$this->server_id]['base']);
debug_log(sprintf('%s::getBaseDN(): Return BaseDN from Config [%s]',get_class($this),implode('|',$this->_baseDN)),4);
return $this->_baseDN;
// We need to figure it out.
} else {
debug_log(sprintf('%s::getBaseDN(): Connect to LDAP to find BaseDN',get_class($this)),9);
// Are we connected
// @todo This bit needs to be more robust.
if ($this->connect()) {
$r = @ldap_read( $this->connect(), "", 'objectClass=*', array( 'namingContexts' ) );
debug_log(sprintf('%s::getBaseDN(): Search Results [%s], Resource [%s], Msg [%s]',get_class($this),$r,$this->connect(),ldap_error($this->connect())),9);
if( ! $r )
return array('');
$r = @ldap_get_entries( $this->connect(false), $r );
if( isset( $r[0]['namingcontexts'] ) ) {
// If we have a count key, delete it - dont need it.
if (isset($r[0]['namingcontexts']['count']))
unset($r[0]['namingcontexts']['count']);
debug_log(sprintf('%s::getBaseDN(): LDAP Entries:%s',get_class($this),implode('|',$r[0]['namingcontexts'])),5);
$this->_baseDN = $r[0]['namingcontexts'];
// @todo Do we need this session?
//$_SESSION[ "pla_root_dn_$this->server_id" ] = $this->_baseDN;
return $this->_baseDN;
} else {
return array('');
}
} else {
return array('');
}
}
}
/**
* Returns true if the specified server is configured to be displayed
* in read only mode.
*
* If a user has logged in via anonymous bind, and config.php specifies
* anonymous_bind_implies_read_only as true, then
* this also returns true. Servers can be configured read-only in
* config.php thus:
* <code>
* $server[$i]['read_only'] = true;
* </code>
*
* @return bool
*/
function isReadOnly()
{
global $servers;
if( isset( $servers[$this->server_id]['read_only'] ) &&
$servers[$this->server_id]['read_only'] == true )
return true;
global $anonymous_bind_implies_read_only;
if( "anonymous" == get_logged_in_dn( $this ) &&
isset( $anonymous_bind_implies_read_only ) &&
$anonymous_bind_implies_read_only == true )
return true;
return false;
}
/**
* Returns true if the user has configured the specified server to enable mass deletion.
*
* Mass deletion is enabled in config.php this:
* <code>
* $enable_mass_delete = true;
* </code>
* Notice that mass deletes are not enabled on a per-server basis, but this
* function checks that the sever is not in a read-only state as well.
*
* @return bool
*/
function isMassDeleteEnabled()
{
global $enable_mass_delete;
if( $this->connect(false) &&
$this->haveAuthInfo() &&
! $this->isReadOnly() &&
isset( $enable_mass_delete ) &&
true === $enable_mass_delete )
return true;
else
return false;
}
/**
* Gets whether the admin has configured phpLDAPadmin to show the "Create New" link in the tree viewer.
*
* <code>
* $server[$i]['show_create'] = true|false;
* </code>
* If $servers[$server_id]['show_create'] is NOT set, then default to show the Create New item.
* If $servers[$server_id]['show_create'] IS set, then return the value (it should be true or false).
*
* @return bool True if the feature is enabled and false otherwise.
*/
function isShowCreateEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['show_create'] ))
return $servers[$this->server_id]['show_create'];
else
return true;
}
/**
* Fetch whether the user has configured a certain server as "low bandwidth".
*
* Users may choose to configure a server as "low bandwidth" in config.php thus:
* <code>
* $servers[$i]['low_bandwidth'] = true;
* </code>
* @return bool
*/
function isLowBandwidth()
{
global $servers;
if( isset( $servers[$this->server_id]['low_bandwidth'] ) && true == $servers[$this->server_id]['low_bandwidth'] )
return true;
else
return false;
}
/**
* Should this LDAP server be shown in the tree?
*
* <code>
* $server[$i]['visible'] = true;
* </code>
* @return bool True if the feature is enabled and false otherwise.
*/
function isVisible()
{
global $servers;
$is_visible = ( ! isset( $servers[$this->server_id]['visible'] )
|| ( $servers[$this->server_id]['visible'] === true ) );
if( $this->isValidServer($this->server_id) && $is_visible )
return true;
else
return false;
}
/**
* This function will query the ldap server and request the subSchemaSubEntry which should be the Schema DN.
*
* If we cant connect to the LDAP server, we'll return false.
* If we can connect but cant get the entry, then we'll return null.
*
* @return array|false Schema if available, null if its not or false if we cant connect.
* @param bool $debug Switch to true to see some nice and copious output. :)
*/
function getSchemaDN($dn='', $debug = false)
{
// If we already got the SchemaDN, then return it.
if ($this->_schemaDN)
return $this->_schemaDN;
if( $debug ) echo "<pre>";
if (! $this->connect())
return false;
$search = @ldap_read( $this->connect(), $dn, 'objectClass=*', array( 'subschemaSubentry' ) );
if( $debug ) { printf("%s::getSchemaDN(): ldap_read: ",get_class($this)); var_dump( $search ); echo "\n"; }
if( ! $search ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (search result is blank)<BR>",get_class($this));
return null;
}
if( @ldap_count_entries( $this->connect(), $search ) == 0 ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (ldap_count_entries() == 0)<BR>",get_class($this));
return null;
}
$entries = @ldap_get_entries( $this->connect(), $search );
if( $debug ) { echo "Entries (ldap_get_entries): "; var_dump( $entries ); echo "\n"; }
if( ! $entries || ! is_array( $entries ) ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (Bad entries, false or not array)<BR>",get_class($this));
return null;
}
$entry = isset( $entries[0] ) ? $entries[0] : false;
if( ! $entry ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (entry is false)<BR>",get_class($this));
return null;
}
$sub_schema_sub_entry = isset( $entry[0] ) ? $entry[0] : false;
if( ! $sub_schema_sub_entry ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (sub_schema_sub_entry val is false)<BR>",get_class($this));
return null;
}
$this->_schemaDN = isset( $entry[ $sub_schema_sub_entry ][0] ) ? $entry[ $sub_schema_sub_entry ][0] : false;
if( $debug ) printf("%s::getSchemaDN(): returning (%s)<BR>",get_class($this),$this->_schemaDN);
return $this->_schemaDN;
}
/**
* Fetches the raw schema array for the subschemaSubentry of the server. Note,
* this function has grown many hairs to accomodate more LDAP servers. It is
* needfully complicated as it now supports many popular LDAP servers that
* don't necessarily expose their schema "the right way".
*
* Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
* the search base if it is blank - so edit that file and comment out the BASE line.
*
* @param string $schema_to_fetch - A string indicating which type of schema to
* fetch. Five valid values: 'objectclasses', 'attributetypes',
* 'ldapsyntaxes', 'matchingruleuse', or 'matchingrules'.
* Case insensitive.
* @param dn $dn (optional) This paremeter is the DN of the entry whose schema you
* would like to fetch. Entries have the option of specifying
* their own subschemaSubentry that points to the DN of the system
* schema entry which applies to this attribute. If unspecified,
* this will try to retrieve the schema from the RootDSE subschemaSubentry.
* Failing that, we use some commonly known schema DNs. Default
* value is the Root DSE DN (zero-length string)
* @return array an array of strings of this form:
* Array (
* [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
* [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
* etc.
*/
function getRawSchema($schema_to_fetch, $dn='')
{
global $lang;
// Swith to true to enable verbose output of schema fetching progress
$debug = false;
if (! $this->connect())
return false;
// error checking
$schema_to_fetch = strtolower( $schema_to_fetch );
$valid_schema_to_fetch = array( 'objectclasses', 'attributetypes', 'ldapsyntaxes',
'matchingrules', 'matchingruleuse' );
if( ! in_array( $schema_to_fetch, $valid_schema_to_fetch ) )
// This error message is not localized as only developers should ever see it
pla_error( "Bad parameter provided to function to ". get_class($this) ."::getRawSchema(). '"
. htmlspecialchars( $schema_to_fetch ) . "' is not valid for the schema_to_fetch parameter." );
// Try to get the schema DN from the specified entry.
$schema_dn = $this->getSchemaDN($dn,$debug);
// Do we need to try again with the Root DSE?
if( ! $schema_dn )
$schema_dn = $this->getSchemaDN('', $debug);
// Store the eventual schema retrieval in $schema_search
$schema_search = null;
if( $schema_dn ) {
if( $debug ) { printf("%s::getRawSchema(): Found the Schema DN:<BR>",get_class($this)); var_dump( $schema_dn ); echo "\n"; }
$schema_search = @ldap_read( $this->connect(), $schema_dn, '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
// Were we not able to fetch the schema from the $schema_dn?
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
if( $schema_search === false ||
0 == @ldap_count_entries( $this->connect(), $schema_search ) ||
! isset( $schema_entries[0][$schema_to_fetch] ) ) {
// Try again with a different filter (some servers require (objectClass=subschema) like M-Vault)
if( $debug ) printf("%s::getRawSchema(): Did not find the schema with (objectClass=*). Attempting with (objetClass=subschema):<BR>",get_class($this));
$schema_search = @ldap_read( $this->connect(), $schema_dn, '(objectClass=subschema)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
// Still didn't get it?
if( $schema_search === false ||
0 == @ldap_count_entries( $this->connect(), $schema_search ) ||
! isset( $schema_entries[0][$schema_to_fetch] ) ) {
if( $debug ) printf("%s::getRawSchema(): Did not find the schema with DN: %s (with objectClass=* nor objectClass=subschema)<BR>",get_class($this),$schema_dn);
unset( $schema_entries );
$schema_search = null;
} else {
if( $debug ) printf("%s::getRawSchema(): Found the schema at DN: %s (objectClass=subschema)<BR>",get_class($this),$schema_dn);
}
} else {
if( $debug ) printf("%s::getRawSchema(): Found the schema at DN: %s (objectClass=*)<BR>",get_class($this),$schema_dn);
}
}
// Second chance: If the DN or Root DSE didn't give us the subschemaSubentry, ie $schema_search
// is still null, use some common subSchemaSubentry DNs as a work-around.
if ($schema_search == null) {
if( $debug )
printf("%s::getRawSchema(): Attempting work-arounds for 'broken' LDAP servers...<BR>",get_class($this));
// OpenLDAP and Novell
// @todo Fix expand_dn_with_base - no longer works since getBaseDN is now an arrya.
$ldap['OpenLDAP']['cn=subschema'] = '(objectClass=*)';
// $ldap['W2K3 AD'][expand_dn_with_base($this,'cn=Aggregate,cn=Schema,cn=configuration,',true)] = '(objectClass=*)';
// $ldap['W2K AD'][expand_dn_with_base($this,'cn=Schema,cn=configuration,',true)] = '(objectClass=*)';
// $ldap['W2K AD'][expand_dn_with_base($this,'cn=Schema,ou=Admin,',true)] = '(objectClass=*)';
foreach ($ldap as $ldap_server_name => $ldap_options) {
foreach ($ldap_options as $ldap_dn => $ldap_filter) {
if( $debug ) printf("%s::getRawSchema(): Attempting [%s] (%s) (%s)<BR>",get_class($this),$ldap_server_name,$ldap_dn,$ldap_filter);
$schema_search = @ldap_read($this->connect(), $ldap_dn, $ldap_filter,
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
}
if ($schema_search)
break;
}
// Still cant find the schema, try with the RootDSE
// Attempt to pull schema from Root DSE with scope "base", or
// Attempt to pull schema from Root DSE with scope "one" (work-around for Isode M-Vault X.500/LDAP)
}
if ($schema_search == null) {
foreach (array('base','one') as $ldap_scope) {
if( $debug ) printf("%s::getRawSchema(): Attempting [%s] (%s) (%s) - %s<BR>",get_class($this),'RootDSE','','(objectClass=*)',$ldap_scope);
if ($ldap_scope == 'base')
$schema_search = @ldap_read($this->connect(), '', '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
else
$schema_search = @ldap_list($this->connect(), '', '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
$schema_search = null;
else
break;
}
}
// Shall we just give up?
if( $schema_search == null ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since schema_search came back null",get_class($this));
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
// Did we get something unrecognizable?
if( 'resource' != gettype( $schema_search ) ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since schema_search is not of type 'resource', here is a dump:",get_class($this));
if( $debug ) var_dump( $schema_search );
if( $debug ) echo "</pre>";
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
$schema = @ldap_get_entries( $this->connect(), $schema_search );
if( $schema == false ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since ldap_get_entries() returned false.</pre>",get_class($this));
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
if( ! isset( $schema[0][$schema_to_fetch] ) ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since '%s' isn't in the schema array. Showing schema array:\n",get_class($this),$schema_to_fetch);
if( $debug ) var_dump( $schema );
if( $debug ) echo "</pre>";
set_schema_cache_unavailable( $this->server_id,$schema_to_fetch );
return false;
}
// Make a nice array of this form:
// Array (
// [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
// [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
// etc.
$schema = $schema[0][$schema_to_fetch];
unset( $schema['count'] );
if( $debug ) var_dump( $schema );
if( $debug ) echo "</pre>";
return $schema;
}
/**
* Fetches whether the login_attr feature is enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
* By virtue of the fact that the login_attr is not blank and not 'dn', the
* feature is configured to be enabled.
*
* @return bool
*/
function isLoginAttrEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['login_attr'] ) &&
0 != strcasecmp( $servers[$this->server_id]['login_attr'], "dn" ) &&
trim( $servers[$this->server_id]['login_attr'] != "" ) )
return true;
else
return false;
}
/**
* Fetches whether the login_attr feature is enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
*
* @return bool
*/
function isLoginStringEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['login_attr'] ) &&
0 == strcasecmp( $servers[$this->server_id]['login_attr'], "string" ) )
return true;
else
return false;
}
/**
* Fetches the login_attr string if enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
*
* @return string|false
*/
function getLoginString()
{
global $servers;
if( isset( $servers[$this->server_id]['login_string'] ) )
return $servers[$this->server_id]['login_string'];
else
return false;
}
/**
* Fetch whether the user has configured a certain server login to be non anonymous
*
* <code>
* $servers[$i]['disable_anon_bind'] = true;
* </code>
* @return bool
*/
function isAnonBindAllowed()
{
global $servers;
// If only_login_allowed_dns is set, then we cant have anonymous.
if ( isset( $servers[$this->server_id]['only_login_allowed_dns'] )
&& is_array( $servers[$this->server_id]['only_login_allowed_dns'] )
&& count($servers[$this->server_id]['only_login_allowed_dns'] ) > 0 )
return false;
else
return ( ! isset( $servers[$this->server_id]['disable_anon_bind'] )
|| false == $servers[$this->server_id]['disable_anon_bind'] )
? true
: false;
}
/**
* Fetches whether TLS has been configured for use with a certain server.
*
* Users may configure phpLDAPadmin to use TLS in config,php thus:
* <code>
* $servers[$i]['tls'] = true;
* </code>
* @param int $server_id The ID of the server of interest from config.php.
* @return bool
*/
function isTLSEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['tls'] ) && true == $servers[$this->server_id]['tls'] )
return true;
else
return false;
}
}
?>

View File

@@ -1,80 +1,85 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/server_info.php,v 1.15 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/server_info.php,v 1.18 2005/03/16 09:52:31 wurley Exp $
/*
* server_info.php
/**
* Fetches and displays all information that it can from the specified server
*
*
* Variables that come in as GET vars:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
// The attributes we'll examine when searching the LDAP server's RootDSE
$root_dse_attributes = array( 'namingContexts',
'subschemaSubentry',
'altServer',
'supportedExtension',
'supportedControl',
'supportedSASLMechanisms',
'supportedLDAPVersion',
'currentTime',
'dsServiceName',
'defaultNamingContext',
'schemaNamingContext',
'configurationNamingContext',
'rootDomainNamingContext',
'supportedLDAPPolicies',
'highestCommittedUSN',
'dnsHostName',
'ldapServiceName',
'serverName',
'supportedCapabilities',
'changeLog',
'tlsAvailableCipherSuites',
'tlsImplementationVersion',
'supportedSASLMechanisms',
'dsaVersion',
'myAccessPoint',
'dseType',
'+',
'*'
);
$root_dse_attributes = array( 'namingContexts',
'subschemaSubentry',
'altServer',
'supportedExtension',
'supportedControl',
'supportedSASLMechanisms',
'supportedLDAPVersion',
'currentTime',
'dsServiceName',
'defaultNamingContext',
'schemaNamingContext',
'configurationNamingContext',
'rootDomainNamingContext',
'supportedLDAPPolicies',
'highestCommittedUSN',
'dnsHostName',
'ldapServiceName',
'serverName',
'supportedCapabilities',
'changeLog',
'tlsAvailableCipherSuites',
'tlsImplementationVersion',
'supportedSASLMechanisms',
'dsaVersion',
'myAccessPoint',
'dseType',
'+',
'*'
);
$server_id = $_GET['server_id'];
$server_name = $servers[$server_id]['name'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
// Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read( $ds, '', 'objectClass=*', array( '+', '*' ) );
// Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read( $ldapserver->connect(), '', 'objectClass=*', array( '+', '*' ) );
if( ! $r )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ds ), ldap_errno( $ds ) );
$entry = @ldap_first_entry( $ds, $r );
if( ! $entry )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ds ), ldap_errno( $ds ) );
$attrs = @ldap_get_attributes( $ds, $entry );
$count = @ldap_count_entries( $ds, $r );
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
// After fetching the "basic" attributes from the RootDSE, try fetching the
$entry = @ldap_first_entry( $ldapserver->connect(), $r );
if( ! $entry )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
$attrs = @ldap_get_attributes( $ldapserver->connect(), $entry );
$count = @ldap_count_entries( $ldapserver->connect(), $r );
// After fetching the "basic" attributes from the RootDSE, try fetching the
// more advanced ones (from ths list). Add them to the list of attrs to display
// if they weren't already fetched. (this was added as a work-around for OpenLDAP
// if they weren't already fetched. (this was added as a work-around for OpenLDAP
// on RHEL 3.
$r2 = @ldap_read( $ds, '', 'objectClass=*', $root_dse_attributes );
$r2 = @ldap_read( $ldapserver->connect(), '', 'objectClass=*', $root_dse_attributes );
if( $r2 ) {
$entry2 = @ldap_first_entry( $ds, $r );
$attrs2 = @ldap_get_attributes( $ds, $entry );
for( $i=0; $i<$attrs2['count']; $i++ ) {
$attr = $attrs2[$i];
if( ! isset( $attrs[ $attr ] ) ) {
$attrs[ $attr ] = $attrs2[ $attr ];
$attrs[ 'count' ]++;
$attrs[] = $attr;
}
}
$entry2 = @ldap_first_entry( $ldapserver->connect(), $r );
$attrs2 = @ldap_get_attributes( $ldapserver->connect(), $entry );
for( $i=0; $i<$attrs2['count']; $i++ ) {
$attr = $attrs2[$i];
if( ! isset( $attrs[ $attr ] ) ) {
$attrs[ $attr ] = $attrs2[ $attr ];
$attrs[ 'count' ]++;
$attrs[] = $attr;
}
}
}
unset( $attrs2, $entry, $entry2 );
@@ -82,38 +87,40 @@ include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars( $server_name ); ?></h3>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars( $ldapserver->name ); ?></h3>
<h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3>
<?php if( $count == 0 || $attrs['count'] == 0 ) { ?>
<br /><br /><center><?php echo $lang['nothing_to_report']; ?></center>
<?php exit; ?>
<?php } ?>
<table class="edit_dn">
<?php
for( $i=0; $i<$attrs['count']; $i++ ) {
<?php for( $i=0; $i<$attrs['count']; $i++ ) {
$attr = $attrs[$i];
$schema_href = "schema.php?server_id=$server_id&amp;view=attributes&amp;viewvalue=$attr";
?>
$schema_href = "schema.php?server_id=$server_id&amp;view=attributes&amp;viewvalue=$attr"; ?>
<tr>
<td class="attr">
<b>
<a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ); ?>"
<a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars( $attr ); ?></a>
</b>
</td>
</tr>
<tr>
<td class="val">
<?php for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ )
echo htmlspecialchars( $attrs[ $attr ][ $j ] ) . "<br />\n"; ?>
</td>
</tr>
</tr>
<tr>
<td class="val"><table class="edit_dn">
<?php for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ ) {
echo "<tr><td>".htmlspecialchars( $attrs[ $attr ][ $j ] )."</td>";
if (support_oid_to_text($attrs[ $attr ][ $j ] ))
echo "<td>".support_oid_to_text($attrs[ $attr ][ $j ] ). "</td></tr>";
} ?>
</table></td>
</tr>
<?php } ?>
</table>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/session_functions.php,v 1.12 2004/09/09 12:45:09 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/session_functions.php,v 1.13 2005/02/25 13:44:06 wurley Exp $
/**
* A collection of functions to handle sessions throughout phpLDAPadmin.
@@ -34,10 +34,10 @@ function pla_session_get_id()
else
$ip_len = $ip_hex - 1;
$new_id = substr($id_md5, 0, $id_hex) .
$new_id = substr($id_md5, 0, $id_hex) .
substr($ip_md5, $ip_hex, $ip_len) .
substr($id_md5, $id_hex, pla_session_id_ses_max - ($id_hex + $ip_len));
return $new_id;
}
@@ -56,7 +56,7 @@ function pla_session_verify_id()
$ip_len = pla_session_id_ip_min;
else
$ip_len = $ip_hex - 1;
$ip_ses = substr($check_id, $id_hex, $ip_len);
$ip_ver = substr($ip_md5, $ip_hex, $ip_len);
@@ -111,9 +111,7 @@ function pla_session_start()
/**
* Stops the current session.
*/
function pla_session_close()
{
function pla_session_close() {
@session_write_close();
}
?>

View File

@@ -1,10 +1,16 @@
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/style.css,v 1.40 2004/10/23 21:13:16 uugdave Exp $ */
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/style.css,v 1.44 2005/03/12 14:03:36 wurley Exp $ */
span.hint {
font-size: small;
font-weight: normal;
color: #888;
}
span.warning {
font-size: small;
font-weight: normal;
color: #f00;
}
span.x-small {
font-size: x-small;
}
@@ -81,7 +87,7 @@ table.error tr td h2 {
}
table.error tr td.img {
vertical-align: center;
vertical-align: middle;
text-align: center;
width: 20px;
}
@@ -130,7 +136,7 @@ table.template_display tr td {
table.templates tr td {
text-align: left;
vertical-align: center;
vertical-align: middle;
}
table.templates tr {
@@ -143,7 +149,7 @@ table.templates td.icon {
table.exporters tr td {
text-align: left;
vertical-align: center;
vertical-align: middle;
}
table.exporters tr {
@@ -278,11 +284,32 @@ h3.subtitle {
font-weight: normal;
}
table.comp_dn {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
font-size: 80%;
}
table.comp_dn tr {
width: 200px;
}
table.comp_dn tr td.attr {
background-color: #eee;
vertical-align: top;
}
table.comp_dn tr td.attr_note {
text-align: right;
background-color: #eee;
padding-right: 50px;
}
table.edit_dn {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
width: 500px;
width: 600px;
}
table.edit_dn input {
@@ -292,7 +319,7 @@ table.edit_dn input {
table.edit_dn input.val {
font-size: 14px;
width: 350px;
font-family: arial, helvetica, sans-serif
font-family: arial, helvetica, sans-serif;
background-color: white;
}
@@ -335,9 +362,9 @@ table.edit_dn tr td.attr a:hover {
table.edit_dn tr td.val {
text-align: left;
vertical-align: center;
vertical-align: middle;
padding-bottom: 10px;
padding-left: 80px;
padding-left: 50px;
}
@@ -615,6 +642,16 @@ table.export_form tr td {
padding: 4px;
}
table.form tr td {
vertical-align: top;
padding: 4px;
}
.attribute_failed {
color: red;
}
img.chooser {
/* This makes the chooser image line up properly when placed next to a form element in a table cell*/
vertical-align: bottom;

56
syslog.php Normal file
View File

@@ -0,0 +1,56 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/syslog.php,v 1.5 2005/04/05 07:34:23 wurley Exp $
/**
* Functions related to syslog logging.
*
* @author Benjamin Drieu <benjamin.drieu@fr.alcove.com> and Alcôve
* @package phpLDAPadmin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
// require_once 'config.php';
/* Initialize syslog */
if ( isset($use_syslog) && $use_syslog != false ) {
define_syslog_variables();
openlog('phpldapadmin', LOG_ODELAY, LOG_DAEMON );
}
/**
* Verify that syslog logging is activated in the config via the
* $use_syslog variable and does a call to the syslog() function is it
* is true.
*
* @param emergency Syslog emergency.
* @param log_string String to log.
*/
function syslog_msg ( $emergency, $log_string, $ldapserver=null ) {
global $use_syslog;
if ( isset($ldapserver->server_id) ) {
$log_string = "(" . get_logged_in_dn( $ldapserver->ldapserver ) . ") " . $log_string;
}
if ( isset($use_syslog) && $use_syslog != false) {
syslog ( $emergency, $log_string );
}
return true;
}
?>

View File

@@ -1,10 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/custom.php,v 1.37 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/custom.php,v 1.40 2005/03/12 00:57:18 wurley Exp $
// Common to all templates
$rdn = isset( $_POST['rdn'] ) ? $_POST['rdn'] : null;
$container = $_POST['container'];
$server_id = $_POST['server_id'];
$ldapserver = new LDAPServer ($server_id);
// Unique to this template
$step = isset( $_POST['step'] ) ? $_POST['step'] : 1;
@@ -14,7 +15,7 @@ have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( $step == 1 )
{
$oclasses = get_schema_objectClasses( $server_id );
$oclasses = get_schema_objectClasses( $ldapserver );
if( ! $oclasses || ! is_array( $oclasses ) )
pla_error( "Unable to retrieve the schema from your LDAP server. Cannot continue with creation." );
?>
@@ -77,7 +78,7 @@ if( $step == 2 )
strlen( trim( $rdn ) ) != 0 or
pla_error( $lang['rdn_field_blank'] );
strlen( trim( $container ) ) == 0 or dn_exists( $server_id, $container ) or
strlen( trim( $container ) ) == 0 or dn_exists( $ldapserver, $container ) or
pla_error( sprintf( $lang['container_does_not_exist'], htmlspecialchars( $container ) ) );
$friendly_attrs = process_friendly_attr_table();
@@ -87,11 +88,11 @@ if( $step == 2 )
$dn = trim( $container ) ? $rdn . ',' . $container : $rdn;
// incrementally build up the all_attrs and required_attrs arrays
$schema_oclasses = get_schema_objectclasses( $server_id );
$schema_oclasses = get_schema_objectclasses( $ldapserver );
$required_attrs = array();
$all_attrs = array();
foreach( $oclasses as $oclass_name ) {
$oclass = get_schema_objectclass( $server_id, $oclass_name );
$oclass = get_schema_objectclass( $ldapserver, $oclass_name );
if( $oclass ) {
$required_attrs = array_merge( $required_attrs,
$oclass->getMustAttrNames( $schema_oclasses ) );
@@ -103,8 +104,8 @@ if( $step == 2 )
$required_attrs = array_unique( $required_attrs );
$all_attrs = array_unique( $all_attrs );
remove_aliases( $required_attrs, $server_id );
remove_aliases( $all_attrs, $server_id );
remove_aliases( $required_attrs, $ldapserver );
remove_aliases( $all_attrs, $ldapserver );
sort( $required_attrs );
sort( $all_attrs );
@@ -128,7 +129,7 @@ if( $step == 2 )
// remove binary attributes and add them to the binary_attrs array
$binary_attrs = array();
foreach( $all_attrs as $i => $attr_name ) {
if( is_attr_binary( $server_id, $attr_name ) ) {
if( is_attr_binary( $ldapserver, $attr_name ) ) {
unset( $all_attrs[ $i ] );
$binary_attrs[] = $attr_name;
}
@@ -183,7 +184,7 @@ if( $step == 2 )
?></b></td></tr>
<tr>
<td class="val"><input type="<?php echo (is_attr_binary( $server_id, $attr ) ? "file" : "text"); ?>"
<td class="val"><input type="<?php echo (is_attr_binary( $ldapserver, $attr ) ? "file" : "text"); ?>"
name="required_attrs[<?php echo htmlspecialchars($attr); ?>]"
value="<?php echo ($attr == $rdn_attr ? htmlspecialchars($rdn_value) : '') ?>" size="40" />
</tr>
@@ -272,7 +273,7 @@ function get_binary_attr_select_html( $binary_attrs, $friendly_attrs, $highlight
* Removes attributes from the array that are aliases for eachother
* (just removes the second instance of the aliased attr)
*/
function remove_aliases( &$attribute_list, $server_id )
function remove_aliases( &$attribute_list, $ldapserver )
{
// remove aliases from the attribute_list array
for( $i=0; $i<count( $attribute_list ); $i++ ) {
@@ -286,7 +287,7 @@ function remove_aliases( &$attribute_list, $server_id )
continue;
$attr_name2 = $attribute_list[ $k ];
//echo "Comparing $attr_name1 and $attr_name2<br>";
$attr1 = get_schema_attribute( $server_id, $attr_name1 );
$attr1 = get_schema_attribute( $ldapserver, $attr_name1 );
if( null == $attr1 )
continue;
if( $attr1->isAliasFor( $attr_name2 ) ) {
@@ -298,4 +299,3 @@ function remove_aliases( &$attribute_list, $server_id )
$attribute_list = array_values( $attribute_list );
}
?>

View File

@@ -59,7 +59,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
$attribute_name = $attribute_parts[1];
$alias_slashed = str_replace(',', '\,', $alias);
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_dns_entry.php,v 1.9 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_dns_entry.php,v 1.10 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
$container = $_POST['container'];
@@ -56,7 +56,7 @@ if( isset($_POST['step']) )
$container = trim( $_POST['container'] );
$associateddomain = trim( $_POST['associateddomain'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
?>

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_nt_machine.php,v 1.13 2004/12/16 22:59:50 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_nt_machine.php,v 1.14 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
@@ -21,7 +21,7 @@ $default_home_dir = '/dev/null';
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
if( get_schema_objectclass( $server_id, 'sambaAccount' ) == null )
if( get_schema_objectclass( $ldapserver, 'sambaAccount' ) == null )
pla_error( "Your LDAP server does not have schema support for the sambaAccount objectClass. Cannot continue." );
?>
@@ -87,7 +87,7 @@ if( get_schema_objectclass( $server_id, 'sambaAccount' ) == null )
$machine_name = trim( $_POST['machine_name'] );
$uid_number = trim( $_POST['uid_number'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
?>

View File

@@ -174,10 +174,10 @@ if ( !$verify ) {
$reg_zip = trim( $_POST['reg_zip'] );
$container = trim( $_POST['container'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
dn_exists( $server_id, $occupant ) or
dn_exists( $ldapserver, $occupant ) or
pla_error( "The occupant you specified (" . htmlspecialchars( $occupant ) . ") does not exist. " .
"Please go back and try again." );
0 != strlen( $or_name ) or

View File

@@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_ou_template.php,v 1.11 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_ou_template.php,v 1.12 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
$container = $_POST['container'];
@@ -48,7 +48,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
$ou_name = trim( $_POST['ou_name'] );
$container = trim( $_POST['container'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );

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