RELEASE 0.9.2

This commit is contained in:
Deon George 2009-06-30 18:09:20 +10:00
parent 082c6b5fee
commit 92be67a1bf
88 changed files with 9889 additions and 2168 deletions

54
INSTALL
View File

@ -1,49 +1,21 @@
These instructions assume that you have a working install of: For install instructions in non-English languages, see the files
in the "doc" directory.
* Requirements
phpLDAPadmin requires the following:
a. A web server (Apache, IIS, etc). a. A web server (Apache, IIS, etc).
b. PHP (with LDAP support) b. PHP 4.1.0 or newer (with LDAP support)
* Installing phpLDAPadmin in 4 easy steps: * To install
1. Untar the archive (if you're reading this, you already did that). 1. Unpack the archive (if you're reading this, you already did that).
2. Put the resulting 'phpldapadmin' directory somewhere in your webroot. 2. Put the resulting 'phpldapadmin' directory somewhere in your webroot.
3. Copy 'config.php.example' to 'config.php' and edit to taste. 3. Copy 'config.php.example' to 'config.php' and edit to taste.
4. Then, point your browser to the phpldapadmin directory. 4. Then, point your browser to the phpldapadmin directory.
* Browser Notes * For help
phpLDAPadmin was developed on Mozilla, and will most likely run best thereon.
However, testing has been done on Internet Explorer, and it should work
well also. No testing has been done on either Konqueror (or any khtml-based
browser like Safari) or Opera. If you find a browser incompatibility,
please report it.
* Contributors (thank you!)
Project Developers:
- David Smith Maintainer
- Xavier Renard LDIF master
- Nate Rotschafer Release manager
Patch writers:
- 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
- Brandon Lederer DNS entry template
Nathan Rotschafer
- Steve Rigler Password hash patch
- Chric Jackson Blowfish and md5crypt passwords
- Marius Rieder Enhanced schema parser
- Nick Burch Many realpath() fixes
Translators:
- Uwe Ebel German
- Xavier Renard French
- Dave Smith English ;)
If you can help translate, please join the phpldapadmin-devel mailing list:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel
See the files in the "doc" directory.
Join our mailing list:
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel

View File

@ -1 +1 @@
0.9.1 0.9.2

View File

@ -36,10 +36,18 @@ $entry = get_object_attrs( $server_id, $dn, true );
$current_attrs = array(); $current_attrs = array();
foreach( $entry as $attr => $junk ) foreach( $entry as $attr => $junk )
$current_attrs[] = strtolower($attr); $current_attrs[] = strtolower($attr);
// grab the required attributes for the new objectClass // grab the required attributes for the new objectClass
$must_attrs = get_schema_objectclasses( $server_id ); $oclass = get_schema_objectclass( $server_id, $new_oclass );
$must_attrs = $must_attrs[ strtolower($new_oclass) ]['must_attrs']; if( $oclass )
sort( $must_attrs ); $must_attrs = $oclass->getMustAttrs();
else
$must_attrs = array();
// We don't want any of the attr meta-data, just the string
foreach( $must_attrs as $i => $attr )
$must_attrs[$i] = $attr->getName();
// build a list of the attributes that this new objectClass requires, // build a list of the attributes that this new objectClass requires,
// but that the object does not currently contain // but that the object does not currently contain
$needed_attrs = array(); $needed_attrs = array();
@ -54,7 +62,7 @@ if( count( $needed_attrs ) > 0 )
<h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3> <h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) . <h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new attributes']; ?></h3> ' ' . $lang['new_attributes']; ?></h3>
<small> <small>
<?php <?php

View File

@ -51,6 +51,6 @@ $add_result = @ldap_mod_add( $ds, $dn, $new_entry );
if( ! $add_result ) 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( $ds ), ldap_errno( $ds ) );
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&updated_attr=$encoded_attr" ); header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
?> ?>

View File

@ -12,8 +12,6 @@
*/ */
require 'common.php'; require 'common.php';
require 'config.php';
require_once 'functions.php';
$dn = $_GET['dn']; $dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
@ -43,9 +41,7 @@ if( $is_object_class ) {
$schema_attr = get_schema_attribute( $server_id, $attr ); $schema_attr = get_schema_attribute( $server_id, $attr );
} }
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
@ -96,12 +92,12 @@ if( $is_object_class ) {
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ { <?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
foreach( $current_values as $val ) { ?> foreach( $current_values as $val ) { ?>
<li><nobr><?php echo htmlspecialchars(utf8_decode($val)); ?></nobr></li> <li><nobr><?php echo htmlspecialchars(($val)); ?></nobr></li>
<?php } ?> <?php } ?>
<?php } else { ?> <?php } else { ?>
<li><nobr><?php echo htmlspecialchars(utf8_decode($current_values)); ?></nobr></li> <li><nobr><?php echo htmlspecialchars(($current_values)); ?></nobr></li>
<?php } ?> <?php } ?>
</ul> </ul>
@ -119,15 +115,21 @@ if( $is_object_class ) {
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<select name="new_oclass"> <select name="new_oclass">
<?php foreach( $schema_oclasses as $oclass => $desc ) { ?> <?php foreach( $schema_oclasses as $name => $oclass ) { ?>
<option value="<?php echo $desc['name']; ?>"><?php echo $desc['name']; ?></option> <option value="<?php echo $oclass->getName(); ?>"><?php echo $oclass->getName(); ?></option>
<?php } ?> <?php } ?>
</select> <input type="submit" value="Add new objectClass" /> </select> <input type="submit" value="Add new objectClass" />
<br /><small><?php echo $lang['new_required_attrs_note']; ?></small> <br />
<?php if( show_hints() ) { ?>
<small>
<br />
<img src="images/light.png" /><?php echo $lang['new_required_attrs_note']; ?>
</small>
<?php } ?>
<?php } else { ?> <?php } else { ?>
@ -141,15 +143,25 @@ if( $is_object_class ) {
<input type="file" name="new_value" /> <input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" /> <input type="hidden" name="binary" value="true" />
<?php } else { ?> <?php } else { ?>
<input type="text" name="new_value" size="40" value="" /> <input type="text" <?php
if( $schema_attr->getMaxLength() )
echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" ";
?>name="new_value" size="40" value="" />
<?php } ?> <?php } ?>
<input type="submit" name="submit" value="Add New Value" /> <input type="submit" name="submit" value="Add New Value" />
<br /> <br />
<small><?php echo $lang['syntax']; ?>: <?php echo $schema_attr->getType(); ?></small><br />
<?php if( $schema_attr->getDescription() ) { ?>
<small><b>Description:</b> <?php echo $schema_attr->getDescription(); ?></small><br />
<?php } ?>
<?php if( $schema_attr->getType() ) { ?>
<small><b><?php echo $lang['syntax']; ?>:</b> <?php echo $schema_attr->getType(); ?></small><br />
<?php } ?>
<?php if( $schema_attr->getMaxLength() ) { ?> <?php if( $schema_attr->getMaxLength() ) { ?>
<small>Max length: <?php echo number_format( $schema_attr->getMaxLength() ); ?> <small><b>Max length:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> characters</small><br />
characters</small>
<?php } ?> <?php } ?>
</form> </form>

41
check_lang_files.php Normal file
View File

@ -0,0 +1,41 @@
<?php
echo "<center><h1>Incomplete or Erroneous Language Files</h1></center>\n\n";
include realpath( 'lang/en.php' );
$english_lang = $lang;
unset( $lang );
$lang_dir = realpath( 'lang' );
$dir = opendir( $lang_dir );
while( ( $file = readdir( $dir ) ) !== false ) {
if( ! preg_match( "/\.php$/", $file ) )
continue;
if( $file == 'en.php' )
continue;
echo "<h2>$file</h2>";
echo "<ol>";
unset( $lang );
$lang = array();
include realpath( $lang_dir.'/'.$file );
$has_errors = false;
foreach( $english_lang as $key => $string )
if( ! isset( $lang[ $key ] ) ) {
$has_errors = true;
echo "<li>missing entry: <tt>$key</tt></li>";
}
foreach( $lang as $key => $string )
if( ! isset( $english_lang[ $key ] ) ){
$has_errors = true;
echo "<li>extra entry: <tt>$key</tt></li>";
}
if( ! $has_errors )
echo "(No errors)";
echo "</ol>";
}
?>

View File

@ -47,5 +47,5 @@ if(SID != ""){
$id_session_param = "&".session_name()."=".session_id(); $id_session_param = "&".session_name()."=".session_id();
} }
header( "Location:tree.php?foo=$random_junk%23{$server_id}_{$encoded_dn}$id_session_param" ); header( "Location:tree.php?foo=$random_junk#{$server_id}_{$encoded_dn}$id_session_param" );
?> ?>

View File

@ -6,23 +6,93 @@
* include this file at the top of every PHP file. * include this file at the top of every PHP file.
*/ */
// Turn on all notices and warnings. This helps us write cleaner code (we hope at least)
error_reporting( E_ALL );
// We require this version or newer (use @ to surpress errors if we are included twice)
@define( 'REQUIRED_PHP_VERSION', '4.1.0' );
// config.php might not exist (if the user hasn't configured PLA yet)
// Only include it if it does exist.
if( file_exists( realpath( 'config.php' ) ) ) { if( file_exists( realpath( 'config.php' ) ) ) {
is_readable( realpath( 'config.php' ) ) or pla_error( "Could not read config.php, its permissions are too strict." );
require realpath( 'config.php' ); require realpath( 'config.php' );
} }
// General functions (pla_ldap_search(), pla_error(), get_object_attrs(), etc.)
is_readable( realpath( 'functions.php' ) )
or pla_error( "Cannot read the file 'functions.php' its permissions are too strict." );
require_once realpath( 'functions.php' ); require_once realpath( 'functions.php' );
// Functions for reading the server schema (get_schema_object_classes(), etc.)
is_readable( realpath( 'schema_functions.php' ) )
or pla_error( "Cannot read the file 'schema_functions.php' its permissions are too strict." );
require_once realpath( 'schema_functions.php' ); require_once realpath( 'schema_functions.php' );
// grab the language file configured in config.php // Functions that can be defined by the user (preEntryDelete(), postEntryDelete(), etc.)
if( ! isset( $language ) ) is_readable( realpath( 'custom_functions.php' ) )
$language = 'english'; or pla_error( "Cannot read the file 'custom_functions.php' its permissions are too strict." );
if( file_exists( realpath( "lang/$language.php" ) ) ) require_once realpath( 'custom_functions.php' );
include realpath( "lang/$language.php" );
// Turn off notices about referencing arrays and such, but leave everything else on. // Our custom error handler receives all error notices that pass the error_reporting()
error_reporting( E_ALL ^ E_NOTICE ); // level set above.
set_error_handler( 'pla_error_handler' );
// Creates the language array which will be populated with localized strings
// based on the user-configured language.
$lang = array();
// Little bit of sanity checking
if( ! file_exists( realpath( 'lang/recoded' ) ) ) {
pla_error( "Your install of phpLDAPadmin is missing the 'lang/recoded' directory. This should not happen. You can try running 'make' in the lang directory" );
}
// use English as a base-line (in case the selected language is missing strings)
if( file_exists( realpath( 'lang/recoded/en.php' ) ) )
include realpath( 'lang/recoded/en.php' );
else
pla_error( "Error! Missing recoded English language file. Run 'make' in the lang/ directory." );
// Language configuration. Auto or specified?
// Shall we attempt to auto-determine the language?
if( isset( $language ) ) {
if( 0 == strcasecmp( $language, "auto" ) ) {
// get the languages which are spetcified in the HTTP header
$HTTP_LANGS1 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
$HTTP_LANGS2 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
foreach( $HTTP_LANGS2 as $key => $value ) {
$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
if( file_exists( realpath( "lang/recoded/$HTTP_LANG.php" ) ) &&
is_readable( realpath( "lang/recoded/$HTTP_LANG.php" ) ) ) {
include realpath( "lang/recoded/$HTTP_LANG.php" );
break;
}
}
} else {
// grab the language file configured in config.php
if( $language != null ) {
if( 0 == strcmp( $language, 'english' ) )
$language = 'en';
if( file_exists( realpath( "lang/recoded/$language.php" ) ) &&
is_readable( realpath( "lang/recoded/$language.php" ) ) ) {
include realpath( "lang/recoded/$language.php" );
} else {
pla_error( "Could not read language file 'lang/recoded/$language.php'. Either the file
does not exist, or permissions do not allow phpLDAPadmin to read it." );
}
}
}
}
// If config.php doesn't create the templates array, create it here.
if( ! isset( $templates ) || ! is_array( $templates ) ) if( ! isset( $templates ) || ! is_array( $templates ) )
$tempaltes = array(); $templates = array();
// Always including the 'custom' template (the most generic and flexible) // Always including the 'custom' template (the most generic and flexible)
$templates['custom'] = $templates['custom'] =
@ -44,9 +114,9 @@ if ( get_magic_quotes_gpc() && ( ! isset( $slashes_stripped ) || ! $slashes_stri
} }
} }
array_stripslashes($_POST);
array_stripslashes($_GET); array_stripslashes($_GET);
array_stripslashes($_COOKIES); array_stripslashes($_POST);
array_stripslashes($_COOKIE);
$slashes_stripped = true; $slashes_stripped = true;
} }

View File

@ -14,31 +14,58 @@
// Your LDAP servers // Your LDAP servers
$i=0; $i=0;
$servers = array(); $servers = array();
$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in the tree viewer */ $servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in
$servers[$i]['host'] = 'ldap.example.com'; /* Examples: 'ldap.example.com', 'ldaps://ldap.example.com/' the tree viewer */
Note: Leave blank to remove it from the list of servers in the $servers[$i]['host'] = 'ldap.example.com'; /* Examples: 'ldap.example.com',
tree viewer*/ 'ldaps://ldap.example.com/'
$servers[$i]['base'] = 'dc=example,dc=com';/* The base DN of your LDAP server. Leave this blank to have phpLDAPadmin Note: Leave blank to remove it from the list
of servers in the tree viewer*/
$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. */ auto-detect it for you. */
$servers[$i]['port'] = 389; /* The port your LDAP server listens on (no quotes) */ $servers[$i]['port'] = 389; /* The port your LDAP server listens on
$servers[$i]['auth_type'] = 'config'; /* 2 options: 'form': you will be prompted, and a cookie stored (no quotes) */
with your login dn and password. 'config': specify your login dn $servers[$i]['auth_type'] = 'config'; /* 2 options: 'form': you will be prompted, and
a cookie stored with your login dn and
password. 'config': specify your login dn
and password here. In both cases, use caution! */ and password here. In both cases, use caution! */
$servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com'; /* For anonymous binds, leave the login_dn and $servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com'; /* For anonymous binds, leave the
login_pass blank */ login_dn and login_pass blank */
$servers[$i]['login_pass'] = 'secret'; /* Your password (only if you specified 'config' for 'auth_type' */ $servers[$i]['login_pass'] = 'secret'; /* Your password (only if you specified 'config'
$servers[$i]['tls'] = false; /* Use TLS to connect. Requires PHP 4.2 or greater */ for 'auth_type' */
$servers[$i]['default_hash'] = 'crypt'; /* Default password hashing algorith: one of md5, sha, md5crpyt, blowfish or $servers[$i]['tls'] = false; /* Use TLS to connect. Requires PHP 4.2 or newer */
$servers[$i]['default_hash'] = 'crypt'; /* Default password hashing algorith;
One of md5, ssha, sha, md5crpyt, blowfish or
leave blank for now default algorithm. */ leave blank for now default algorithm. */
$servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as the auth_type above, you can optionally $servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as the auth_type above,
specify here an attribute to use when logging in. If you enter 'uid', you can optionally specify here an attribute
then login as 'dsmith', phpLDAPadmin will search for uid=dsmith and to use when logging in. If you enter 'uid',
log in as such. Leave blank or specify 'dn' to use full DN for logging in .*/ then login as 'dsmith', phpLDAPadmin will
$servers[$i]['read_only'] = false; /* Specify true If you want phpLDAPadmin to not display or permit any search for uid=dsmith and log in as such. Leave
modification to the LDAP server. */ blank or specify 'dn' to use full DN for
logging in .*/
$servers[$i]['read_only'] = false; /* Specify true If you want phpLDAPadmin to not
display or permit any modification to the
LDAP server. */
$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';
/* 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'
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';
/* The DN of the search base when the 'search'
mechanism is used above. */
$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. */
/* If you want to configure additional LDAP servers, do so below. */ // If you want to configure additional LDAP servers, do so below.
$i++; $i++;
$servers[$i]['name'] = 'Another server'; $servers[$i]['name'] = 'Another server';
$servers[$i]['host'] = ''; $servers[$i]['host'] = '';
@ -51,6 +78,10 @@ $servers[$i]['tls'] = false;
$servers[$i]['default_hash'] = 'crypt'; $servers[$i]['default_hash'] = 'crypt';
$servers[$i]['login_attr'] = ''; $servers[$i]['login_attr'] = '';
$servers[$i]['read_only'] = false; $servers[$i]['read_only'] = false;
$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_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
// If you want to configure more LDAP servers, copy and paste the above (including the "$i++;") // If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")
@ -63,10 +94,16 @@ $jpeg_temp_dir = "/tmp"; // Example for Unix systems
/** Appearance and Behavior **/ /** Appearance and Behavior **/
/** **/ /** **/
// The language setting. Right now, 'english', 'german' and 'french' are 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. // Localization is not complete yet, but most strings have been translated.
// Please help by writing language files. See lang/english.php for an example. // Please help by writing language files. See lang/en.php for an example.
$language = 'english'; $language = 'auto';
// Set to true if you want to draw a checkbox next to each entry in the tree viewer
// to be able to delete multiple entries at once
$enable_mass_delete = false;
// Set to true if you want LDAP data to be displayed read-only (without input fields) // Set to true if you want LDAP data to be displayed read-only (without input fields)
// when a user logs in to a server anonymously // when a user logs in to a server anonymously
@ -77,11 +114,17 @@ $anonymous_bind_implies_read_only = true;
$cookie_time = 0; // seconds $cookie_time = 0; // seconds
// How many pixels wide do you want your left frame view (for the tree browser) // How many pixels wide do you want your left frame view (for the tree browser)
$tree_width = 300; // pixels $tree_width = 320; // pixels
// How long to keep jpegPhoto temporary files in the jpeg_temp_dir directory (in seconds) // How long to keep jpegPhoto temporary files in the jpeg_temp_dir directory (in seconds)
$jpeg_tmp_keep_time = 120; // seconds $jpeg_tmp_keep_time = 120; // seconds
// Would you like to see helpful hint text occacsionally?
$show_hints = true; // set to false to disable hints
// When using the search page, limit result size to this many entries
$search_result_size_limit = 50;
/** **/ /** **/
/** Simple Search Form Config **/ /** Simple Search Form Config **/
/** **/ /** **/
@ -89,11 +132,11 @@ $jpeg_tmp_keep_time = 120; // seconds
// Which attributes to include in the drop-down menu of the simple search form (comma-separated) // 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 correlating // Change this to suit your needs for convenient searching. Be sure to change the correlating
// list below ($search_attributes_display) // list below ($search_attributes_display)
$search_attributes = "uid, cn, gidNumber, objectClass"; $search_attributes = "uid, cn, gidNumber, objectClass, telephoneNumber, mail, street";
// This list correlates to the list directly above. If you want to present more readable names // This list correlates to the list directly above. If you want to present more readable names
// for your search attributes, do so here. Both lists must have the same number of entries. // 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, objectClass"; $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 summary // The list of attributes to display in each search result entry summary
$search_result_attributes = "dn, cn"; $search_result_attributes = "dn, cn";
@ -144,12 +187,6 @@ $templates[] =
'icon' => 'images/dc.png', 'icon' => 'images/dc.png',
'handler' => 'new_dns_entry.php' ); 'handler' => 'new_dns_entry.php' );
$templates[] =
array( 'desc' => 'Posix Group',
'icon' => 'images/ou.png',
'handler' => 'new_posix_group_template.php' );
/** **/ /** **/
/** User-friendly attribute translation **/ /** User-friendly attribute translation **/
/** **/ /** **/

View File

@ -10,47 +10,49 @@
* - server_id * - server_id
*/ */
require 'common.php'; require realpath( 'common.php' );
session_start(); session_start();
$source_dn = rawurldecode( $_POST['old_dn'] ); $source_dn = $_POST['old_dn'];
$dest_dn = utf8_encode( $_POST['new_dn'] ); $dest_dn = $_POST['new_dn'];
$encoded_dn = rawurlencode( $old_dn ); $encoded_dn = rawurlencode( $source_dn );
$source_server_id = $_POST['server_id']; $source_server_id = $_POST['server_id'];
$dest_server_id = $_POST['dest_server_id']; $dest_server_id = $_POST['dest_server_id'];
$do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false; $do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false;
if( is_server_read_only( $dest_server_id ) ) if( is_server_read_only( $dest_server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['copy_server_read_only'] );
check_server_id( $source_server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $source_server_id ) ); check_server_id( $source_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $source_server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $source_server_id ) or pla_error( $lang['not_enough_login_info'] );
check_server_id( $dest_server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $dest_server_id ) ); check_server_id( $dest_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $dest_server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $dest_server_id ) or pla_error( $lang['not_enough_login_info'] );
include 'header.php'; include 'header.php';
/* Error checking */ /* Error checking */
if( 0 == strlen( trim( $dest_dn ) ) ) if( 0 == strlen( trim( $dest_dn ) ) )
pla_error( "You left the destination DN blank." ); pla_error( $lang['copy_dest_dn_blank'] );
if( dn_exists( $dest_server_id, $dest_dn ) )
if( strcasecmp( $source_dn,$dest_dn ) == 0 && $source_server_id == $dest_server_id ) pla_error( sprintf( $lang['copy_dest_already_exists'], $dest_dn ) );
pla_error( "The source and destination DN are the same." ); if( ! dn_exists( $dest_server_id, get_container( $dest_dn ) ) )
pla_error( sprintf( $lang['copy_dest_container_does_not_exist'], get_container($dest_dn) ) );
if( pla_compare_dns( $source_dn,$dest_dn ) == 0 && $source_server_id == $dest_server_id )
pla_error( $lang['copy_source_dest_dn_same'] );
if( $do_recursive ) { if( $do_recursive ) {
// build a tree similar to that of the tree browser to give to r_copy_dn // build a tree similar to that of the tree browser to give to r_copy_dn
$snapshot_tree = array(); $snapshot_tree = array();
include 'header.php';
echo "<body>\n"; echo "<body>\n";
echo "<h3 class=\"title\">Copying " . htmlspecialchars( $source_dn ) . "</h3>\n"; echo "<h3 class=\"title\">". $lang['copy_copying'] . htmlspecialchars( $source_dn ) . "</h3>\n";
echo "<h3 class=\"subtitle\">Recursive copy progress</h3>\n"; echo "<h3 class=\"subtitle\">" . $lang['copy_recursive_copy_progress'] ."</h3>\n";
echo "<br /><br />"; echo "<br /><br />";
echo "<small>\n"; echo "<small>\n";
echo "Building snapshot of tree to copy... "; echo $lang['copy_building_snapshot'];
flush(); flush();
build_tree( $source_server_id, $source_dn, $snapshot_tree ); build_tree( $source_server_id, $source_dn, $snapshot_tree );
echo " <span style=\"color:green\">Success</span><br />\n"; echo " <span style=\"color:green\">" . $lang['success'] . "</span><br />\n";
flush(); flush();
// prevent script from bailing early on a long delete // prevent script from bailing early on a long delete
@ -89,7 +91,9 @@ if( $copy_result )
parent.left_frame.location.reload(); parent.left_frame.location.reload();
</script> </script>
<br /> <br />
Copy successful! Would you like to <a href="<?php echo $edit_url; ?>">view the new entry</a>? <center>
<?php echo $lang['copy_successful_like_to']. "<a href=\"$edit_url\">" . $lang['copy_view_new_entry'] ."</a>?"?>
</center>
<br /> <br />
<br /> <br />
<br /> <br />
@ -103,21 +107,21 @@ else
exit; exit;
} }
function r_copy_dn( $source_server_id, $dest_server_id, &$tree, $root_dn, $dest_dn ) function r_copy_dn( $source_server_id, $dest_server_id, $tree, $root_dn, $dest_dn )
{ {
echo "<nobr>Copying " . htmlspecialchars( $root_dn ) . "..."; global $lang;
echo "<nobr>". $lang['copy_copying'] . htmlspecialchars( $root_dn ) . "...";
flush(); flush();
$copy_result = copy_dn( $source_server_id, $root_dn, $dest_server_id, $dest_dn ); $copy_result = copy_dn( $source_server_id, $root_dn, $dest_server_id, $dest_dn );
if( ! $copy_result ) { if( ! $copy_result ) {
global $R_COPY_ERROR;
return false; return false;
} }
echo "<span style=\"color:green\">Success</span></nobr><br />\n"; echo "<span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
flush(); flush();
$children = $tree[ $root_dn ]; $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 ) { foreach( $children as $child_dn ) {
@ -136,8 +140,8 @@ function r_copy_dn( $source_server_id, $dest_server_id, &$tree, $root_dn, $dest_
function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn ) function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
{ {
global $ds; global $ds, $lang;
$ds = pla_ldap_connect( $dest_server_id ) or pla_error( "Could not connect to LDAP server" ); $ds = pla_ldap_connect( $dest_server_id ) or pla_error( $lang['could_not_connect'] );
$attrs = get_object_attrs( $source_server_id, $source_dn ); $attrs = get_object_attrs( $source_server_id, $source_dn );
$new_entry = $attrs; $new_entry = $attrs;
// modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value. // modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value.
@ -147,14 +151,20 @@ function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
$new_entry[ $rdn_attr ] = $rdn_value; $new_entry[ $rdn_attr ] = $rdn_value;
// don't need a dn attribute in the new entry // don't need a dn attribute in the new entry
unset( $new_entry['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 ); $add_result = @ldap_add( $ds, $dest_dn, $new_entry );
if( ! $add_result ) { if( ! $add_result ) {
postEntryCreate( $dest_server_id, $dest_dn, $new_entry );
echo "</small><br /><br />"; echo "</small><br /><br />";
pla_error( "Failed to copy $source_dn (server: $source_server_id) to " . pla_error( $lang['copy_failed'] . $dest_dn, ldap_error( $ds ), ldap_errno( $ds ) );
"$dest_dn (server: $dest_server_id)", ldap_error( $ds ), ldap_errno( $ds ) );
} }
return $add_result; return $add_result;
} else {
return false;
}
} }
function build_tree( $source_server_id, $root_dn, &$tree ) function build_tree( $source_server_id, $root_dn, &$tree )

View File

@ -10,7 +10,7 @@
require 'common.php'; require 'common.php';
$dn = rawurldecode( $_GET['dn'] ); $dn = $_GET['dn'] ;
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id']; $server_id = $_GET['server_id'];
$rdn = pla_explode_dn( $dn ); $rdn = pla_explode_dn( $dn );
@ -19,8 +19,8 @@ for( $i=2; $i<count($rdn)-1; $i++ )
$container .= ',' . $rdn[$i]; $container .= ',' . $rdn[$i];
$rdn = $rdn[0]; $rdn = $rdn[0];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$attrs = get_object_attrs( $server_id, $dn ); $attrs = get_object_attrs( $server_id, $dn );
$server_name = $servers[$server_id]['name']; $server_name = $servers[$server_id]['name'];
@ -36,41 +36,43 @@ foreach( $servers as $id => $server )
$children = get_container_contents( $server_id, $dn ); $children = get_container_contents( $server_id, $dn );
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
<h3 class="title">Copy <?php echo utf8_decode( $rdn ); ?></h3> <h3 class="title"><?php echo $lang['copyf_title_copy'] . $rdn; ?></h3>
<h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; Distinguished Name: <b><?php echo $dn; ?></b></h3> <h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
<center> <center>
Copy <b><?php echo htmlspecialchars( utf8_decode( $rdn )); ?></b> to a new object:<br /> <?php echo $lang['copyf_title_copy'] ?><b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['copyf_to_new_object']?>:<br />
<br /> <br />
<form action="copy.php" method="post" name="copy_form"> <form action="copy.php" method="post" name="copy_form">
<input type="hidden" name="old_dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="old_dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<table> <table>
<tr> <tr>
<td>Destination DN:</td> <td><acronym title="<?php echo $lang['copyf_dest_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']?></acronym>:</td>
<td> <td>
<input type="text" name="new_dn" size="45" value="<?php echo htmlspecialchars( utf8_decode( $dn ) ); ?>" /> <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' ); ?></td>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Destination Server:</td> <td><?php echo $lang['copyf_dest_server']?>:</td>
<td><select name="dest_server_id"><?php echo $select_server_html; ?></select></td> <td><select name="dest_server_id"><?php echo $select_server_html; ?></select></td>
</tr> </tr>
<?php if( show_hints() ) {?>
<tr> <tr>
<td colspan="2"><small>Note: Copying between different servers only works if there are no schema violations</small></td> <td colspan="2"><small><img src="images/light.png" /><?php echo $lang['copyf_note']?></small></td>
</tr> </tr>
<?php } ?>
<?php if( is_array( $children ) && count( $children ) > 0 ) { ?> <?php if( is_array( $children ) && count( $children ) > 0 ) { ?>
<tr> <tr>
<td colspan="2"><input type="checkbox" name="recursive" /> <td colspan="2"><input type="checkbox" name="recursive" />
Recursively copy all children of this object as well.</td> <?php echo $lang['copyf_recursive_copy']?></td>
</tr> </tr>
<?php } ?> <?php } ?>

View File

@ -14,10 +14,9 @@
* - server_id * - server_id
*/ */
require 'common.php'; require realpath( 'common.php' );
$new_dn = $_POST['new_dn']; $new_dn = isset( $_POST['new_dn'] ) ? $_POST['new_dn'] : null;
//$new_dn = utf8_encode( $new_dn );
$encoded_dn = rawurlencode( $new_dn ); $encoded_dn = rawurlencode( $new_dn );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$vals = $_POST['vals']; $vals = $_POST['vals'];
@ -27,35 +26,28 @@ $object_classes = unserialize( rawurldecode( $_POST['object_classes'] ) );
$container = get_container( $new_dn ); $container = get_container( $new_dn );
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// build the new entry // build the new entry
$new_entry = array(); $new_entry = array();
if( isset( $required_attrs ) && is_array( $required_attrs ) ) if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
{ foreach( $required_attrs as $attr => $val ) {
foreach( $required_attrs as $attr => $val )
{
if( $val == '' ) if( $val == '' )
pla_error( "Error, you left the value for required attribute <b>" . pla_error( sprintf( $lang['create_required_attribute'], htmlspecialchars( $attr ) ) );
htmlspecialchars( $attr ) . "</b> blank." );
$new_entry[ $attr ][] = utf8_encode( $val ); $new_entry[ $attr ][] = utf8_encode( $val );
} }
} }
if( isset( $vals ) && is_array( $vals ) ) if( isset( $vals ) && is_array( $vals ) ) {
{ foreach( $vals as $i => $val ) {
foreach( $vals as $i => $val )
{
$attr = $attrs[$i]; $attr = $attrs[$i];
if( is_attr_binary( $server_id, $attr ) ) { if( is_attr_binary( $server_id, $attr ) ) {
if( $_FILES['vals']['name'][$i] != '' ) { if( $_FILES['vals']['name'][$i] != '' ) {
// read in the data from the file // read in the data from the file
$file = $_FILES['vals']['tmp_name'][$i]; $file = $_FILES['vals']['tmp_name'][$i];
//echo "Reading in file $file...\n";
$f = fopen( $file, 'r' ); $f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) ); $binary_data = fread( $f, filesize( $file ) );
fclose( $f ); fclose( $f );
@ -75,6 +67,7 @@ if( ! in_array( 'top', $new_entry['objectClass'] ) )
// UTF-8 magic. Must decode the values that have been passed to us // UTF-8 magic. Must decode the values that have been passed to us
foreach( $new_entry as $attr => $vals ) foreach( $new_entry as $attr => $vals )
if( ! is_attr_binary( $server_id, $attr ) )
if( is_array( $vals ) ) if( is_array( $vals ) )
foreach( $vals as $i => $v ) foreach( $vals as $i => $v )
$new_entry[ $attr ][ $i ] = utf8_decode( $v ); $new_entry[ $attr ][ $i ] = utf8_decode( $v );
@ -84,9 +77,15 @@ foreach( $new_entry as $attr => $vals )
//echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>"; //echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>";
$ds = pla_ldap_connect( $server_id ); $ds = pla_ldap_connect( $server_id );
$add_result = @ldap_add( $ds, $new_dn, $new_entry );
// 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 ) if( $add_result )
{ {
postEntryCreate( $server_id, $new_dn, $new_entry );
$edit_url="edit.php?server_id=$server_id&dn=" . rawurlencode( $new_dn ); $edit_url="edit.php?server_id=$server_id&dn=" . rawurlencode( $new_dn );
// update the session tree to reflect the change // update the session tree to reflect the change
@ -123,14 +122,14 @@ if( $add_result )
<meta http-equiv="refresh" content="0; url=<?php echo $edit_url; ?>" /> <meta http-equiv="refresh" content="0; url=<?php echo $edit_url; ?>" />
</head> </head>
<body> <body>
Redirecting... <a href="<?php echo $edit_url; ?>">here</a>. <?php echo $lang['create_redirecting'] ?>... <a href="<?php echo $edit_url; ?>"><?php echo $lang['create_here']?></a>.
</body> </body>
</html> </html>
<?php <?php
} }
else else
{ {
pla_error( "Could not add the object to the LDAP server.", ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( $lang['create_could_not_add'], ldap_error( $ds ), ldap_errno( $ds ) );
} }
?> ?>

View File

@ -17,10 +17,10 @@ $step = isset( $_REQUEST['step'] ) ? $_REQUEST['step'] : 1; // defaults to 1
$container = $_REQUEST['container']; $container = $_REQUEST['container'];
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$server_name = $servers[$server_id]['name']; $server_name = $servers[$server_id]['name'];
// build the server drop-down html // build the server drop-down html
@ -34,15 +34,13 @@ foreach( $servers as $id => $server ) {
} }
$server_menu_html .= '</select>'; $server_menu_html .= '</select>';
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
<h3 class="title">Create Object</h3> <h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle">Choose a template</h3> <h3 class="subtitle"><?php echo $lang['createf_choose_temp']?></h3>
<center><h3>Select a template for the creation process</h3></center> <center><h3><?php echo $lang['createf_select_temp']?></h3></center>
<form action="creation_template.php" method="post"> <form action="creation_template.php" method="post">
<input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" /> <input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" />
<table class="create"> <table class="create">
@ -72,7 +70,7 @@ $server_menu_html .= '</select>';
</tr> </tr>
<tr> <tr>
<td colspan="2"><center><input type="submit" name="submit" value="Proceed &gt;&gt;" /></center></td> <td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['createf_proceed']?> &gt;&gt;" /></center></td>
</tr> </tr>
</table> </table>

View File

@ -15,33 +15,33 @@ require 'common.php';
$template = $_POST['template']; $template = $_POST['template'];
$template = $templates[$template]; $template = $templates[$template];
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$server_name = $servers[ $server_id ][ 'name' ]; $server_name = $servers[ $server_id ][ 'name' ];
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['no_updates_in_read_only_mode'] );
include 'header.php'; include 'header.php';
?> ?>
<body> <body>
<h3 class="title">Create Object</h3> <h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle">On server '<?php echo htmlspecialchars( $server_name ); ?>', <h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars( $server_name ); ?>',
using template '<?php echo htmlspecialchars( $template['desc'] ); ?>'</h3> using template '<?php echo htmlspecialchars( $template['desc'] ); ?>'</h3>
<?php <?php
if( ! isset( $_POST['template'] ) ) if( ! isset( $_POST['template'] ) )
pla_error( "No template specified in POST variables.\n" ); pla_error( $lang['ctemplate_no_template'] );
$handler = 'templates/creation/' . $template['handler']; $handler = 'templates/creation/' . $template['handler'];
$handler = realpath( $handler ); $handler = realpath( $handler );
if( file_exists( $handler ) ) if( file_exists( $handler ) )
include $handler; include $handler;
else else
pla_error( "Your config specifies a handler of <b>" . htmlspecialchars( $template['handler'] ) . pla_error( $lang['ctemplate_config_handler'] . " <b>" . htmlspecialchars( $template['handler'] ) .
"</b> for this template. But, this handler does not exist in the 'templates/creation' directory." ); "</b> " . $lang['ctemplate_handler_does_not_exist']);

162
custom_functions.php Normal file
View File

@ -0,0 +1,162 @@
<?php
/*
* custom_functions.php: Choose your own adventure.
*
* This file is full of functions (callbacks really) that are
* meant to be filled in by users of phpLDAPadmin (you). These functions
* are called as the result of a phpLDAPadmin event, like adding
* a new entry, deleting an entry, changing an attribute value, etc.
* Consider this concept an attempt to provide something like SQL
* triggers for LDAP users.
*
* This can be very handy, for example, for system administrators
* who want to execute custom code after a user is created or deleted.
*
* These functions generally have 2 parameters, $server_id and $dn:
*
* 1. $server_id.
* The $server_id can be used to connect to the server using
* pla_ldap_connect( $server_id ) to fetch additional information about
* the entry being deleted. It can also be used to call
* get_object_attrs( $server_id, $dn ) to fetch the entry's attributes.
*
* 2. $dn
* The dn is provided so users can determine where in the LDAP tree
* this entry resides and act accordingly. For example, if the DN
* contains "ou=development", you may want to act differently than
* if it contains "ou=accounting".
*
* Types of callback functions:
*
* These callbacks generally fall into two categories: "pre" and "post",
* "pre" callbacks run before an event has occurred and their return
* value (true or false) is used to decide whether to allow the event
* to proceed. "post" callbacks run after an event has occurred and
* their return value (void) is ignored.
*
* NOTE: These custom callbacks are NOT executed for LDIF imports.
*
* ALSO NOTE: These callbacks are responsible for printing out error
* messages. The calling code will die silently without notifying
* the user why. YOU are responsible for creating output here.
*
* TODO: This section outlines events that phpLDAPadmin does not yet
* support. This list includes:
* - ldap_mod_add (ie, adding a new value to a multi-valued attribute)
* - ldap_mod_del (ie, deleting a value from a multi-valued attribute
* or deleting an attribute from an entry)
* - ldap_rename (ie, renaming an entry's RDN)
*
* DONE: This section lists events that phpLDAPadmin *does* support.
* This list includes:
* - ldap_add (ie, creating new entries)
* - ldap_delete (ie, removing entries)
* - ldap_modify (ie, changing the value of an attribute, for both
* multi- and single-valued attributes)
*/
/*
* This function is executed before modifying an entry's
* attribute. Unlike preAttrModify, this function's
* return value is ignored. In addition to the standard
* $server_id and $dn paramaters, 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.
*/
function postAttrModify( $server_id, $dn, $attr_name, $new_value )
{
// Fill me in
//
// A very simple (and lame) example:
// if( 0 == strcasecmp( $attr_name, "userPassword" ) ) {
// mail( "user@example.com", "Password change notification",
// "User '$dn' has changed their password." );
// }
}
/*
* This function is executed before modifying an entry's
* attribute. If it returns true, the entry is modified.
* If it returns false, the entry is not modified.
* In addition to the standard $server_id and $dn params,
* 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.
*/
function preAttrModify( $server_id, $dn, $attr_name, $new_value )
{
// Fill me in
return true;
}
/*
* This function is executed after an entry is created.
* Unlike preEntryCreate(), this function's return
* value is ignored. This is very handy for executing
* custom code after creating a user account. For example,
* one may wish to create the user's home directory.
* See the documentation for preEntryCreate() below for
* the description of the $attrs parameter.
*/
function postEntryCreate( $server_id, $dn, $attrs )
{
// Fill me in
//
// A very simple example:
// if( preg_match( "/^uid=(\w+),/", $dn, $user_name ) ) {
// $user_name = $user_name[1];
// mkdir( "/home/$user_name" );
// } else {
// // not a user account
// }
}
/*
* This function is executed before an entry is created.
* If it returns true, the entry is created, if false is
* returned, the entry is not created. This function has
* the additional parameters, $attrs, which is an assoc-
* iative array of attribute/vale pairs of the same form
* expected by ldap_add(), example:
*
* Array (
* [objectClass] => Array (
* [0] => top
* [1] => person
* [2] => inetOrgPerson
* )
* [cn] => John
* [sn] => Doe
* ...
* )
*
*/
function preEntryCreate( $server_id, $dn, $attrs )
{
// Fill me in
return true;
}
/*
* 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.
*/
function preEntryDelete( $server_id, $dn )
{
// Fill me in
return true;
}
/*
* This function is executed after an entry is deleted.
* Unlike preEntryDelete(), this function's return
* value is ignored.
*/
function postEntryDelete( $server_id, $dn )
{
// Fill me in
}

View File

@ -9,26 +9,35 @@
* - server_id * - server_id
*/ */
require 'common.php'; require realpath( 'common.php' );
$encoded_dn = $_POST['dn']; $dn = $_POST['dn'];
$dn = rawurldecode( $encoded_dn ); $encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
if( $dn === null ) if( $dn === null )
pla_error( "You must specify a DN." ); pla_error( $lang['you_must_specify_a_dn'] );
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server" ); $ds = pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
$del_result = @ldap_delete( $ds, $dn );
// Check the user-defined custom callback first.
if( true === preEntryDelete( $server_id, $dn ) ) {
$del_result = @ldap_delete( $ds, $dn );
} else {
exit;
}
if( $del_result ) if( $del_result )
{ {
// Custom callback
postEntryDelete( $server_id, $dn );
// kill the DN from the tree browser session variable and // kill the DN from the tree browser session variable and
// refresh the tree viewer frame (left_frame) // refresh the tree viewer frame (left_frame)
@ -46,10 +55,11 @@ if( $del_result )
foreach( $subtree as $key => $sub_tree_dn ) 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] ); unset( $tree[$server_id][$tree_dn][$key] );
}
$_SESSION['tree'] = $tree; $_SESSION['tree'] = $tree;
session_write_close(); session_write_close();
}
include 'header.php';
?> ?>
@ -57,11 +67,15 @@ if( $del_result )
parent.left_frame.location.reload(); parent.left_frame.location.reload();
</script> </script>
Object deleted successfully. <br />
<br />
<center><?php echo sprintf( $lang['entry_deleted_successfully'], $dn ); ?></center>
<?php <?php
} else { } else {
pla_error( "Could not delete the object: " . htmlspecialchars( utf8_decode( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( sprintf( $lang['could_not_delete_entry'], htmlspecialchars( utf8_decode( $dn ) ) ),
ldap_error( $ds ),
ldap_errno( $ds ) );
} }

View File

@ -10,15 +10,15 @@
require 'common.php'; require 'common.php';
if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$dn = rawurldecode( $_POST['dn'] );
$dn = $_POST['dn'] ;
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$attr = $_POST['attr']; $attr = $_POST['attr'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
if( ! $attr ) pla_error( "No attribute name specified in POST variables" ); if( ! $attr ) pla_error( "No attribute name specified in POST variables" );
if( ! $dn ) pla_error( "No DN name specified in POST variables" ); if( ! $dn ) pla_error( "No DN name specified in POST variables" );

View File

@ -27,13 +27,12 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
$children = get_container_contents( $server_id, $dn ); $children = get_container_contents( $server_id, $dn );
$has_children = count($children)>0 ? true : false; $has_children = count($children)>0 ? true : false;
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
<h3 class="title">Delete <b><?php echo htmlspecialchars( utf8_decode( $rdn ) ); ?></b></h3> <h3 class="title">Delete <b><?php echo htmlspecialchars( ( $rdn ) ); ?></b></h3>
<h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; Distinguished Name: <b><?php echo htmlspecialchars( utf8_decode( $dn ) ); ?></b></h3> <h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; Distinguished Name: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php if( 0 == strcasecmp( $dn, $servers[$server_id]['base'] ) ) { ?> <?php if( 0 == strcasecmp( $dn, $servers[$server_id]['base'] ) ) { ?>
@ -75,7 +74,7 @@ Take into consideration aliases and other such things that may cause problems.</
<td> <td>
<center> <center>
<form action="rdelete.php" method="post"> <form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" class="scary" value="Delete all <?php echo ($sub_tree_count); ?> objects" /> <input type="submit" class="scary" value="Delete all <?php echo ($sub_tree_count); ?> objects" />
</form> </form>
@ -84,7 +83,7 @@ Take into consideration aliases and other such things that may cause problems.</
<td> <td>
<center> <center>
<form action="edit.php" method="get"> <form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="Cancel" class="cancel" /> <input type="submit" name="submit" value="Cancel" class="cancel" />
</form> </form>
@ -102,7 +101,7 @@ A list of all the <?php echo ($sub_tree_count); ?> <acronym title="Distinguished
<?php $i=0; ?> <?php $i=0; ?>
<?php foreach( $s as $dn => $junk ) { ?> <?php foreach( $s as $dn => $junk ) { ?>
<?php $i++; ?> <?php $i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( utf8_decode( $dn ) ); ?></option> <option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?> <?php } ?>
</select> </select>
@ -118,7 +117,7 @@ A list of all the <?php echo ($sub_tree_count); ?> <acronym title="Distinguished
Are you sure you want to permanently delete this object?<br /> Are you sure you want to permanently delete this object?<br />
<br /> <br />
<nobr><acronym title="Distinguished Name">DN</acronym>: <b><?php echo htmlspecialchars(utf8_decode($dn)); ?></b><nobr><br /> <nobr><acronym title="Distinguished Name">DN</acronym>: <b><?php echo htmlspecialchars(($dn)); ?></b><nobr><br />
<nobr>Server: <b><?php echo htmlspecialchars($server_name); ?></b></nobr><br /> <nobr>Server: <b><?php echo htmlspecialchars($server_name); ?></b></nobr><br />
<br /> <br />
<table width="100%"> <table width="100%">
@ -126,7 +125,7 @@ Are you sure you want to permanently delete this object?<br />
<td> <td>
<center> <center>
<form action="delete.php" method="post"> <form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="Delete It" class="scary" /> <input type="submit" name="submit" value="Delete It" class="scary" />
</center> </center>
@ -136,7 +135,7 @@ Are you sure you want to permanently delete this object?<br />
<td> <td>
<center> <center>
<form action="edit.php" method="get"> <form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" /> <input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="Cancel" class="cancel" /> <input type="submit" name="submit" value="Cancel" class="cancel" />
</form> </form>

38
doc/CREDITS Normal file
View File

@ -0,0 +1,38 @@
---------------------------
phpLDAPadmin - Contributors
---------------------------
* Project Developers:
- David Smith Maintainer
- Xavier Renard LDIF master
- Marius Rieder Schema master
- Nate Rotschafer Release manager
* Patch writers:
- 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
- Brandon Lederer DNS entry template
Nathan Rotschafer
- Steve Rigler Password hash patch
- Chris Jackson Blowfish and md5crypt passwords
- Marius Rieder Enhanced schema parser
- Nick Burch Many realpath() fixes
* Translators:
- Uwe Ebel & Marius Reider German
- Xavier Renard French
- Dave Smith English ;)
- Richard Lucassen Dutch
- Andreu Sanchez Spanish and Català
- Dmitry Gorpinenko Russian
- Unknown Italian
If you can help translate, please join the phpldapadmin-devel mailing list:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

107
doc/ChangeLog Normal file
View File

@ -0,0 +1,107 @@
------------------------
phpLDAPadmin - ChangeLog
------------------------
* Version 0.9.2, 2003-11-14
* Notes:
This release has undergone major code hardening as we've subjected it to
the most stringent standard of PHP error reporting. The result is
fewer unhandled errors, improved usability, and better performance.
We've given more attention to internationalization as well,
and that effort is nearly 80% complete. Translators and coders are still
needed to help complete the localization effort. We've added a whole new
custom callback infrastructure that is event driven. Users can write their
own custom code to be executed as the result of LDAP events. Events include
entry creation, entry deletion, and entry modification. Users can define
custom code to execute automatically before and after each of these events.
See "custom_functions.php" for details and documentation. Lots of other new
features and bug fixes are outlined in the ChangeLog. phpLDAPadmin finally
has a roadmap included with each release. Find it in the file called "ROADMAP"
in the root of the install. This roadmap will be constantly updated to
list our goals for each release. Enjoy 0.9.2! As always, your feedback
is most welcome on the development mailing list and on the SourceForge
bug tracker.
* Changes:
- Localization work continues. About 80% complete.
- New languages: Ialian, German, Catala
- Fixed major encoding bugs. All pages are now true UTF-8 encoded
- Support for auto-determining user's language based on the browser
- Custom event callbacks infrastructure (see custom_functions.php). Users can now
define custom code to execute as a result of LDAP events (ie, new entries,
modifications, etc).
- Major code cleanup. Removed all E_NOTICE messages and enabled E_ALL error_reporting.
- Added support for smd5 and ssha passwords
- Added configurable hints throughout the application
- Added template-based entry editing. The infrastructure is now in place to use custom
templates for editing LDAP entries. No templates are being shipped with 0.9.2, but
they are on the way for 0.9.3.
- Added photo display support for non-jpegPhoto photo attributes.
- Added mass deletion. If enabled in the configuration, users can mass-delete multiple
entries from the tree browser with checkboxes.
- Much improved schema retrieval code. Now PLA uses the Root DSE (or any relevant DN)
to fetch the schema based on the RFC-complian subSchemaSubEntry value.
- Added support for viewing schema for attributes with ";" in their names (like
userCertificate;binary or sn;lang-fr)
- Schema code is 100% object oriented.
- Enhanced search code can handle large searches without running out of memory.
- Fixed minor XSS vulnerabilities in several creation templates.
- Enhanced the server information viewer to actively retrieve attributes that the server
may not give voluntarily.
- Made the tree viewer more intelligent for failed binds.
- Added better caching of the base DN for the tree viewer, which speeds up page loads
considerably with multiple servers all configured to auto-determine the base DN.
- Added intelligence around password updates on the currently logged-in user entry.
* Version 0.9.1, 2003-09-24
* Notes:
We fixed a mountain of bugs for this release and implemented the
most popular feature requests. The result is a much more robust LDAP
management tool that supports a wider range of harsh environments and spoken
languages. This release was over a month in the making and it shows. We've
had great feed back from users. Special thanks to Nick Burch, Xavier
Renard, Uwe Ebel, Schuller Tom, and Marius Reider for their code
contributions. Thanks to everyone who contributed code and bug reports!
* Changes:
- Preliminary support for LDIF imports.
- Binary attribute support for viewing, deleting, and adding.
- Users can specify attributes to hide while editing entries.
- Schema browser now displays which objectClasses each attribute is used in.
- Preliminary multi-language support (some localization, infrastructure in place).
- New template for creating posixGroup entries.
- Optional read-only mode of operation.
- Error dialog beautified.
- Localization effort begun, now available in German and French.
- New samba user template.
* Bugs fixed:
- I18n support was made more robust (UTF-8 problems fixed in *many* places).
- Improved LDIF exports with better LDIF comments and cleaner IE support.
- Cleaned up code in edit.php.
- After updates, modified attribute(s) now highlighted properly.
- Many realpath() fixes to allow symlink installs with multiple configs.
- Simple search form 'Starts with' '*' searches produced PHP error.
- Entry creation now adds the new entry to the tree browser in sorted order.
- Complete re-work of schema browser, much more efficient parser.
- Began effort to remove all E_NOTICE notices.
* Version 0.9.0, 2003-08-12
* Notes:
This is the first release of phpLDAPAdmin. It should be stable enough and
ready for use on your production LDAP servers. This is still a beta release
and the paranoid may want to wait. phpLDAPAdmin is based on an improved
version of DaveDAP 0.8.4.
* Changes:
phpLDAPAdmin was DaveDAP. Changes since DaveDAP 0.8.4 include:
- Better LDAP compliance when copying entries.
- Fixed boolean attribute support.
- jpegPhoto scaling when necessary.
- More robust schema browser.
- Added internal attributes support.
- Slightly improved look and feel.

61
doc/INSTALL-de.txt Normal file
View File

@ -0,0 +1,61 @@
Die Installationsanweisung geht davon aus das:
a) Ein Webserver (Apache, IIS, etc.)
b) PHP 4.1.0 oder neuer (mit LDAP-Support)
installiert und funktioniert
* Installation von phpLDAPadmin in vier einfachen Schritten:
1. Entpacken des Archives (wenn man diesen Text lesen kann,
dann ist das schon geschechen)
2. Das entpackte Verzeichnis phpldapadmin sollte vom webroot
aus erreicht werden
3. Kopieren der 'config.php.example' nach 'config.php'
und anpassen.
4. Mit einem Browser auf das phpldapadmin-Verzeichnis zugreifen
(wenn Sie das Verzeichnis sehen, dann bitte noch ein index.php
anhaengen)
* Browser Hinweise
phpLDAPadmin wird unter Mozilla entwickelt und sollte auch am
Besten darunter laufen. Andere Browser (bspw. Internet Explorer)
sollten ebenfalls funktionieren.
Keine Tests wurden mit dem Konqueror (oder jeder andere khtml-basierende
Browser wie Safari) oder Opera vorgenommen. Falls es zu Browser
Inkompatibilitaet kommen sollten, dann bitte einen Fehlerreport senden.
* Lizenz
Die Verwendete Lizenz ist in der Datei LICENCE zu finden
* Mitwirkende:
Projektentwickler:
Bitte in der Datei INSTALL unter 'Project Developers:' nachsehen
Patches:
Bitte in der Datei INSTALL unter 'Patch writers:' nachsehen
Uebersetzungen:
Bitte in der Datei INSTALL unter 'Translators:' nachsehen
Wer in der Uebersetzung helfen moechte sollte an der Mailingliste
phpldapadmin-devel teilnehmen.
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel
* Hinweise zur Konfiguration von config.php
Wer eine Benuetzerfuehrung auf deutsch haben moechte sollte in der
config.php die Zeile
$language = 'en';
mit
$language = 'de';
abaendern. Andere Sprachen sieht man im Unterverzeichnis 'lang'

55
doc/INSTALL-es.txt Normal file
View File

@ -0,0 +1,55 @@
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á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í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ó 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áznoslo saber.
* Contribuidores
Desarrolladores del proyecto:
- David Smith Mantenedor
- Xavier Renard Master de LDIF
- Marius Rieder Master de los Esquemas
- Nate Rotschafer Encargado de los lanzamientos
Escribidores de los parches:
- 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ørgum soporte UTF-8
- Brandon Lederer plantilla de entrada de DNS
Nathan Rotschafer
- Steve Rigler Parche para Password hash
- Chris Jackson Contraseñas Blowfish y md5crypt
- Marius Rieder Parseador avanzado de esquema
- Nick Burch Un montón de arreglos de realpath()
Traductores:
- Uwe Ebel Alemán
- Xavier Renard Francés
- Dave Smith Inglés ;)
Si puedes ayudar a traducir, por favor apúntate a la lista de correo phpldapadmin:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

56
doc/INSTALL-fr.txt Normal file
View File

@ -0,0 +1,56 @@
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écente (avec le support LDAP).
* Installer phpLDAPadmin en quatre étapes simples:
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 éditer selon vos besoins.
4. Ensuite, pointer votre navigateur vers le répertoire phpldapadmin.
* Notes sur les navigateurs
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:
Developeurs:
- David Smith Maintenance
- Xavier Renard Responsable LDIF
- Marius Rieder Responsable pour les schéma LDAP
- Nate Rotschafer Directeur des releases
Auteurs de patchs:
- 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é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élioration du parseur de schémas
- Nick Burch Corrections multiples pour realpath()
Traducteurs:
- Uwe Ebel & Marius Reider Allemand
- Xavier Renard Français
- Dave Smith Anglais ;)
- Richard Lucassen Néerlandais
- Andreu Sanchez Espagnol et Catalan
- Dmitry Gorpinenko Russe
- Unknown Italien
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

31
doc/ROADMAP Normal file
View File

@ -0,0 +1,31 @@
phpLDAPadmin roadmap
0.9.3 planned features:
Complete i18n. All strings localized.
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)
Search filter builder for simple search form (just select AND or OR for a group of criteria)
Modification templates
user
oragnizationalUnit
posixGroup (view full DNs and browse buttons)
sambaUser
sambaMachine
Samba 3.0 support in samba user and machine creation templates
http auth_type (a la phpMyAdmin)
read-only attributes (similar to hidden attributes) in config
Support and test ActiveDirectory and iMail LDAP schema.
Support for modifying replica entries (using ldap_set_rebind_proc())
Add blowfish encryption to encrypt cookie-stored passwords and DNs.
Default mod template: Add a "browse" button for attributes that store DNs.
Add output buffering when including lang files so no output is sent to the browser (which could cause problems for sessions and cookies)
Add a random hint on the welcome page
Paging search results.
Anonymous binds redirect to search page with no tree viewer (as an option in config)
Move template config to a new config file: template_config.php (or something)
0.9.4 planned features:
Hidden/read-only attrs on a filter-basis (ie, different users have different viewable, writable attributes)
Seious compatibility testing for additional LDAP servers.
Configuration for templates.
Template instances with unique config.

618
edit.php
View File

@ -3,611 +3,49 @@
/* /*
* edit.php * edit.php
* Displays the specified dn from the specified server for editing * 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
* found in tempaltes/modification/
* *
* Variables that come in as GET vars: * Variables that come in as GET vars:
* - dn (rawurlencoded) * - dn (rawurlencoded)
* - server_id * - server_id
* - modified_attrs (optional) an array of attributes to highlight as * - use_default_template (optional) If set, use the default template no matter what
* they were changed by the last operation * - Other vars may be set and used by the modification templates
*/ */
/** If an entry has more children than this, stop searching and display this amount with a '+' */ require realpath( 'common.php' );
$max_children = 100;
require 'common.php'; $dn = isset( $_GET['dn'] ) ? $_GET['dn'] : false;
$dn !== false or pla_error( $lang['missing_dn_in_query_string'] );
$dn= $_GET['dn'];
$decoded_dn = rawurldecode( $dn ); $decoded_dn = rawurldecode( $dn );
$encoded_dn = rawurlencode( $decoded_dn ); $encoded_dn = rawurlencode( $decoded_dn );
$modified_attrs = isset( $_GET['modified_attrs'] ) ? $_GET['modified_attrs'] : false;
$server_id = $_GET['server_id'];
$show_internal_attrs = isset( $_GET['show_internal_attrs'] ) ? true : false;
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); $server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); $server_id !== false or pla_error( $lang['missing_server_id_in_query_string'] );
pla_ldap_connect( $server_id ) or pla_error( "Coult not connect to LDAP server." );
$friendly_attrs = process_friendly_attr_table();
$attrs = get_object_attrs( $server_id, $dn );
pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server" ); $use_default_template = isset( $_GET['use_default_template'] ) ? true : false;
$system_attrs = get_entry_system_attrs( $server_id, $dn );
if( ! $attrs )
pla_error( "No such dn, " . htmlspecialchars( utf8_decode( $dn ) ) );
$server_name = $servers[$server_id]['name']; 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'] );
pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
// build a list of attributes available for this object based on its objectClasses if( $use_default_template ) {
$oclasses = get_object_attr( $server_id, $dn, 'objectClass' ); require realpath( 'templates/modification/default.php' );
if( ! is_array( $oclasses ) ) } else {
$oclasses = array( $oclasses );
$avail_attrs = array();
$schema_oclasses = get_schema_objectclasses( $server_id, true );
$schema_attrs = get_schema_attributes( $server_id );
foreach( $oclasses as $oclass ) {
$avail_attrs = array_merge(
$schema_oclasses[ strtolower( $oclass ) ]['must_attrs'],
$schema_oclasses[ strtolower( $oclass ) ]['may_attrs'],
$avail_attrs );
}
$avail_attrs = array_unique( $avail_attrs );
$avail_attrs = array_filter( $avail_attrs, "not_an_attr" );
sort( $avail_attrs );
$avail_binary_attrs = array(); $template = get_template( $server_id, $dn );
foreach( $avail_attrs as $i => $attr ) { $template_file = "templates/modification/$template.php";
if( is_attr_binary( $server_id, $attr ) ) { if( file_exists( realpath( $template_file ) ) )
$avail_binary_attrs[] = $attr; require realpath( $template_file );
unset( $avail_attrs[ $i ] ); else {
echo "\n\n";
echo $lang['missing_template_file'];
echo " <b>$template_file</b>. ";
echo $lang['using_default'];
echo "<br />\n\n";
require realpath( 'templates/modification/default.php' );
} }
} }
?> ?>
<?php include 'header.php'; ?>
<body>
<h3 class="title"><?php echo htmlspecialchars( utf8_decode( $rdn ) ); ?></h3>
<h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; Distinguished Name: <b><?php echo htmlspecialchars( utf8_decode( $dn ) ); ?></b></h3>
<table class="edit_dn_menu">
<tr>
<?php $time = gettimeofday(); $random_junk = md5( strtotime( 'now' ) . $time['usec'] ); ?>
<td><img src="images/refresh.png" /></td>
<td><a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>&amp;random=<?php
echo $random_junk; ?>"
title="<?php echo $lang['refresh_this_entry']; ?>"><?php echo $lang['refresh']; ?></a></td>
</tr>
<?php if( ! is_server_read_only( $server_id ) && 0 != strcasecmp( $dn, $servers[$server_id]['base'] ) ) { ?>
<?php /* We won't allow them to delete the base dn of the server */ ?>
<tr>
<td><img src="images/trash.png" /></td>
<td><a href="delete_form.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"
title="<?php echo $lang['delete_this_entry_tooltip']; ?>"><?php echo $lang['delete_this_entry']; ?></a></td>
</tr>
<?php } ?>
<tr>
<td><img src="images/cut.png" /></td>
<td><a href="copy_form.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn?>"
title="<?php echo $lang['copy_this_entry_tooltip']; ?>"><?php echo $lang['copy_this_entry']; ?></a></td>
</tr>
<tr>
<td><img src="images/save.png" /></td>
<?php $ldif_url = "ldif_export.php?server_id=$server_id&amp;dn=$encoded_dn&amp;scope=base"; ?>
<td><a href="<?php echo $ldif_url; ?>" title="<?php echo $lang['export_to_ldif_tooltip']; ?>"><?php echo $lang['export_to_ldif']; ?></a>
(<a href="<?php echo $ldif_url; ?>&amp;format=mac"
title="<?php echo $lang['export_to_ldif_mac']; ?>">mac</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=win"
title="<?php echo $lang['export_to_ldif_win']; ?>">win</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=unix"
title="<?php echo $lang['export_to_ldif_unix']; ?>">unix</a>)
</td>
</tr>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/star.png" /></td>
<td><a href="<?php echo "create_form.php?server_id=$server_id&amp;container=$encoded_dn"; ?>"><?php echo $lang['create_a_child_entry']; ?></a></td>
</tr>
<?php } ?>
<?php flush(); ?>
<?php $children = get_container_contents( $server_id, $dn, $max_children );
if( ($children_count = count( $children ) ) > 0 ) {
if( $children_count == $max_children )
$children_count = $children_count . '+';
?>
<tr>
<td><img src="images/children.png" /></td>
<td><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=one"><?php echo $lang['view']; ?> <?php echo $children_count; ?> <?php echo ($children_count==1?'child':'children');?></a></td>
</tr>
<?php } ?>
<?php if( $children_count > 0 ) { ?>
<tr>
<td><img src="images/save.png" /></td>
<?php $ldif_url = "ldif_export.php?server_id=$server_id&amp;dn=$encoded_dn&amp;scope=sub"; ?>
<td><a href="<?php echo $ldif_url; ?>"
title="<?php echo $lang['export_subtree_to_ldif_tooltip']; ?>"><?php echo $lang['export_subtree_to_ldif']; ?></a>
(<a href="<?php echo $ldif_url; ?>&amp;format=mac" title="<?php echo $lang['export_to_ldif_mac'];?>">mac</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=win" title="<?php echo $lang['export_to_ldif_win'];?>">win</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=unix" title="<?php echo $lang['export_to_ldif_unix'];?>">unix</a>)
</td>
</tr>
<?php } ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<td><?php echo $lang['delete_hint']; ?></td>
</tr>
<?php } ?>
<?php if( is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<td><?php echo $lang['viewing_read_only']; ?></td>
</tr>
<?php } ?>
</table>
<br />
<table class="edit_dn" cellspacing="0">
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<!-- Form to rename this entry -->
<tr class="row1">
<td class="heading"><acronym title="<?php echo $lang['change_entry_rdn']; ?> "><?php echo $lang['rename_entry']; ?></acronym></td>
<td class="heading" align="right">
<nobr>
<form action="rename.php" method="post" class="edit_dn" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="text" name="new_rdn" size="30" value="<?php echo htmlspecialchars( utf8_decode( $rdn ) ); ?>" />
<input class="update_dn" type="submit" value="<?php echo $lang['rename']; ?>" />
</form>
</nobr>
</td>
<?php } ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<!-- Form to add a new attribute to this entry -->
<tr class="spacer"><td colspan="2"></td></tr>
<form action="new_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<tr class="row1">
<td class="heading">
<nobr>
<acronym title="<?php echo $lang['add_new_attribute_tooltip']; ?>"><?php echo $lang['add_new_attribute']; ?></acronym>
</nobr>
</td>
<td class="heading" align="right"><nobr>
<?php if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<select name="attr">
<?php 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" />
<?php } else { ?>
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<?php } ?>
</nobr></td>
</form>
</tr>
<?php } ?>
<?php flush(); ?>
<?php if( ! is_server_read_only( $server_id ) && count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry -->
<tr class="spacer"><td colspan="2"></td></tr>
<form action="new_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 $encoded_dn; ?>" />
<input type="hidden" name="binary" value="true" />
<tr class="row1">
<td class="heading">
<nobr>
<acronym title="<?php echo $lang['add_new_binary_attr_tooltip']; ?>">
<?php echo $lang['add_new_binary_attr']; ?></acronym>
</nobr>
</td>
<td class="heading" align="right"><nobr>
<select name="attr">
<?php 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>";
} ?>
</select>
<input type="file" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</nobr></td>
</form>
</tr>
<?php } ?>
<tr class="spacer"><td colspan="2"></td></tr>
<tr class="row1">
<td class="heading" colspan="2">
<nobr>
<?php if( $show_internal_attrs ) { ?>
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"
><img src="images/minus.png" title="<?php echo $lang['hide_internal_attrs']; ?>" /></a>
<acronym title="<?php echo $lang['internal_attrs_tooltip'];?>"><?php echo $lang['internal_attributes']; ?></acronym>
<?php } else { ?>
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>&amp;show_internal_attrs=true">
<img src="images/plus.png" title="<?php echo $lang['show_internal_attrs']; ?>" /></a>
<acronym title="<?php echo $lang['internal_attrs_tooltip']; ?> (<?php echo $lang['click_to_display']; ?>)"><?php echo $lang['internal_attributes']; ?></acronym>
<small>(<?php echo $lang['hidden']; ?>)</small>
<?php } ?>
</nobr>
</td>
</tr>
<?php
if( $show_internal_attrs ) {
$counter = 0;
foreach( get_entry_system_attrs( $server_id, $dn ) as $attr => $vals ) {
$counter++
?>
<tr class="<?php echo ($counter%2==0?'row1':'row2');?>">
<td class="attr"><b><?php echo htmlspecialchars( $attr ); ?></b></td>
<td class="val">
<?php foreach( $vals as $v ) {?>
<?php echo htmlspecialchars( $v ); ?><br />
<?php } ?>
</td>
</tr>
<?php }
if( $counter == 0 )
echo "<tr class=\"row2\"><td colspan=\"2\"><center>(" . $lang['none'] . ")</center></td></tr>\n";
}
?>
<?php flush(); ?>
<tr class="spacer"><td colspan="2"></td></tr>
<!-- Table of attributes/values to edit -->
<tr class="row1">
<td class="heading" colspan="2">
<nobr><?php echo $lang['entry_attributes']; ?></nobr>
</td>
</tr>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<form action="update_confirm.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<?php } ?>
<?php $counter=0; ?>
<?php /* Prepare the hidden_attrs array by lower-casing it. */
if( isset( $hidden_attrs ) && is_array( $hidden_attrs ) && count( $hidden_attrs ) > 0 )
foreach( $hidden_attrs as $i => $attr_name )
$hidden_attrs[$i] = strtolower( $attr_name );
else
$hidden_attrs = array();
?>
<?php foreach( $attrs as $attr => $vals ) {
if( isset( $schema_attrs[ strtolower($attr) ] ) )
$attr_syntax = $schema_attrs[ strtolower( $attr ) ]->getSyntaxOID();
flush();
if( 0 == strcasecmp( $attr, 'dn' ) )
continue;
// has the config.php specified that this attribute is to be hidden?
if( in_array( strtolower( $attr ), $hidden_attrs ) )
continue;
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) ) {
$attr_display = "<acronym title=\"" . $lang['alias_for'] . "$attr\">" .
$friendly_attrs[ strtolower( $attr ) ] . "</acronym>";
} else {
$attr_display = $attr;
}
?>
<?php if( is_array( $modified_attrs ) && in_array( $attr, $modified_attrs ) ) { ?>
<tr class="updated_attr">
<?php } else { ?>
<?php if( $counter++ % 2 == 0 ) { ?>
<tr class="row2">
<?php } else { ?>
<tr class="row1">
<?php } ?>
<?php } ?>
<?php
if( ! is_server_read_only( $server_id ) ) {
$add_href = "add_value_form.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=" . rawurlencode( $attr );
} ?>
<td class="attr">
<b><?php echo $attr_display; ?></b><br />
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<small>(<a href="<?php echo $add_href; ?>"
title="<?php echo $lang['add_value_tooltip']; ?>"><?php echo $lang['add_value']; ?></a>)</small>
<?php } ?>
</td>
<td class="val">
<?php
/*
* Is this attribute a jpegPhoto?
*/
if( is_jpeg_photo( $server_id, $attr ) ) {
// Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet)
if( is_server_read_only( $server_id ) )
draw_jpeg_photos( $server_id, $dn, false );
else
draw_jpeg_photos( $server_id, $dn, true );
// proceed to the next attribute
continue;
}
/*
* Is this attribute binary?
*/
if( is_attr_binary( $server_id, $attr ) ) {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr";
?>
<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 } ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<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 we are in read-only mode, simply draw the attribute values and continue.
*/
if( is_server_read_only( $server_id ) ) {
if( is_array( $vals ) ) {
foreach( $vals as $i => $val ) {
$val = utf8_decode( $val );
echo $val . "<br />";
}
} else {
echo utf8_decode( $vals ) . "<br />";
}
continue;
}
/*
* Is this a userPassword attribute?
*/
if( 0 == strcasecmp( $attr, 'userpassword' ) ) {
$user_password = $vals[0];
/* Capture the stuff in the { } to determine if this is crypt, md5, etc. */
preg_match( "/{([^}]+)}/", $user_password, $enc_type);
$enc_type = strtolower($enc_type[1]);
// Set the default hashing type if the password is blank (must be newly created)
if( $val == '' ) {
$enc_type = $servers[$server_id]['default_hash'];
} ?>
<?php /* handle crypt types */
if($enc_type == "crypt") {
preg_match( "/{[^}]+}\\$(.)\\$/", $user_password, $salt);
switch( $salt[1] ) {
case '': // CRYPT_STD_DES
$enc_type = "crypt";
break;
case '1': // CRYPT_MD5
$enc_type = "md5crypt";
break;
case '2': // CRYPT_BLOWFISH
$enc_type = "blowfish";
break;
default:
$enc_type = "crypt";
}
} ?>
<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); ?>" />
<input size="38"
type="text"
name="new_values[userpassword]"
value="<?php echo htmlspecialchars($user_password); ?>" />
<select name="enc_type">
<option>clear</option>
<option<?php echo $enc_type=='crypt'?' selected':''; ?>>crypt</option>
<option<?php echo $enc_type=='md5'?' selected':''; ?>>md5</option>
<option<?php echo $enc_type=='md5crypt'?' selected':''; ?>>md5crypt</option>
<option<?php echo $enc_type=='blowfish'?' selected':''; ?>>blowfish</option>
<option<?php echo $enc_type=='sha'?' selected':''; ?>>sha</option>
</select>
<?php continue;
}
/*
* Is this a boolean attribute?
*/
if( 0 == strcasecmp( 'boolean', $schema_attrs[ strtolower($attr) ]->getType() ) ) {
$val = $vals[0];
?>
<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
continue;
}
/*
* End of special case attributes.
*/
/*
* This is a normal attribute, to be displayed and edited in plain text.
*/
foreach( $vals as $i => $val ) {
$val = utf8_decode( $val ); ?>
<nobr>
<!-- 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 if( $attr_syntax == '1.3.6.1.4.1.1466.115.121.1.40' ) { ?>
<textarea
cols="37" rows="3"
name="new_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]"
><?php echo htmlspecialchars($val); ?></textarea><br />
<?php } else { ?>
<input type="text"
size="50"
name="new_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]"
value="<?php echo htmlspecialchars($val); ?>" /></nobr><br />
<?php } ?>
<?php } /* end foreach value */ ?>
</td>
</tr>
<?php } /* End foreach( $attrs as $attr => $vals ) */ ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<tr><td colspan="2"><center><input type="submit" value="<?php echo $lang['save_changes']; ?>" /></center></form></td></tr>
<?php } ?>
<?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 $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />
</form>
<?php
/**
* Given an attribute $x, this returns true if it is NOT already specified
* in the current entry, returns false otherwise.
*/
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

@ -4,25 +4,25 @@ require 'common.php';
$container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false; $container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false;
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false; $server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$return_form_element = $_GET['form_element']; $return_form_element = htmlspecialchars( $_GET['form_element'] );
include "header.php"; include "header.php";
echo "<h3 class=\"subtitle\">Automagic Entry Chooser</h3>\n"; echo "<h3 class=\"subtitle\">Automagic Entry Chooser</h3>\n";
if( $container ) { if( $container ) {
echo "Server: <b>" . htmlspecialchars( $servers[ $server_id ][ 'name' ] ) . "</b><br />\n"; echo $lang['server_colon_pare'] . "<b>" . htmlspecialchars( $servers[ $server_id ][ 'name' ] ) . "</b><br />\n";
echo "Looking in: <b>" . htmlspecialchars( $container ) . "</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? */ /* Has the use already begun to descend into a specific server tree? */
if( $server_id !== false && $container !== false ) if( $server_id !== false && $container !== false )
{ {
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. ". have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
"Please check your configuration." ); pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
pla_ldap_connect( $server_id ) or pla_error( "Coult not connect to LDAP server." );
$dn_list = get_container_contents( $server_id, $container ); $dn_list = get_container_contents( $server_id, $container );
sort( $dn_list );
$base_dn = $servers[ $server_id ][ 'base' ]; $base_dn = $servers[ $server_id ][ 'base' ];
if( ! $base_dn ) if( ! $base_dn )
@ -37,10 +37,10 @@ if( $server_id !== false && $container !== false )
rawurlencode( $parent_container ); rawurlencode( $parent_container );
} }
echo "&nbsp;<a href=\"$up_href\" style=\"text-decoration:none\">" . echo "&nbsp;<a href=\"$up_href\" style=\"text-decoration:none\">" .
"<img src=\"images/up.png\"> Back Up...</a><br />\n"; "<img src=\"images/up.png\"> ". $lang['back_up_p'] ."</a><br />\n";
if( count( $dn_list ) == 0 ) if( count( $dn_list ) == 0 )
echo "&nbsp;&nbsp;&nbsp;(no entries)<br />\n"; echo "&nbsp;&nbsp;&nbsp;(". $lang['no_entries'] .")<br />\n";
else else
foreach( $dn_list as $dn ) { foreach( $dn_list as $dn ) {
$href = "javascript:returnDN( '$dn' )"; $href = "javascript:returnDN( '$dn' )";
@ -57,11 +57,11 @@ else
if( $server['host'] ) { if( $server['host'] ) {
echo "<b>" . htmlspecialchars( $server['name'] ) . "</b><br />\n"; echo "<b>" . htmlspecialchars( $server['name'] ) . "</b><br />\n";
if( ! have_auth_info( $id ) ) if( ! have_auth_info( $id ) )
echo "<small>&nbsp;&nbsp;&nbsp;(Not logged in)</small><br />"; echo "<small>&nbsp;&nbsp;&nbsp;(" . $lang['not_logged_in'] . ")</small><br />";
else { else {
$dn = ( $server['base'] ? $server['base'] : try_to_get_root_dn( $id ) ); $dn = ( $server['base'] ? $server['base'] : try_to_get_root_dn( $id ) );
if( ! $dn ) { if( ! $dn ) {
echo "<small>&nbsp;&nbsp;&nbsp;(Could not determine base DN)</small><br />"; echo "<small>&nbsp;&nbsp;&nbsp;(". $lang['could_not_det_base_dn'] .")</small><br />";
} else { } else {
$href = "javascript:returnDN( '$dn' )"; $href = "javascript:returnDN( '$dn' )";
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" . echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" .

View File

@ -25,8 +25,8 @@ $dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id']; $server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
session_start(); session_start();
@ -37,14 +37,14 @@ session_start();
$tree = $_SESSION['tree']; $tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons']; $tree_icons = $_SESSION['tree_icons'];
pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server" ); pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
$contents = get_container_contents( $server_id, $dn ); $contents = get_container_contents( $server_id, $dn );
//echo "<pre>"; //echo "<pre>";
//var_dump( $contents ); //var_dump( $contents );
//exit; //exit;
sort( $contents ); usort( $contents, 'pla_compare_dns' );
$tree[$server_id][$dn] = $contents; $tree[$server_id][$dn] = $contents;
foreach( $contents as $dn ) foreach( $contents as $dn )
@ -52,7 +52,6 @@ foreach( $contents as $dn )
$_SESSION['tree'] = $tree; $_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons; $_SESSION['tree_icons'] = $tree_icons;
session_write_close();
// This is for Opera. By putting "random junk" in the query string, it thinks // This is for Opera. By putting "random junk" in the query string, it thinks
// that it does not have a cached version of the page, and will thus // that it does not have a cached version of the page, and will thus
@ -67,5 +66,7 @@ if(SID != ""){
$id_session_param = "&".session_name()."=".session_id(); $id_session_param = "&".session_name()."=".session_id();
} }
header( "Location:tree.php?foo=$random_junk%23{$server_id}_{$encoded_dn}$id_session_param" ); session_write_close();
header( "Location:tree.php?foo=$random_junk#{$server_id}_{$encoded_dn}$id_session_param" );
?> ?>

View File

@ -7,6 +7,286 @@
@include 'config.php'; @include 'config.php';
function set_cookie_login_dn( $server_id, $dn, $password, $anon_bind )
{
// cookie_time comes from config.php
if( ! check_server_id( $server_id ) )
return false;
if( $anon_bind ) {
// we set the cookie val to 0 for anonymous binds.
$res1 = pla_set_cookie( "pla_login_dn_$server_id", 'anonymous' );
$res2 = pla_set_cookie( "pla_login_pass_$server_id", '0' );
} else {
$res1 = pla_set_cookie( "pla_login_dn_$server_id", $dn );
$res2 = pla_set_cookie( "pla_login_pass_$server_id", $password );
}
if( ! $res1 || ! $res2 )
return false;
else
return true;
}
function pla_set_cookie( $name, $val, $expire=null, $dir=null )
{
if( $expire == null ) {
global $cookie_time;
if( ! isset( $cookie_time ) )
$cookie_time = 0;
$expire = $cookie_time == 0 ? null : time() + $cookie_time;
}
if( $dir == null ) {
global $_SERVER;
$dir = dirname( $_SERVER['PHP_SELF'] );
}
if( setcookie( $name, $val, $expire, $dir ) ) {
global $_COOKIE;
$_COOKIE[ $name ] = $val;
return true;
} else {
return false;
}
}
function unset_cookie_login_dn( $server_id )
{
global $_SERVER;
if( ! check_server_id( $server_id ) )
return false;
$logged_in_dn = get_logged_in_dn( $server_id );
$logged_in_pass = get_logged_in_pass( $server_id );
$anon_bind = $logged_in_dn == 'anonymous' ? true : false;
$expire = time()-3600;
if( $anon_bind ) {
$res1 = pla_set_cookie( "pla_login_dn_$server_id", 'anonymous', $expire );
$res2 = pla_set_cookie( "pla_login_pass_$server_id", '0', $expire );
} else {
$res1 = pla_set_cookie( "pla_login_dn_$server_id", $logged_in_dn, $expire );
$res2 = pla_set_cookie( "pla_login_pass_$server_id", $logged_in_pass, $expire );
}
if( ! $res1 || ! $res2 )
return false;
else
return true;
}
/*
* Compares 2 DNs. If they are equivelant, returns 0, otherwise,
* returns their sorting order (similar to strcmp()).
* < 0 if dn1 is less than dn2
* > 0 if dn1 is greater than dn2
*/
function pla_compare_dns( $dn1, $dn2 )
{
$dn1_parts = pla_explode_dn( $dn1 );
$dn2_parts = pla_explode_dn( $dn2 );
assert( is_array( $dn1_parts ) );
assert( is_array( $dn2_parts ) );
// If they are obviously the same, return immediately
if( 0 === strcasecmp( $dn1, $dn2 ) )
return 0;
// If they are obviously different, immediately
// do a string comparison rather than continuing
if( count( $dn1_parts ) != count( $dn2_parts ) )
return strcasecmp( $dn1, $dn2 );
// Foreach of the "parts" of the DN
for( $i=0; $i<count( $dn1_parts ); $i++ )
{
// dnX_part is of the form: "cn=joe" or "cn = joe" or "dc=example"
// ie, one part of a multi-part DN.
$dn1_part = $dn1_parts[$i];
$dn2_part = $dn2_parts[$i];
// Each "part" consists of two sub-parts:
// 1. the attribute (ie, "cn" or "o")
// 2. the value (ie, "joe" or "example")
$dn1_sub_parts = explode( '=', $dn1_part, 2 );
$dn2_sub_parts = explode( '=', $dn2_part, 2 );
$dn1_sub_part_attr = trim( $dn1_sub_parts[0] );
$dn2_sub_part_attr = trim( $dn2_sub_parts[0] );
if( 0 != ( $cmp = strcasecmp( $dn1_sub_part_attr, $dn2_sub_part_attr ) ) )
return $cmp;
$dn1_sub_part_val = trim( $dn1_sub_parts[1] );
$dn2_sub_part_val = trim( $dn2_sub_parts[1] );
if( 0 != ( $cmp = strcasecmp( $dn1_sub_part_val, $dn2_sub_part_val ) ) )
return $cmp;
}
// If none of the foregoing tests failed, we must have finished
// examining two equivelane DNs.
return 0;
}
/**
* Prunes off anything after the ";" in an attr name
*/
function real_attr_name( $attr_name )
{
$attr_name = preg_replace( "/;.*$/U", "", $attr_name );
return $attr_name;
}
/*
* Returns true if the user has configured the specified
* server to enable mass deletion
*/
function mass_delete_enabled( $server_id )
{
global $enable_mass_delete;
if( check_server_id( $server_id ) &&
pla_ldap_connect( $server_id ) &&
have_auth_info( $server_id ) &&
! is_server_read_only( $server_id ) &&
isset( $enable_mass_delete ) &&
true === $enable_mass_delete )
return true;
else
return false;
}
/*
* Returns true if the user has configured PLA to show
* helpful hints with the $show_hints setting.
*/
function show_hints()
{
global $show_hints;
if( isset( $show_hints ) && $show_hints === true )
return true;
}
/*
* Returns the name of the template to use based on the DN and
* objectClasses of an entry. If no specific modification
* template is available, simply return 'default'. The caller
* should append '.php' and prepend 'templates/modification/'
* to the returned string to get the file name.
*/
function get_template( $server_id, $dn )
{
// For now, just use default. We will add more templates for 0.9.2.
// If you have custom modification templates, just modify this.
return 'default';
// fetch and lowercase all the objectClasses in an array
$object_classes = get_object_attr( $server_id, $dn, 'objectClass', true );
if( $object_classes === null || $object_classes === false)
return 'default';
foreach( $object_classes as $i => $class )
$object_classes[$i] = strtolower( $class );
$rdn = get_rdn( $dn );
if( in_array( 'person', $object_classes ) &&
in_array( 'posixaccount', $object_classes ) )
return 'user';
// TODO: Write other templates and criteria therefor
// else if ...
// return 'some other template';
// else if ...
// return 'some other template';
// etc.
return 'default';
}
/*
* For hosts who have 'enable_auto_uid_numbers' set to true, this function will
* get the next available uidNumber using the host's preferred mechanism
* (uidpool or search). The uidpool mechanism uses a user-configured entry in
* the LDAP server to store the last used uidNumber. This mechanism simply fetches
* and increments and returns that value. The search mechanism is more complicated
* and slow. It searches all entries that have uidNumber set, finds the smalles and
* "fills in the gaps" by incrementing the smallest uidNumber until an unused value
* is found. Both mechanisms do NOT prevent race conditions or toe-stomping, so
* care must be taken when actually creating the entry to check that the uidNumber
* returned here has not been used in the mean time. Note that the two different
* mechanisms may (will!) return different values as they use different algorithms
* to arrive at their result. Do not be alarmed if (when!) this is the case.
*/
function get_next_uid_number( $server_id )
{
global $servers, $lang;
// Some error checking
if( ! check_server_id( $server_id ) )
return false;
$server_name = isset( $servers[ $server_id ]['name'] ) ?
$servers[$server_id]['name'] :
"Server $server_id";
if( ! isset( $servers[ $server_id ]['enable_auto_uid_numbers'] ) )
return false;
if( ! isset( $servers[ $server_id ]['auto_uid_number_mechanism'] ) )
pla_error( sprintf($lang['auto_update_not_setup'], $server_name));
// Based on the configured mechanism, go get the next available uidNumber!
$mechanism = $servers[$server_id]['auto_uid_number_mechanism'];
//
// case 1: uidpool mechanism
//
if( 0 == strcasecmp( $mechanism, 'uidpool' ) ) {
if( ! isset( $servers[ $server_id ][ 'auto_uid_number_uid_pool_dn' ] ) )
pla_error( sprintf( $lang['uidpool_not_set'], $server_name ) );
$uid_pool_dn = $servers[ $server_id ][ 'auto_uid_number_uid_pool_dn' ];
if( ! dn_exists( $server_id, $uid_pool_dn ) )
pla_error( sprintf( $lang['uidpool_not_exist'] , $uid_pool_dn ) );
$next_uid_number = get_object_attr( $server_id, $uid_pool_dn, 'uidNumber' );
$next_uid_number = intval( $next_uid_number[ 0 ] );
$next_uid_number++;
return $next_uid_number;
//
// case 2: search mechanism
//
} elseif( 0 == strcasecmp( $mechanism, 'search' ) ) {
if( ! isset( $servers[ $server_id ][ 'auto_uid_number_search_base' ] ) )
pla_error( sprintf( $lang['specified_uidpool'] , $server_name ) );
$base_dn = $servers[ $server_id ][ 'auto_uid_number_search_base' ];
$filter = "(uidNumber=*)";
$results = pla_ldap_search( $server_id, $filter, $base_dn, array('uidNumber'));
// lower-case all the inices so we can access them by name correctly
foreach( $results as $dn => $attrs )
foreach( $attrs as $attr => $vals ) {
unset( $results[$dn][$attr] );
$results[$dn][strtolower( $attr )] = $vals;
}
// construct a list of used uidNumbers
$uids = array();
foreach ($results as $result)
$uids[] = $result['uidnumber'];
$uids = array_unique( $uids );
if( count( $uids ) == 0 )
return false;
sort( $uids );
foreach( $uids as $uid )
$uid_hash[ $uid ] = 1;
// start with the least existing uidNumber and add 1
$uidNumber = intval( $uids[0] ) + 1;
// this loop terminates as soon as we encounter the next available uidNumber
while( isset( $uid_hash[ $uidNumber ] ) )
$uidNumber++;
return $uidNumber;
//
// No other cases allowed. The user has an error in the configuration
//
} else {
pla_error( sprintf( $lang['auto_uid_invalid_value'] , $mechanism) );
}
}
/* /*
* Used to determine if the specified attribute is indeed a jpegPhoto * Used to determine if the specified attribute is indeed a jpegPhoto
*/ */
@ -40,14 +320,18 @@ function is_jpeg_photo( $server_id, $attr_name )
*/ */
function is_attr_binary( $server_id, $attr_name ) function is_attr_binary( $server_id, $attr_name )
{ {
require_once realpath( 'schema_functions.php' ); @require_once realpath( 'schema_functions.php' );
$schema_attrs = get_schema_attributes( $server_id );
if( 0 == strcasecmp( substr( $attr_name, strlen( $attr_name ) - 7 ), ";binary" ) ) if( 0 == strcasecmp( substr( $attr_name, strlen( $attr_name ) - 7 ), ";binary" ) )
return true; return true;
if( isset( $schema_attrs[ strtolower( $attr_name ) ] ) ) {
$type = $schema_attrs[ strtolower( $attr_name ) ]->getType(); $schema_attr = get_schema_attribute( $server_id, $attr_name );
$syntax = $schema_attrs[ strtolower( $attr_name ) ]->getSyntaxOID(); if( ! $schema_attr )
return false;
$type = $schema_attr->getType();
$syntax = $schema_attr->getSyntaxOID();
if( 0 == strcasecmp( substr( $attr_name, strlen( $attr_name ) - 7 ), ";binary" ) || if( 0 == strcasecmp( substr( $attr_name, strlen( $attr_name ) - 7 ), ";binary" ) ||
0 == strcasecmp( $type, 'Certificate' ) || 0 == strcasecmp( $type, 'Certificate' ) ||
0 == strcasecmp( $type, 'Binary' ) || 0 == strcasecmp( $type, 'Binary' ) ||
@ -62,8 +346,6 @@ function is_attr_binary( $server_id, $attr_name )
return true; return true;
else else
return false; return false;
}
return false;
} }
/* /*
@ -80,7 +362,8 @@ function is_server_read_only( $server_id )
return true; return true;
global $anonymous_bind_implies_read_only; global $anonymous_bind_implies_read_only;
if( 0 == strcasecmp( "anonymous", get_logged_in_dn( $server_id ) ) &&
if( "anonymous" == get_logged_in_dn( $server_id ) &&
isset( $anonymous_bind_implies_read_only ) && isset( $anonymous_bind_implies_read_only ) &&
$anonymous_bind_implies_read_only == true ) $anonymous_bind_implies_read_only == true )
return true; return true;
@ -136,13 +419,40 @@ function get_icon( $server_id, $dn )
return 'mail.png'; return 'mail.png';
elseif( in_array( 'locality', $object_classes ) ) elseif( in_array( 'locality', $object_classes ) )
return 'locality.png'; return 'locality.png';
elseif( in_array( 'posixgroup', $object_classes ) ) elseif( in_array( 'posixgroup', $object_classes ) ||
in_array( 'groupofnames', $object_classes ) )
return 'ou.png'; return 'ou.png';
elseif( in_array( 'applicationprocess', $object_classes ) )
return 'process.png';
elseif( in_array( 'groupofuniquenames', $object_classes ) )
return 'uniquegroup.png';
elseif( in_array( 'iphost', $object_classes ) )
return 'host.png';
// Oh well, I don't know what it is. Use a generic icon. // Oh well, I don't know what it is. Use a generic icon.
else else
return 'object.png'; return 'object.png';
} }
/*
* Does the same thing as get_icon(), but it tries to fetch the icon name from the
* tree_icons session variable first. If not found, resorts to get_icon() and stores
* the icon nmae in the tree_icons session before returing the icon.
*/
function get_icon_use_cache( $server_id, $dn )
{
@session_start();
if( session_is_registered( 'tree_icons' ) ) {
global $_SESSION;
if( isset( $_SESSION['tree_icons'][ $server_id ][ $dn ] ) ) {
return $_SESSION['tree_icons'][ $server_id ][ $dn ];
} else {
$icon = get_icon( $server_id, $dn );
$_SESSION['tree_icons'][ $server_id ][ $dn ] = $icon;
return $icon;
}
}
}
/* /*
* Given a server_id, returns whether or not we have enough information * Given a server_id, returns whether or not we have enough information
* to authenticate against the server. For example, if the user specifies * to authenticate against the server. For example, if the user specifies
@ -158,52 +468,60 @@ function have_auth_info( $server_id )
$server = $servers[$server_id]; $server = $servers[$server_id];
if( $server['auth_type'] == 'form' ) if( isset( $server['auth_type'] ) && $server['auth_type'] == 'form' ) {
{ // we don't look at get_logged_in_pass() cause it may be null for anonymous binds
global $_COOKIE; // get_logged_in_dn() will never return null if someone is really logged in.
if( isset( $_COOKIE[ 'pla_login_dn_' . $server_id ] ) && if( get_logged_in_dn( $server_id ) )
isset( $_COOKIE[ 'pla_pass_' . $server_id ] ) )
return true; return true;
else else
return false; return false;
} }
// whether or not the login_dn or pass is specified, we return // whether or not the login_dn or pass is specified, we return
// true here. (if they are blank, we do an anonymous bind anyway) // true here. (if they are blank, we do an anonymous bind anyway)
elseif( $server['auth_type'] == 'config' ) elseif( ! isset( $server['auth_type'] ) || $server['auth_type'] == 'config' ) {
{
return true; return true;
} }
else else
{ {
pla_error( "Error: You have an error in your config file. The only two allowed global $lang;
values for 'auth_type' in the $servers section are 'config' and pla_error( sprintf( $lang['error_auth_type_config'], htmlspecialchars($server['auth_type'])) );
'form'. You entered '" . htmlspecialchars($server['auth_type']) . "', which
is not allowed. " );
} }
} }
/*
* Returns the password of the currently logged in DN (auth_type form only)
* or false if the current login is anonymous.
*/
function get_logged_in_pass( $server_id ) function get_logged_in_pass( $server_id )
{ {
if( ! is_numeric( $server_id ) )
return false;
$cookie_name = 'pla_login_pass_' . $server_id;
global $_COOKIE; global $_COOKIE;
$pass = $_COOKIE[ 'pla_login_pass_' . $server_id ]; $pass = isset( $_COOKIE[ $cookie_name ] ) ? $_COOKIE[ $cookie_name ] : false;
if( $pass == '0' ) if( $pass == '0' )
return false; return null;
else else
return $pass; return $pass;
} }
/*
* Returns the DN who is logged in currently to the given server, which may
* either be a DN or the string 'anonymous'.
*/
function get_logged_in_dn( $server_id ) function get_logged_in_dn( $server_id )
{ {
global $_COOKIE; if( ! is_numeric( $server_id ) )
$cookie_name = 'pla_login_dn_' . $server_id;
if( isset( $_COOKIE[ $cookie_name ] ) )
$dn = $_COOKIE[ $cookie_name ];
else
return false; return false;
$cookie_name = 'pla_login_dn_' . $server_id;
global $_COOKIE;
if( isset( $_COOKIE[ $cookie_name ] ) ) {
$dn = $_COOKIE[ $cookie_name ];
} else {
return false;
}
if( $dn == '0' )
return 'Anonymous';
else
return $dn; return $dn;
} }
@ -242,9 +560,9 @@ function pla_ldap_connect( $server_id )
// try to fire up TLS is specified in the config // try to fire up TLS is specified in the config
if( $servers[ $server_id ][ 'tls' ] == true ) { if( $servers[ $server_id ][ 'tls' ] == true ) {
function_exists( 'ldap_start_tls' ) or pla_error( "Your PHP install does not support TLS" ); global $lang;
@ldap_start_tls( $conn ) or pla_error( "Could not start TLS.<br />Please check your ". function_exists( 'ldap_start_tls' ) or pla_error( $lang['php_install_not_supports_tls'] );
"LDAP server configuration." ); @ldap_start_tls( $conn ) or pla_error( $lang['could_not_start_tls']);
} }
// grab the auth info based on the auth_type for this server // grab the auth info based on the auth_type for this server
@ -252,19 +570,18 @@ function pla_ldap_connect( $server_id )
$login_dn = $servers[$server_id]['login_dn']; $login_dn = $servers[$server_id]['login_dn'];
$login_pass = $servers[$server_id]['login_pass']; $login_pass = $servers[$server_id]['login_pass'];
} elseif( $servers[ $server_id ][ 'auth_type' ] == 'form' ) { } elseif( $servers[ $server_id ][ 'auth_type' ] == 'form' ) {
global $_COOKIE; $login_dn = get_logged_in_dn( $server_id );
$login_dn = $_COOKIE['pla_login_dn_' . $server_id ]; $login_pass = get_logged_in_pass( $server_id );
$login_pass = $_COOKIE['pla_pass_' . $server_id ];
// Was this an anonyous bind (the cookie stores 0 if so)? // Was this an anonyous bind (the cookie stores 0 if so)?
if( '0' == $login_dn ) { if( 'anonymous' == $login_dn ) {
$login_dn = null; $login_dn = null;
$login_pass = null; $login_pass = null;
} }
} else { } else {
pla_error( "You have an error in your config file. auth_type of " . global $lang;
htmlspecialchars( $servers[ $server_id ][ 'auth_type' ] ) . pla_error( sprintf( $lang['auth_type_not_valid'],
" is not valid." ); htmlspecialchars( $servers[ $server_id ][ 'auth_type' ] )));
} }
$res = @ldap_bind( $conn, $login_dn, $login_pass ); $res = @ldap_bind( $conn, $login_dn, $login_pass );
@ -312,15 +629,8 @@ function build_initial_tree()
foreach( $servers as $id => $server ) { foreach( $servers as $id => $server ) {
if( $server['host'] == '' ) { if( $server['host'] == '' ) {
continue; continue;
/*
$root_dn = try_to_get_root_dn( $id );
echo "Root is $root_dn<br />";
if( $root_dn )
$tree[$id][$root_dn] = array();
*/
} }
$dn = $server['base'];
$tree[$id] = array(); $tree[$id] = array();
} }
@ -351,7 +661,10 @@ function get_entry_system_attrs( $server_id, $dn )
$conn = pla_ldap_connect( $server_id ); $conn = pla_ldap_connect( $server_id );
if( ! $conn ) return false; if( ! $conn ) return false;
$search = @ldap_read( $conn, $dn, '(objectClass=*)', array("+"), 0, 200, 0, LDAP_DEREF_ALWAYS ); $attrs = array( 'creatorsname', 'createtimestamp', 'modifiersname',
'structuralObjectClass', 'entryUUID', 'modifytimestamp',
'subschemaSubentry', 'hasSubordinates', '+' );
$search = @ldap_read( $conn, $dn, '(objectClass=*)', $attrs, 0, 0, 0, LDAP_DEREF_ALWAYS );
if( ! $search ) if( ! $search )
return false; return false;
@ -360,7 +673,7 @@ function get_entry_system_attrs( $server_id, $dn )
$attrs = ldap_get_attributes( $conn, $entry ); $attrs = ldap_get_attributes( $conn, $entry );
$count = $attrs['count']; $count = $attrs['count'];
unset( $attrs['count'] ); unset( $attrs['count'] );
//echo "<pre>"; print_r( $attrs ); $return_attrs = array();
for( $i=0; $i<$count; $i++ ) { for( $i=0; $i<$count; $i++ ) {
$attr_name = $attrs[$i]; $attr_name = $attrs[$i];
unset( $attrs[$attr_name]['count'] ); unset( $attrs[$attr_name]['count'] );
@ -393,17 +706,20 @@ function get_object_attrs( $server_id, $dn, $lower_case_attr_names = false )
$conn = pla_ldap_connect( $server_id ); $conn = pla_ldap_connect( $server_id );
if( ! $conn ) return false; if( ! $conn ) return false;
$search = @ldap_read( $conn, $dn, '(objectClass=*)', array( ), 0, 200, 0, LDAP_DEREF_ALWAYS ); $search = @ldap_read( $conn, $dn, '(objectClass=*)', array( ), 0, 0, 0, LDAP_DEREF_ALWAYS );
if( ! $search ) if( ! $search )
return false; return false;
$entry = ldap_first_entry( $conn, $search ); $entry = ldap_first_entry( $conn, $search );
if( ! $entry )
return false;
$attrs = ldap_get_attributes( $conn, $entry ); $attrs = ldap_get_attributes( $conn, $entry );
if( ! $attrs || $attrs['count'] == 0 ) { if( ! $attrs || $attrs['count'] == 0 )
return false; return false;
}
$num_attrs = $attrs['count']; $num_attrs = $attrs['count'];
unset( $attrs['count'] ); unset( $attrs['count'] );
@ -416,7 +732,6 @@ function get_object_attrs( $server_id, $dn, $lower_case_attr_names = false )
foreach( $attrs as $attr => $vals ) { foreach( $attrs as $attr => $vals ) {
if( $lower_case_attr_names ) if( $lower_case_attr_names )
$attr = strtolower( $attr ); $attr = strtolower( $attr );
$count = $vals['count'];
unset( $vals['count'] ); unset( $vals['count'] );
$return_array[ $attr ] = $vals; $return_array[ $attr ] = $vals;
} }
@ -463,6 +778,9 @@ function get_object_attr( $server_id, $dn, $attr )
* A do-it-all ldap_search function. You can even specify the search scope. Other than * A do-it-all ldap_search function. You can even specify the search scope. Other than
* that, it's pretty much the same as the PHP ldap_search() call, except it returns * that, it's pretty much the same as the PHP ldap_search() call, except it returns
* an array of results, rather than an LDAP result resource. * an array of results, rather than an LDAP result resource.
*
* NOTE: This function will use a lot of memory on large searches. You should consider
* using the PHP LDAP API directly for large searches (ldap_next_entry(), ldap_next_attribute(), etc)
*/ */
function pla_ldap_search( $server_id, $filter, $base_dn=null, $attrs=array(), $scope='sub', $sort_results=true ) function pla_ldap_search( $server_id, $filter, $base_dn=null, $attrs=array(), $scope='sub', $sort_results=true )
{ {
@ -480,20 +798,21 @@ function pla_ldap_search( $server_id, $filter, $base_dn=null, $attrs=array(), $s
switch( $scope ) { switch( $scope ) {
case 'base': case 'base':
$search = @ldap_read( $ds, $base_dn, $filter, $attrs, 0, 200, 0, LDAP_DEREF_ALWAYS ); $search = @ldap_read( $ds, $base_dn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_ALWAYS );
break; break;
case 'one': case 'one':
$search = @ldap_list( $ds, $base_dn, $filter, $attrs, 0, 200, 0, LDAP_DEREF_ALWAYS ); $search = @ldap_list( $ds, $base_dn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_ALWAYS );
break; break;
case 'sub': case 'sub':
default: default:
$search = @ldap_search( $ds, $base_dn, $filter, $attrs, 0, 200, 0, LDAP_DEREF_ALWAYS ); $search = @ldap_search( $ds, $base_dn, $filter, $attrs, 0, 0, 0, LDAP_DEREF_ALWAYS );
break; break;
} }
if( ! $search ) if( ! $search )
return array(); return array();
$return = array();
//get the first entry identifier //get the first entry identifier
if( $entry_id = ldap_first_entry($ds,$search) ) if( $entry_id = ldap_first_entry($ds,$search) )
@ -675,10 +994,12 @@ function pla_verbose_error( $err_no )
return false; return false;
$contents = fread( $f, filesize( $err_codes_file ) ); $contents = fread( $f, filesize( $err_codes_file ) );
$entries = array();
preg_match_all( "/0x[A-Fa-f0-9][A-Za-z0-9]\s+[0-9A-Za-z_]+\s+\"[^\"]*\"\n/", $contents, $entries ); preg_match_all( "/0x[A-Fa-f0-9][A-Za-z0-9]\s+[0-9A-Za-z_]+\s+\"[^\"]*\"\n/", $contents, $entries );
$err_codes = array(); $err_codes = array();
foreach( $entries[0] as $e ) foreach( $entries[0] as $e )
{ {
$entry = array();
preg_match( "/(0x[A-Za-z0-9][A-Za-z0-9])\s+([0-9A-Za-z_]+)\s+\"([^\"]*)\"/", $e, $entry ); preg_match( "/(0x[A-Za-z0-9][A-Za-z0-9])\s+([0-9A-Za-z_]+)\s+\"([^\"]*)\"/", $e, $entry );
$hex_code = $entry[1]; $hex_code = $entry[1];
$title = $entry[2]; $title = $entry[2];
@ -695,32 +1016,33 @@ function pla_verbose_error( $err_no )
* parameters, pla_error will lookup the error number and display a * parameters, pla_error will lookup the error number and display a
* verbose message in addition to the message you pass it. * verbose message in addition to the message you pass it.
*/ */
function pla_error( $msg, $ldap_err_msg=null, $ldap_err_no=-1 ) function pla_error( $msg, $ldap_err_msg=null, $ldap_err_no=-1, $fatal=true )
{ {
include_once 'header.php'; include_once 'header.php';
global $lang;
?> ?>
<center> <center>
<table class="error"><tr><td class="img"><img src="images/warning.png" /></td> <table class="error"><tr><td class="img"><img src="images/warning.png" /></td>
<td><center><h2>Error</h2></center> <td><center><h2><?php echo $lang['ferror_error'];?></h2></center>
<?php echo $msg; ?> <?php echo $msg; ?>
<br /> <br />
<br />
<?php <?php
if( $ldap_err_msg ) if( $ldap_err_msg )
echo "<b>LDAP said</b>: " . htmlspecialchars( $ldap_err_msg ) . "<br /><br />\n"; echo sprintf($lang['ldap_said'], htmlspecialchars( $ldap_err_msg ));
if( $ldap_err_no != -1 ) { if( $ldap_err_no != -1 ) {
$ldap_err_no = ( '0x' . str_pad( dechex( $ldap_err_no ), 2, 0, STR_PAD_LEFT ) ); $ldap_err_no = ( '0x' . str_pad( dechex( $ldap_err_no ), 2, 0, STR_PAD_LEFT ) );
$verbose_error = pla_verbose_error( $ldap_err_no ); $verbose_error = pla_verbose_error( $ldap_err_no );
if( $verbose_error ) { if( $verbose_error ) {
echo "<b>Error number</b>: $ldap_err_no <small>(" . echo sprintf( $lang['ferror_number'], $ldap_err_no, $verbose_error['title']);
$verbose_error['title'] . ")</small><br /><br />\n"; echo sprintf( $lang['ferror_discription'], $verbose_error['desc']);
echo "<b>Description</b>: " . $verbose_error['desc'] . "<br /><br />\n\n";
} else { } else {
echo "<b>Error number</b>: $ldap_err_no<br /><br />\n"; echo sprintf($lang['ferror_number_short'], $ldap_err_no);
echo "<b>Description</b>: (no description available)<br />\n\n"; echo $lang['ferror_discription_short'];
} }
} }
?> ?>
@ -728,16 +1050,64 @@ function pla_error( $msg, $ldap_err_msg=null, $ldap_err_no=-1 )
<br /> <br />
<center> <center>
<small> <small>
Is this a phpLDAPadmin bug? If so, please <?php echo sprintf($lang['ferror_submit_bug'] , get_href( 'add_bug' ));?>
<a href="<?php echo get_href( 'add_bug' ); ?>">report it</a>.
</small> </small>
</center> </center>
</td></tr></table> </td></tr></table>
</center> </center>
<?php <?php
if( $fatal )
die(); die();
} }
/*
* This is our custom error handling function. When a PHP error occurs,
* php will call this so we can give the user a link to the bug submission
* page, where they can report it. Whoohoo.
*/
function pla_error_handler( $errno, $errstr, $file, $lineno )
{
global $lang;
// error_reporting will be 0 if the error context occurred
// within a function call with '@' preprended (ie, @ldap_bind() );
// So, don't report errors if the caller has specifically
// disabled them with '@'
if( 0 == ini_get( 'error_reporting' ) || 0 == error_reporting() )
return;
$file = basename( $file );
$caller = basename( $_SERVER['PHP_SELF'] );
$errtype = "";
switch( $errno ) {
case E_ERROR: $errtype = "E_ERROR"; break;
case E_WARNING: $errtype = "E_WARNING"; break;
case E_PARSE: $errtype = "E_PARSE"; break;
case E_NOTICE: $errtype = "E_NOTICE"; break;
case E_CORE_ERROR: $errtype = "E_CORE_ERROR"; break;
case E_CORE_WARNING: $errtype = "E_CORE_WARNING"; break;
case E_COMPILE_ERROR: $errtype = "E_COMPILE_ERROR"; break;
case E_COMPILE_WARNING: $errtype = "E_COMPILE_WARNING"; break;
case E_USER_ERROR: $errtype = "E_USER_ERROR"; break;
case E_USER_WARNING: $errtype = "E_USER_WARNING"; break;
case E_USER_NOTICE: $errtype = "E_USER_NOTICE"; break;
case E_ALL: $errtype = "E_ALL"; break;
default: $errtype = $lang['ferror_unrecognized_num'] . $errno;
}
if( $errno == E_NOTICE ) {
echo sprintf($lang['ferror_nonfatil_bug'], $errstr, $errtype, $file,
$lineno, $caller, pla_version(), phpversion(), php_sapi_name(),
$_SERVER['SERVER_SOFTWARE'], get_href('add_bug'));
return;
}
pla_error( sprintf($lang['ferror_congrats_found_bug'], $errstr, $errtype, $file,
$lineno, basename($_SERVER['PHP_SELF']), pla_version(),
phpversion(), php_sapi_name(), $_SERVER['SERVER_SOFTWARE']));
}
/* /*
* Reads the friendly_attrs array as defined in config.php and lower-cases all * Reads the friendly_attrs array as defined in config.php and lower-cases all
* the keys. Will return an empty array if the friendly_attrs array is not defined * the keys. Will return an empty array if the friendly_attrs array is not defined
@ -792,6 +1162,7 @@ function draw_jpeg_photos( $server_id, $dn, $draw_delete_buttons=false )
{ {
global $jpeg_temp_dir; global $jpeg_temp_dir;
global $jpeg_tmp_keep_time; global $jpeg_tmp_keep_time;
global $lang;
$conn = pla_ldap_connect( $server_id ); $conn = pla_ldap_connect( $server_id );
$search_result = ldap_search( $conn, $dn, 'objectClass=*', array( 'jpegPhoto' ) ); $search_result = ldap_search( $conn, $dn, 'objectClass=*', array( 'jpegPhoto' ) );
@ -802,15 +1173,16 @@ function draw_jpeg_photos( $server_id, $dn, $draw_delete_buttons=false )
$jpeg_data = ldap_get_values_len( $conn, $entry, "jpegphoto"); $jpeg_data = ldap_get_values_len( $conn, $entry, "jpegphoto");
for( $i=0; $i<$jpeg_data['count']; $i++ ) for( $i=0; $i<$jpeg_data['count']; $i++ )
{ {
$jpeg_filename = $jpeg_temp_dir . '/' . basename( tempnam ('.', 'djp') ); // ensures that the photo is written to the specified jpeg_temp_dir
$jpeg_filename = realpath( $jpeg_filename ); $jpeg_temp_dir = realpath($jpeg_temp_dir.'/');
$jpeg_filename = tempnam($jpeg_temp_dir.'/', 'djp');
$outjpeg = fopen($jpeg_filename, "wb"); $outjpeg = fopen($jpeg_filename, "wb");
fwrite($outjpeg, $jpeg_data[$i]); fwrite($outjpeg, $jpeg_data[$i]);
fclose ($outjpeg); fclose ($outjpeg);
$jpeg_data_size = filesize( $jpeg_filename ); $jpeg_data_size = filesize( $jpeg_filename );
if( $jpeg_data_size < 6 ) { if( $jpeg_data_size < 6 ) {
echo "jpegPhoto contains errors<br />"; echo $lang['jpeg_contains_errors'];
echo '<a href="javascript:deleteAttribute( \'jpegPhoto\' );" style="color:red; font-size: 75%">Delete Photo</a>'; echo '<a href="javascript:deleteAttribute( \'jpegPhoto\' );" style="color:red; font-size: 75%">'. $lang['delete_photo'] .'</a>';
continue; continue;
} }
@ -889,10 +1261,12 @@ function try_to_get_root_dn( $server_id )
/* /*
* Hashes a password and returns the hash based on the enc_type, which can be one of * Hashes a password and returns the hash based on the enc_type, which can be one of
* crypt, md5, sha, or clear. * crypt, md5, md5crypt, sha, smd5, ssha, or clear.
*/ */
function password_hash( $password_clear, $enc_type ) function password_hash( $password_clear, $enc_type )
{ {
global $lang;
$enc_type = strtolower( $enc_type );
switch( $enc_type ) switch( $enc_type )
{ {
case 'crypt': case 'crypt':
@ -903,20 +1277,37 @@ function password_hash( $password_clear, $enc_type )
break; break;
case 'md5crypt': case 'md5crypt':
if( ! defined( 'CRYPT_MD5' ) || 0 == CRYPT_MD5 ) if( ! defined( 'CRYPT_MD5' ) || 0 == CRYPT_MD5 )
pla_error( "Your PHP install does not support blowfish encryption." ); pla_error( $lang['install_not_support_blowfish'] );
$new_value = '{crypt}' . crypt( $password_clear , '$1$' . random_salt(9) ); $new_value = '{crypt}' . crypt( $password_clear , '$1$' . random_salt(9) );
break; break;
case 'blowfish': case 'blowfish':
if( ! defined( 'CRYPT_BLOWFISH' ) || 0 == CRYPT_BLOWFISH ) if( ! defined( 'CRYPT_BLOWFISH' ) || 0 == CRYPT_BLOWFISH )
pla_error( "Your PHP install does not support blowfish encryption." ); pla_error( $lang['install_not_support_blowfish'] );
$new_value = '{crypt}' . crypt( $password_clear , '$2$' . random_salt(13) ); $new_value = '{crypt}' . crypt( $password_clear , '$2$' . random_salt(13) );
break; break;
case 'sha': case 'sha':
if( function_exists( 'mhash' ) ) { if( function_exists( 'mhash' ) ) {
$new_value = '{sha}' . base64_encode( mhash( MHASH_SHA1, $password_clear) ); $new_value = '{sha}' . base64_encode( mhash( MHASH_SHA1, $password_clear) );
} else { } else {
pla_error( "Your PHP install does not have the mhash() function." . pla_error( $lang['install_no_mash'] );
" Cannot do SHA hashes." ); }
break;
case 'ssha':
if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) {
mt_srand( (double) microtime() * 1000000 );
$salt = mhash_keygen_s2k( MHASH_SHA1, $password_clear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 );
$new_value = "{ssha}".base64_encode( mhash( MHASH_SHA1, $password_clear.$salt ).$salt );
} else {
pla_error( $lang['install_no_mash'] );
}
break;
case 'smd5':
if( function_exists( 'mhash' ) && function_exists( 'mhash_keygen_s2k' ) ) {
mt_srand( (double) microtime() * 1000000 );
$salt = mhash_keygen_s2k( MHASH_MD5, $password_clear, substr( pack( "h*", md5( mt_rand() ) ), 0, 8 ), 4 );
$new_value = "{smd5}".base64_encode( mhash( MHASH_SHA1, $password_clear.$salt ).$salt );
} else {
pla_error( $lang['install_no_mash'] );
} }
break; break;
case 'clear': case 'clear':
@ -947,7 +1338,7 @@ function draw_chooser_link( $form_element )
$href = "javascript:dnChooserPopup('$form_element');"; $href = "javascript:dnChooserPopup('$form_element');";
$title = $lang['chooser_link_tooltip']; $title = $lang['chooser_link_tooltip'];
echo "<a href=\"$href\" title=\"$title\"><img src=\"images/find.png\" /></a>"; echo "<a href=\"$href\" title=\"$title\"><img src=\"images/find.png\" /></a>";
echo "<a href=\"$href\" title=\"$title\">browse</a>\n"; echo "<a href=\"$href\" title=\"$title\">". $lang['fbrowse'] ."</a>\n";
} }
function get_values($link_id,$entry_id,$attr){ function get_values($link_id,$entry_id,$attr){
@ -1027,4 +1418,15 @@ function get_href( $type ) {
} }
} }
/*
* Returns the current time as a double (including micro-seconds).
*/
function utime ()
{
$time = explode( " ", microtime());
$usec = (double)$time[0];
$sec = (double)$time[1];
return $sec + $usec;
}
?> ?>

View File

@ -1,12 +1,20 @@
<?php echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; ?> <?php
// We want to get $language into scope in case we were included
// from within a function
global $language;
header( "Content-type: text/html; charset=\"UTF-8\"" );
<!DOCTYPE html // XML version and encoding for well-behaved browsers
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> ?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $language; ?>" lang="<?php echo $language; ?>" dir="ltr">
<head> <head>
<title>phpLDAPadmin</title> <title>phpLDAPadmin</title>
<link rel="stylesheet" href="style.css" /> <link rel="stylesheet" href="style.css" />
<script src="entry_chooser.js"></script> <script src="entry_chooser.js"></script>
<script src="search_util.js"></script> <script src="search_util.js"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head> </head>

BIN
images/host.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
images/process.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 438 B

BIN
images/question.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
images/uniquegroup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
images/warning_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

View File

@ -9,12 +9,12 @@ PHP is not installed on your web server!!!
</pre> </pre>
*******************************************/ *******************************************/
@require 'common.php'; require 'common.php';
if( ! file_exists(realpath( 'config.php' )) ) {
?> ?>
<?php if( ! file_exists(realpath( 'config.php' )) ) { ?>
<html> <html>
<head> <head>
<title>phpLDAPadmin - <?php echo pla_version(); ?></title> <title>phpLDAPadmin - <?php echo pla_version(); ?></title>
@ -35,6 +35,7 @@ An example config file is provided in 'config.php.example'
</html> </html>
<?php } elseif( check_config() ) { <?php } elseif( check_config() ) {
require 'config.php'; require 'config.php';
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
@ -68,6 +69,11 @@ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
*/ */
function check_config() function check_config()
{ {
/* 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 */ /* Make sure this PHP install has LDAP support */
if( ! extension_loaded( 'ldap' ) ) if( ! extension_loaded( 'ldap' ) )
{ {
@ -88,29 +94,21 @@ function check_config()
/* Make sure the config file is readable */ /* Make sure the config file is readable */
//if( ! is_readable( 'config.php' ) ) //if( ! is_readable( 'config.php' ) )
if( ! is_readable(realpath( 'config.php' )) ) if( ! is_readable( realpath( 'config.php' ) ) ) {
{
echo "The config file 'config.php' is not readable. Please check its permissions."; echo "The config file 'config.php' is not readable. Please check its permissions.";
return false; return false;
} }
/* Make sure their PHP install is up to snuff */
if( version_compare( phpversion(), "4.1.0" ) < 0 )
{
echo "You are using php version " . phpversion() . ". phpLDAPadmin requires version 4.1 or greater.";
return false;
}
/* check for syntax errors in config.php */ /* check for syntax errors in config.php */
// capture the result of including the file with output buffering // capture the result of including the file with output buffering
ob_start(); ob_start();
include 'config.php'; include 'config.php';
$str = ob_get_contents(); $str = ob_get_contents();
ob_end_clean(); ob_end_clean();
if( $str && false !== strpos( $str, 'error' ) ) if( $str && false !== strpos( $str, 'error' ) ) {
{
$str = strip_tags( $str ); $str = strip_tags( $str );
$parse_error = preg_match( "/on line (\d+)/", $str, $matches ); $matches = array();
preg_match( "/on line (\d+)/", $str, $matches );
$line_num = $matches[1]; $line_num = $matches[1];
$file = file( 'config.php' ); $file = file( 'config.php' );
?> ?>
@ -153,15 +151,9 @@ function check_config()
return false; return false;
} }
if( $str && false !== strpos( $str, 'Warning' ) )
{
}
/* check the existence of the servers array */ /* check the existence of the servers array */
require 'config.php'; require 'config.php';
if( ! is_array( $servers ) || count( $servers ) == 0 ) if( ! is_array( $servers ) || count( $servers ) == 0 ) {
{
echo "Your config.php is missing the servers array or the array is empty. "; echo "Your config.php is missing the servers array or the array is empty. ";
echo " Please see the sample file config.php.example "; echo " Please see the sample file config.php.example ";
return false; return false;
@ -172,13 +164,32 @@ function check_config()
foreach( $servers as $i => $server ) foreach( $servers as $i => $server )
if( $server['host'] ) if( $server['host'] )
$count++; $count++;
if( $count == 0 ) if( $count == 0 ) {
{
echo "None of the " . count($servers) . " servers in your \$servers array is "; echo "None of the " . count($servers) . " servers in your \$servers array is ";
echo "active in config.php. phpLDAPadmin cannot proceed util you correct this."; echo "active in config.php. phpLDAPadmin cannot proceed util you correct this.";
return false; return false;
} }
// Check each of the servers in the servers array
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) ) {
// Make sure they specified an auth_type
if( ! isset( $server['auth_type'] ) ) {
echo "Your configuratoin has an error. You omitted the 'auth_type' directive on server number $id";
echo "'auth_type' must be set, and it must be one of 'config' or 'form'.";
return false;
}
// Make sure they specified a correct auth_type
if( $server['auth_type'] != 'config' && $server['auth_type'] != 'form' ) {
echo "You specified an invalid 'auth_type' (" . htmlspecialchars( $server['auth_type'] ) . ") ";
echo "for server number $id in your configuration.";
return false;
}
}
}
return true; return true;
} }

84
lang/Makefile Normal file
View File

@ -0,0 +1,84 @@
#
# This Makefile recodes source lang files into HTML Unicode.
# You should add your encodings to this file. You need to have GNU Recode
# installed.
#
# It is important to fix first and last lines of the file <?php and ?>
# using 'awk'
#
DESTDIR=./recoded
TARGETS=${DESTDIR}/ct.php \
${DESTDIR}/de.php \
${DESTDIR}/en.php \
${DESTDIR}/es.php \
${DESTDIR}/fr.php \
${DESTDIR}/it.php \
${DESTDIR}/nl.php \
${DESTDIR}/ru.php
all: prepare ${TARGETS} syntax
@echo "Setting permissions..."
@chmod 644 ${TARGETS}
@echo "Done!"
syntax:
@for i in ${TARGETS}; do php -l $$i >/dev/null 2>&1 || ( echo "Syntax errors found in $$i!" && exit 1 ); done
prepare:
@which recode >/dev/null 2>&1 || ( echo "You must have GNU 'recode' installed to use this Makefile, but I \
could not find it in your path!" && exit 1 )
@mkdir -p ${DESTDIR}
@chmod 755 ${DESTDIR}
clean:
@echo "Blowing away recoded lang files..."
@rm -vf ${TARGETS}
${DESTDIR}/ct.php: ct.php
@echo "Recoding ct.php..."
@cat ct.php | recode iso-8859-1..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/ct.php
${DESTDIR}/de.php: de.php
@echo "Recoding de.php..."
@cat de.php | recode html..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/de.php
${DESTDIR}/en.php: en.php
@echo "Recoding en.php..."
@cat en.php | recode html..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/en.php
${DESTDIR}/es.php: es.php
@echo "Recoding es.php..."
@cat es.php | recode iso-8859-1..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/es.php
${DESTDIR}/fr.php: fr.php
@echo "Recoding fr.php..."
@cat fr.php | recode html..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/fr.php
${DESTDIR}/it.php: it.php
@echo "Recoding it.php..."
@cat it.php | recode latin2..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/it.php
${DESTDIR}/nl.php: nl.php
@echo "Recoding nl.php..."
@cat nl.php | recode latin1..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/nl.php
${DESTDIR}/ru.php: ru.php
@echo "Recoding ru.php..."
@cat ru.php | recode utf-8..html | \
awk '{ gsub("&gt;",">"); gsub("&lt;","<"); print $0}' \
> ${DESTDIR}/ru.php

337
lang/ct.php Normal file
View File

@ -0,0 +1,337 @@
<?php
// Search form
$lang['simple_search_form_str'] = 'Formulari de recerca sencilla';
$lang['advanced_search_form_str'] = 'Formulari de recerca avançada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objectes els quals';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Abast de la recerca';
$lang['search_ filter'] = 'Filtre de Recerca';
$lang['show_attributes'] = 'Mostrar atributs';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equival';
$lang['starts_with'] = 'comença amb';
$lang['contains'] = 'conté';
$lang['ends_with'] = 'acaba amb';
$lang['sounds_like'] = 'sona com';
// Tree browser
$lang['request_new_feature'] = 'Demanar funcionalitat';
$lang['see_open_requests'] = 'Veure les peticions';
$lang['report_bug'] = 'Reportar una errada';
$lang['see_open_bugs'] = 'Veure les errades';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'sortir';
$lang['create_new'] = 'Crear Nou Objecte';
$lang['view_schema_for'] = 'Veure esquema per a';
$lang['refresh_expanded_containers'] = 'Refrescar tots els contenidors extés per a';
$lang['create_new_entry_on'] = 'Crear nou objecte a';
$lang['view_server_info'] = 'Veure informació del servidor';
$lang['import_from_ldif'] = 'Importar objectes d\'arxiu LDIF';
$lang['logout_of_this_server'] = 'Sortiu d\'aquest servidor';
$lang['logged_in_as'] = 'Conectat com: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No s\'ha pogut determinar l\'arrel del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembla que el servidor LDAP s\'ha configurat per no revelar la seva arrel.';
$lang['please_specify_in_config'] = 'Si us plau especifícala a l\'arxiu config.php';
$lang['create_new_entry_in'] = 'Crear un nou objecte a';
$lang['login_link'] = 'Autenticació...';
// Entry display
$lang['delete_this_entry'] = 'Esborrar aquest objecte';
$lang['delete_this_entry_tooltip'] = 'Es tindrá que confirmar aquesta decisió';
$lang['copy_this_entry'] = 'Copiar aquest objecte';
$lang['copy_this_entry_tooltip'] = 'Copiar aquest objecte per una altra localització, DN nou, o per un altre servidor.';
$lang['export_to_ldif'] = 'Exportar arxiu LDIF';
$lang['export_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte';
$lang['export_subtree_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte i tots els seus objectes fills';
$lang['export_subtree_to_ldif'] = 'Exportar arxiu LDIF de sub-estructura';
$lang['export_to_ldif_mac'] = 'Avanç de línia de Macintosh';
$lang['export_to_ldif_win'] = 'Avanç de línia de Windows';
$lang['export_to_ldif_unix'] = 'Avanç de línia de Unix';
$lang['create_a_child_entry'] = 'Crear objecte com a fill';
$lang['add_a_jpeg_photo'] = 'Afegir jpegPhoto';
$lang['rename_entry'] = 'Renombrar objecte';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Afegir';
$lang['view'] = 'Veure';
$lang['add_new_attribute'] = 'Afegir nou atribut';
$lang['add_new_attribute_tooltip'] = 'Afegir nous atribut/valor a aquest objecte';
$lang['internal_attributes'] = 'Atributs Interns';
$lang['hide_internal_attrs'] = 'ocultar els atributs interns';
$lang['show_internal_attrs'] = 'mostrar els atributs interns';
$lang['internal_attrs_tooltip'] = 'Els atributs fixes automaticament pel servidor';
$lang['entry_attributes'] = 'Atributs de l\'objecte';
$lang['attr_name_tooltip'] = 'Fes click per veure la definició de l\'esquema per tipus d\'atribut \'%s\'';
$lang['click_to_display'] = 'Fer click per a mostrar';
$lang['hidden'] = 'ocultat';
$lang['none'] = 'cap';
$lang['save_changes'] = 'Desar els canvis';
$lang['add_value'] = 'afegir valor';
$lang['add_value_tooltip'] = 'Afegir valor adicional a aquest atribut';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar aquest objecte';
$lang['delete_hint'] = 'Pista: <b>Per a borrar un atribut</b>, buida el formulari de texte i fes click a Desar.';
$lang['attr_schema_hint'] = 'Pista: <b>Per veure l\'esquema d\'un atribut</b>, fes click al nom de l\'atribut.';
$lang['attrs_modified'] = 'Alguns atributs (%s) foren modificats i estan remarcats més abaix.';
$lang['attr_modified'] = 'Un atribut (%s) fore modificat i està remarcat més abaix.';
$lang['viewing_read_only'] = 'Mostrant l\'objecte en el mode de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN d\'aquest objecte';
$lang['no_new_attrs_available'] = 'No hi han atributs nous disponibles per aquest objecte';
$lang['binary_value'] = 'Valor binari';
$lang['add_new_binary_attr'] = 'Afegir valor binari';
$lang['add_new_binary_attr_tooltip'] = 'Afegir atribut/valor binari d\'un arxiu';
$lang['alias_for'] = 'Sinònim per a';
$lang['download_value'] = 'Descarregar valor';
$lang['delete_attribute'] = 'Esborrar atribut';
$lang['true'] = 'veritat';
$lang['false'] = 'fals';
$lang['none_remove_value'] = 'cap, esborrar valor';
$lang['really_delete_attribute'] = 'Esborrar realment l\'atribut?';
// Schema browser
$lang['the_following_objectclasses'] = 'Les següents <b>ObjectClass</b> són presents en aquest servidor LDAP.';
$lang['the_following_attributes'] = 'Les següents <b>attributeTypes</b> són presents en aquest servidor LDAP.';
$lang['the_following_matching'] = 'Les següents <b>matching rules</b> són presents en aquest servidor LDAP.';
$lang['the_following_syntaxes'] = 'Les següents <b>sintaxis</b> són presents en aquest servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atribut';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributs Requerits (MUST)';
$lang['optional_attrs'] = 'Atributs Opcionals (MAY)';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descripció';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Aquesta ObjectClass és <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a aquesta 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';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' esborrada correctament.';
$lang['you_must_specify_a_dn'] = 'Has d\'especificar un DN';
$lang['could_not_delete_entry'] = 'No he pogut esborrar l\'entrada: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nous atributs requerits';
$lang['requires_to_add'] = 'Aquesta acció exigeix que s\'afegeixin';
$lang['new_attributes'] = 'nous atributs';
$lang['new_required_attrs_instructions'] = 'Instruccions: Per afegir aquesta ObjectClass a aquest objecte, s\'ha d\'especificar';
$lang['that_this_oclass_requires'] = 'que aquest ObjectClass requereix. Es pot fer amb aquest formulari.';
$lang['add_oclass_and_attrs'] = 'Afegir ObjectClass i Atributs';
// General
$lang['chooser_link_tooltip'] = 'Fer click per seleccionar un objecte gràficament';
$lang['no_updates_in_read_only_mode'] = 'No es pot modificar l\'objecte si el servidor està operant en mode inalterable.';
$lang['bad_server_id'] = 'L\'identificador de servidor està malament';
$lang['not_enough_login_info'] = 'No tinc suficient informació per conectar al servidor. Si us plau configurar correctament l\'arxiu config.php';
$lang['could_not_connect'] = 'No s\'ha pogut conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No s\'ha pogut fer l\'operació del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'L\'identificador del servidor està malament: ';
$lang['success'] = 'Exit';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscant a: ';
$lang['missing_server_id_in_query_string'] = 'No està present l\'identificador del servidor a la URL';
$lang['missing_dn_in_query_string'] = 'No està present el DN a la URL';
$lang['back_up_p'] = 'Tornar a...';
$lang['no_entries'] = 'no hi han entrades';
$lang['not_logged_in'] = 'No estàs autenticat';
$lang['could_not_det_base_dn'] = 'No he pogut determinar la base DN';
// Add value form
$lang['add_new'] = 'Afegir';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['distinguished_name'] = 'Nom distinguit';
$lang['current_list_of'] = 'La llista actual de';
$lang['values_for_attribute'] = 'valors per a l\'atribut';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurat una regla \'EQUALITY\' al servidor LDAP, rebràs un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveïr el valor per afegir: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que es requereixi afegir nous atributs per satisfer els requisits d\'aquesta ObjectClass';
$lang['syntax'] = 'Sintaxi';
//copy.php
$lang['copy_server_read_only'] = 'No es poden realitzar les modificacions si el servidor està operant en mode inalterable';
$lang['copy_dest_dn_blank'] = 'No se emplenat el formulari de DN.';
$lang['copy_dest_already_exists'] = 'L\'entrada de destí (%s) encara existeix.';
$lang['copy_dest_container_does_not_exist'] = 'El contenidor de destí (%s) no existeix.';
$lang['copy_source_dest_dn_same'] = 'El DN de la font i el DN de destí son els mateixos.';
$lang['copy_copying'] = 'Copiant ';
$lang['copy_recursive_copy_progress'] = 'El progrés de la còpia recurrent';
$lang['copy_building_snapshot'] = 'Construïnt la \'foto\' de l\'arbre per a copiar... ';
$lang['copy_successful_like_to'] = 'Exit! Desitges ';
$lang['copy_view_new_entry'] = 'Veure el nou objecte?';
$lang['copy_failed'] = 'Fallida al copiar DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Fent anar l\'arxiu per defecte.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objecte nou';
$lang['copyf_dest_dn'] = 'DN de destí';
$lang['copyf_dest_dn_tooltip'] = 'El DN sencer de la nova entrada a ser creada quan es copii l\'entrada font';
$lang['copyf_dest_server'] = 'Servidor de destí';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidor funciona solsament si no hi han violacions de l\'esquema.';
$lang['copyf_recursive_copy'] = 'Esborrar tots els fills recurrentment també?';
//create.php
$lang['create_required_attribute'] = 'T\'has deixar el valor en blanc de l\'atribut requerit <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigint';
$lang['create_here'] = 'aquí';
$lang['create_could_not_add'] = 'No he pogut afegir l\'objecte al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objecte';
$lang['createf_choose_temp'] = 'Escull una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla per al procès de creació';
$lang['createf_proceed'] = 'Procedir';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No s\'ha especificat cap plantilla a les variables del POST.';
$lang['ctemplate_config_handler'] = 'La teva configuració especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'per aquesta plantilla. Però, aquest manejador no existeix al directori \'plantilla/creació\'.';
// search.php
$lang['you_have_not_logged_into_server'] = 'Encara no t\'has autenticat al servidor selectionat, no pots fer cap recerca.';
$lang['click_to_go_to_login_form'] = 'Clica aquí per anar al formulari d\'autenticació';
$lang['unrecognized_criteria_option'] = 'Opció de criteri desconeguda: ';
$lang['if_you_want_to_add_criteria'] = 'Si vols afegir el teu propi criteri a la llista. Estigues segur d\'editar search.php per manejar-lo. Sortint.';
$lang['entries_found'] = 'Entrades trobades: ';
$lang['filter_performed'] = 'Filtre realitzat: ';
$lang['search_duration'] = 'Recerca realitzada per phpLDAPadmin a';
$lang['seconds'] = 'segons';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'L\'abast en el que buscar';
$lang['scope_sub'] = 'Sub (tot el sub-arbre)';
$lang['scope_one'] = 'Un (un nivell per d\'avall de la base)';
$lang['scope_base'] = 'Base (sols base dn)';
$lang['standard_ldap_search_filter'] = 'Filtre de recerca estàndar de LDAP. Exemple: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre de recerca';
$lang['list_of_attrs_to_display_in_results'] = 'Una llista d\'atributs per mostrar als resultats (separats per comes)';
$lang['show_attributes'] = 'Mostrar atributs';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entrades les quals:';
$lang['equals'] = 'sigui igual';
$lang['starts with'] = 'comenci amb';
$lang['contains'] = 'contingui';
$lang['ends with'] = 'acabi amb';
$lang['sounds like'] = 'soni com';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No s\'ha pogut treure informació LDAP del servidor';
$lang['server_info_for'] = 'Informació del servidor per a: ';
$lang['server_reports_following'] = 'El servidor mostra la següent informació sobre ell mateix';
$lang['nothing_to_report'] = 'Aquest servidor no té res a mostrar.';
//update.php
$lang['update_array_malformed'] = 'l\'update_array està malformat. Aixó podria ser una errada del phpLDAPadmin. Si us plau reportala.';
$lang['could_not_perform_ldap_modify'] = 'No he pogut executar l\'operació ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Vols fer aquests canvis?';
$lang['attribute'] = 'Atribut';
$lang['old_value'] = 'Valor vell';
$lang['new_value'] = 'Valor nou';
$lang['attr_deleted'] = '[atribut esborrat]';
$lang['commit'] = 'Cometre';
$lang['cancel'] = 'Cancel.lar';
$lang['you_made_no_changes'] = 'No has fet cap canvi';
$lang['go_back'] = 'Tornar enrera';
// welcome.php
$lang['welcome_note'] = 'Fes anar el menú de l\'esquerra per a navegar';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom d\'arxiu insegur: ';
$lang['no_such_file'] = 'Arxiu no existent: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activat els auto_uid_numbers per <b>%s</b> a la teva configuració,
pero no has especificat l\'auto_uid_number_mechanism. Si us plau soluciona
aquest problema.';
$lang['uidpool_not_set'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>uidpool</tt>
a la teva configuració per al servidor <b>%s</b>, pero no has especificat el
audo_uid_number_uid_pool_dn. Si us plau especifica\'l avans de procedir.';
$lang['uidpool_not_exist'] = 'Sembla ser que el uidPool que has especificat a la teva configuració (<tt>%s</tt>)
no existeix.';
$lang['specified_uidpool'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>search</tt> a la teva
configuració per al servidor <b>%s</b>, pero no has especificat el
<tt>auto_uid_number_search_base</tt>. Si us plau especifica\'l avans de procedir.';
$lang['auto_uid_invalid_value'] = 'Has especificat un valor no vàlid per a l\'auto_uid_number_mechanism (<tt>%s</tt>)
a la teva configuració. Sols <tt>uidpool</tt> i <tt>search</tt> son vàlids.
Si us plau soluciona aquest problema.';
$lang['error_auth_type_config'] = 'Error: Tens un error al teu arxiu de configuració. Els dos únics valors acceptats per
\'auth_type\' a la secció $servers son \'config\' i \'form\'. Tu has ficat \'%s\',
el qual no està acceptat. ';
$lang['php_install_not_supports_tls'] = 'La teva instalació de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he pogut iniciar el TLS.<br />Revisa la teva configuració del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tens un error a l\'arxiu de configuració. auth_type de %s no es vàlid.';
$lang['ldap_said'] = '<b>LDAP diguè</b>: %s<br /><br />';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['delete_photo'] = 'Esborrar foto';
$lang['install_not_support_blowfish'] = 'La teva instalació de PHP no soporta el tipus d\'encriptació blowfish.';
$lang['install_no_mash'] = 'La teva instalació de PHP no té la funció mhash(). No puc fer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto conté errors<br />';
$lang['ferror_number'] = '<b>Error número</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripció</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error número</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripció</b>: (no hi ha descripció)<br />';
$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho és, si us plau <a href=\'%s\'>diguen\'s-ho</a>.';
$lang['ferror_unrecognized_num'] = 'Número d\'error desconegut: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has trobat un error fatal del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Arxiu:</td>
<td><b>%s</b> línia <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>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Envía aquesta errada fent click aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicitats! Has trobat una errada al phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivell:</td><td><b>%s</b></td></tr>
<tr><td>Arxiu:</td><td><b>%s</b></td></tr>
<tr><td>Línia:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versió PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versió 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>
</table>
<br />
Si us plau envía aquesta errada fent click abaix!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar arxiu LDIF';
$lang['select_ldif_file'] = 'Selecciona un arxiu LDIF:';
$lang['select_ldif_file_proceed'] = 'Procedir &gt;&gt;';
//ldif_import
$lang['add_action'] = 'Afegint...';
$lang['delete_action'] = 'Esborrant...';
$lang['rename_action'] = 'Renombrant...';
$lang['modify_action'] = 'Modificant...';
$lang['failed'] = 'fallat';
$lang['ldif_parse_error'] = 'Error de parsejat LDIF';
$lang['ldif_could_not_add_object'] = 'No he pogut afegir l\'objecte:';
$lang['ldif_could_not_rename_object'] = 'No he pogut renombrar l\'objecte:';
$lang['ldif_could_not_delete_object'] = 'No he pogut esborrar l\'objecte:';
$lang['ldif_could_not_modify_object'] = 'No he pogut modificar l\'objecte:';
$lang['ldif_line_number'] = 'Línia Número:';
$lang['ldif_line'] = 'Línia:';
?>

View File

@ -1,6 +1,10 @@
<?php <?php
$lang = array(); /*
* Übersetzung von Marius Rieder <marius.rieder@bluewin.ch>
* Uwe Ebel
* Modifikationen von Dieter Kluenter <hdk@dkluenter.de>
*/
// Search form // Search form
$lang['simple_search_form_str'] = 'Einfache Suche';//'Simple Search Form'; $lang['simple_search_form_str'] = 'Einfache Suche';//'Simple Search Form';
@ -8,13 +12,13 @@ $lang['advanced_search_form_str'] = 'Experten Suche';//'Advanced Search Form';
$lang['server'] = 'Server';//'Server'; $lang['server'] = 'Server';//'Server';
$lang['search_for_entries_whose'] = 'Suche nach Eintr&auml;gen die';//'Search for entries whose'; $lang['search_for_entries_whose'] = 'Suche nach Eintr&auml;gen die';//'Search for entries whose';
$lang['base_dn'] = 'Base DN';//'Base DN'; $lang['base_dn'] = 'Base DN';//'Base DN';
$lang['search_scope'] = 'Suchart';//'Search Scope'; $lang['search_scope'] = 'Suchbereich';//'Search Scope';
$lang['search_ filter'] = 'Suchfilter';//'Search Filter'; $lang['search_ filter'] = 'Suchfilter';//'Search Filter';
$lang['show_attributes'] = 'Zeige Attribute';//'Show Attributtes'; $lang['show_attributes'] = 'Zeige Attribute';//'Show Attributtes';
$lang['Search'] = 'Suchen';//'Search'; $lang['Search'] = 'Suchen';//'Search';
$lang['equals'] = 'gleich';//'equals'; $lang['equals'] = 'gleich';//'equals';
$lang['starts_with'] = 'beginnt mit';//'starts with'; $lang['starts_with'] = 'beginnt mit';//'starts with';
$lang['contains'] = 'enth&auml;';//'contains'; $lang['contains'] = 'enth&auml;lt';//'contains';
$lang['ends_with'] = 'endet mit';//'ends with'; $lang['ends_with'] = 'endet mit';//'ends with';
$lang['sounds_like'] = '&auml;nlich wie';//'sounds like'; $lang['sounds_like'] = '&auml;nlich wie';//'sounds like';
@ -23,21 +27,33 @@ $lang['request_new_feature'] = 'Anfragen von neuen M&ouml;glichkeiten';//'Reques
$lang['see_open_requests'] = 'Siehe offene Anfragen';//'see open requests'; $lang['see_open_requests'] = 'Siehe offene Anfragen';//'see open requests';
$lang['report_bug'] = 'Einen Fehler berichten';//'Report a bug'; $lang['report_bug'] = 'Einen Fehler berichten';//'Report a bug';
$lang['see_open_bugs'] = 'Siehe offene Fehler';//'see open bugs'; $lang['see_open_bugs'] = 'Siehe offene Fehler';//'see open bugs';
$lang['schema'] = 'schema';//'schema'; $lang['schema'] = 'Schema';//'schema';
$lang['search'] = 'suche';//'search'; $lang['search'] = 'suche';//'search';
$lang['refresh'] = 'aktualisieren';//'refresh'; $lang['refresh'] = 'aktualisieren';//'refresh';
$lang['create'] = 'Neu';//'create'; $lang['create'] = 'neu';//'create';
$lang['info'] = 'info';//'info'; $lang['info'] = 'Info';//'info';
$lang['import'] = 'import';//'import'; $lang['import'] = 'Import';//'import';
$lang['logout'] = 'logout';// 'Abmelden' 'logout'; $lang['logout'] = 'abmelden';//'logout';
$lang['create_new'] = 'Neuen erzeugen';//'Create New'; $lang['create_new'] = 'Neuen Eintrag erzeugen';//'Create New';
$lang['view_schema_for'] = 'Zeige Schema f&uuml;r';//'View schema for';
$lang['refresh_expanded_containers'] = 'Aktualisiere alle ge&ouml;ffneten Container von';//'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Erzeuge einen neuen Eintrag auf';//'Create a new entry on';
$lang['view_server_info'] = 'Zeige Server Informationen';//'View server-supplied information';
$lang['import_from_ldif'] = 'Importiere Eintr&auml;ge von einer LDIF-Datei';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Von diesem Server abmelden';//'Logout of this server';
$lang['logged_in_as'] = 'Angemeldet als: ';//'Logged in as: ';
$lang['read_only'] = 'nur lesen';//'read only';
$lang['could_not_determine_root'] = 'Konnte die Basis ihres LDAP Verzeichnises nicht ermitteln';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'Es scheint das ihr LDAP Server nicht dazu konfiguriert wurde seine Basis bekanntzugeben';//'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Bitte in config.php angeben';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Neuen Eintrag erzeugen auf';//'Create a new entry in';
$lang['login_link'] = 'Anmelden...';//'Login...';
// Entry display // Entry display
$lang['delete_this_entry'] = 'Diesen Eintrag l&ouml;schen';//'Delete this entry'; $lang['delete_this_entry'] = 'Diesen Eintrag l&ouml;schen';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision'; $lang['delete_this_entry_tooltip'] = 'F&uml;r diese Entscheidung wird nochmals nachgefragt.';//'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Diesen Eintrag kopieren';//'Copy this entry'; $lang['copy_this_entry'] = 'Diesen Eintrag kopieren';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server'; $lang['copy_this_entry_tooltip'] = 'Kopiere diese Object an eine anderen Ort: ein neuer DN oder einen anderen Server.';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'Exportieren nach LDIF';//'Export to LDIF'; $lang['export_to_ldif'] = 'Exportieren nach LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'Speichere einen LDIF-Abzug diese Objektes';//'Save an LDIF dump of this object'; $lang['export_to_ldif_tooltip'] = 'Speichere einen LDIF-Abzug diese Objektes';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'Speicher eine LDIF-Abzug ab diesem Objekt und alle seine Untereintr&auml;ge';//'Save an LDIF dump of this object and all of its children'; $lang['export_subtree_to_ldif_tooltip'] = 'Speicher eine LDIF-Abzug ab diesem Objekt und alle seine Untereintr&auml;ge';//'Save an LDIF dump of this object and all of its children';
@ -51,28 +67,32 @@ $lang['rename_entry'] = 'Eintrag umbenennen';//'Rename Entry';
$lang['rename'] = 'Umbenennen';//'Rename'; $lang['rename'] = 'Umbenennen';//'Rename';
$lang['add'] = 'Hinzuf&uuml;gen';//'Add'; $lang['add'] = 'Hinzuf&uuml;gen';//'Add';
$lang['view'] = 'Ansehen';//'View'; $lang['view'] = 'Ansehen';//'View';
$lang['add_new_attribute'] = 'Neues Attribut hinz&uuml;gen';//'Add New Attribute'; $lang['add_new_attribute'] = 'Neues Attribut hinzuf&uuml;gen';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'F&uuml;ge ein neues Attribut/Wert zu diesem Eintrag hinzu';// 'Add a new attribute/value to this entry'; $lang['add_new_attribute_tooltip'] = 'F&uuml;ge ein neues Attribut/Wert zu diesem Eintrag hinzu';// 'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'Interne Attribute';//'Internal Attributes'; $lang['internal_attributes'] = 'Interne Attribute';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'Verdecke interne Attribute';//'Hide internal attributes'; $lang['hide_internal_attrs'] = 'Verdecke interne Attribute';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'Zeige interne Attribute';//'Show internal attributes'; $lang['show_internal_attrs'] = 'Zeige interne Attribute';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'Attribute werden automatisch vom System erzeugt.';//'Attributes set automatically by the system'; $lang['internal_attrs_tooltip'] = 'Attribute werden automatisch vom System erzeugt.';//'Attributes set automatically by the system';
$lang['entry_attributes'] = 'Attribute des Eintrages';//'Entry Attributes'; $lang['entry_attributes'] = 'Attribute des Eintrages';//'Entry Attributes';
$lang['attr_name_tooltip'] = 'Klicken sie um die Schemadefinition f&uuml;r den Attributtyp \'%s\' anzuzeigen.';//'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'Klicken zum Ansehen';//'click to display'; $lang['click_to_display'] = 'Klicken zum Ansehen';//'click to display';
$lang['hidden'] = 'verdeckt';//'hidden'; $lang['hidden'] = 'verdeckt';//'hidden';
$lang['none'] = 'Keine';//'none'; $lang['none'] = 'Keine';//'none';
$lang['save_changes'] = '&Auml;nderungen speichern';//'Save Changes'; $lang['save_changes'] = '&Auml;nderungen speichern';//'Save Changes';
$lang['add_value'] = 'Wert hinzuf&uuml;gen';//'add value'; $lang['add_value'] = 'Wert hinzuf&uuml;gen';//'add value';
$lang['add_value_tooltip'] = 'F&uuml;g einen weiteren Wert zu dem Attribut hinzu';//'Add an additional value to this attribute'; $lang['add_value_tooltip'] = 'F&uuml;ge einen weiteren Wert dem Attribut hinzu';//'Add an additional value to this attribute';
//$lang['refresh'] = 'Refresh'; $lang['refresh_entry'] = 'Auffrischen';// 'Refresh';
$lang['refresh_this_entry'] = 'Aktualisiere den Entrag';//'Refresh this entry'; $lang['refresh_this_entry'] = 'Aktualisiere den Entrag';//'Refresh this entry';
$lang['delete_hint'] = 'Hinweis: Um ein Attribute zu l&ouml;schen, leeren Sie den Inhalt des Wertes.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.'; $lang['delete_hint'] = 'Hinweis: Um ein Attribut zu l&ouml;schen, leeren Sie den Inhalt des Wertes.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tipp:Um das Schema f&uuml;r ein Attribut anzusehen, gen&uuml;gt ein klick auf den Attributnamen';//'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$lang['attrs_modified'] = 'Einige Attribute (%s) wurden ver&auml;ndert und sind hervorgehoben.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'Ein Attribut (%s) wurde ver&auml;ndert und ist hervorgehoben.';//'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Zeige Eintrag im Nurlesemodus';//'Viewing entry in read-only mode.'; $lang['viewing_read_only'] = 'Zeige Eintrag im Nurlesemodus';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = '&Auml;ndere den RDN des Eintrages';//'Change this entry\'s RDN'; $lang['change_entry_rdn'] = '&Auml;ndere den RDN des Eintrages';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'Keine weiteren Attribute verf&uuml;gbar f&uuml;r diesen Eintrag';//'no new attributes available for this entry'; $lang['no_new_attrs_available'] = 'Keine weiteren Attribute verf&uuml;gbar f&uuml;r diesen Eintrag';//'no new attributes available for this entry';
$lang['binary_value'] = 'Bin&auml;rwert';//'Binary value'; $lang['binary_value'] = 'Bin&auml;rwert';//'Binary value';
$lang['add_new_binary_attr'] = 'Neuen Bin&auml;rwert hinzuf&uuml;gen';//'Add New Binary Attribute'; $lang['add_new_binary_attr'] = 'Neuen Bin&auml;rwert hinzuf&uuml;gen';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'ABCDEFGH';//'Add a new binary attribute/value from a file'; $lang['add_new_binary_attr_tooltip'] = 'F&uuml;ge einen neuen Bin&auml;wert (Attribut/Wert) aus einer Datei hinzu.';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Alias f&uuml;r';//'Alias for'; $lang['alias_for'] = 'Alias f&uuml;r';//'Alias for';
$lang['download_value'] = 'Wert herunterladen';//'download value'; $lang['download_value'] = 'Wert herunterladen';//'download value';
$lang['delete_attribute'] = 'L&ouml;sche Attribut';//'delete attribute'; $lang['delete_attribute'] = 'L&ouml;sche Attribut';//'delete attribute';
@ -82,7 +102,7 @@ $lang['none_remove_value'] = 'nichts, entferne den Wert';//?? //'none, remove va
$lang['really_delete_attribute'] = 'L&ouml;sche das Attribut wirklich';//'Really delete attribute'; $lang['really_delete_attribute'] = 'L&ouml;sche das Attribut wirklich';//'Really delete attribute';
// Schema browser // Schema browser
$lang['the_following_objectclasses'] = 'Die folgenden objectClass werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>objectClasses</b> are supported by this LDAP server.'; $lang['the_following_objectclasses'] = 'Die folgenden Objektklassen werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Die folgenden Attribute werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>attributeTypes</b> are supported by this LDAP server.'; $lang['the_following_attributes'] = 'Die folgenden Attribute werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Die folgenden Suchregeln werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>matching rules</b> are supported by this LDAP server.'; $lang['the_following_matching'] = 'Die folgenden Suchregeln werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Die folgenden Syntaxe werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>syntaxes</b> are supported by this LDAP server.'; $lang['the_following_syntaxes'] = 'Die folgenden Syntaxe werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
@ -93,11 +113,214 @@ $lang['required_attrs'] = 'Notwendige Attribute';//'Required Attributes';
$lang['optional_attrs'] = 'Optionale Attribute';//'Optional Attributes'; $lang['optional_attrs'] = 'Optionale Attribute';//'Optional Attributes';
$lang['OID'] = 'OID';//'OID'; $lang['OID'] = 'OID';//'OID';
$lang['desc'] = 'Beschreibung';//'Description'; $lang['desc'] = 'Beschreibung';//'Description';
$lang['name'] = 'Name';//'Name';
$lang['is_obsolete'] = 'Diese objectClass ist veraltet';//'This objectClass is <b>obsolete</b>'; $lang['is_obsolete'] = 'Diese objectClass ist veraltet';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Abgeleitet von';//'Inherits'; $lang['inherits'] = 'Abgeleitet von';//'Inherits';
$lang['jump_to_this_oclass'] = 'Gehe zur objectClass Definition';//'Jump to this objectClass definition'; $lang['jump_to_this_oclass'] = 'Gehe zur objectClass Definition';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Treffer-Regel OID';//'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';//'Syntax OID';
$lang['not_applicable'] = 'keine Angabe';//'not applicable';
$lang['not_specified'] = 'nicht spezifiziert';//not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Der Eintrag \'%s\' wurde erfolgreich gel&ouml;scht.';//'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'Ein DN muss angegeben werden.';//'You must specify a DN';
$lang['could_not_delete_entry'] = 'Konnte den Eintrag nicht l&ouml;schen: %s';//'Could not delete the entry: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Neue ben&ouml;tigte Attribute';//'New Required Attributes';
$lang['requires_to_add'] = 'Diese Aktion zwingt sie folgendes hinzuzuf&uuml;gen';//'This action requires you to add';
$lang['new_attributes'] = 'neue Attribute';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Anleitung: Um diese objectClass hinzuzuf&uml;gen m&uuml;ssen sie ';//'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'die von dieser objectClass ben&ouml;tigt werden. Sie k&ouml;nnen dies in diesem Formular machen.';//'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'ObjectClass und Attribute hinzuf&uuml;gen';//'Add ObjectClass and Attributes';
// General // General
$lang['chooser_link_tooltip'] = "Click to popup a dialog to select an entry (DN) graphically"; $lang['chooser_link_tooltip'] = 'Klicken um einen Eintrag (DN) grafisch auszuw&auml;hlen.';//"Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'Sie k&ouml;nnen keine Aktualisierungen durchf&uuml;hren w&auml;hrend der Server sich im \'nur lese\'-modus befindet';//'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'Ung&uuml;ltige Server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Nicht gen&uuml;gend Angaben zur Anmeldung am Server. Bitte &uuml;berpr&uuml;fen sie ihre Konfiguration';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Konnte keine Verbindung zum LDAP Server herstellen.';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Kann keine \'ldap_mod_add\' Operationen durchf&uuml;hren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Ung&uuml;ltige Server ID:';//"Bad server_id: ';
$lang['success'] = 'Erfolgreich';//"Success';
$lang['server_colon_pare'] = 'Server';//"Server: ';
$lang['look_in'] = 'Sehe nach in:';//"Looking in: ';
$lang['missing_server_id_in_query_string'] = 'Keine Server ID in der Anfrage angegeben';//'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'Kein DN in der Anfrage angegeben';//'No DN specified in query string!';
$lang['back_up_p'] = 'Backup...';//"Back Up...';
$lang['no_entries'] = 'Keine Eintr&auml;ge';//"no entries';
$lang['not_logged_in'] = 'Nicht eingeloggt';//"Not logged in';
$lang['could_not_det_base_dn'] = 'Konnten Basis-DN nicht ermitteln.';//"Could not determine base DN';
// Add value form
$lang['add_new'] = 'Neu hinzuf&uuml;gen';//'Add new';
$lang['value_to'] = 'Wert auf';//'value to';
$lang['server'] = 'Server';//'Server';
//also used in copy_form.php
$lang['distinguished_name'] = 'Distinguished Name (eindeutiger Name)';// 'Distinguished Name';
$lang['current_list_of'] = 'Aktuelle Liste von';//'Current list of';
$lang['values_for_attribute'] = 'Werte des Attributes';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Info: Sie werden einen "inappropriate matching" Fehler erhalten, falls sie nicht<br />'; //'Note: You will get an "inappropriate matching" error if you have not<br />' .
'eine <tt>EQUALITY</tt> Regel f&uuml;r dieses Attribut auf ihren LDAP Server eingerichtet haben.';//'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Geben sie den Wert ein den sie hinzuf&uuml;gen m&ouml;chten:';//'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Info: Sie werden gegebenenfalles gezwungen sein neue Attribute hinzuzuf&uuml;gen.';//'Note: you may be required to enter new attributes<br />that this objectClass requires.';
$lang['syntax'] = 'Syntax';//'Syntax';
//Copy.php
$lang['copy_server_read_only'] = 'Sie k&ouml;nnen keine Aktualisierungen durchf&uuml;hren w&auml;hrend der Server sich im \'nur lese\'-modus befindet';//"You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'Sie haben kein Ziel DN angegeben';//"You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'Der Zieleintrag (%s) existiert bereits.';//"The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'Der Zielcontainer (%s) existiert nicht.';//'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'Ursprung DN und Ziel DN sind identisch';//"The source and destination DN are the same.';
$lang['copy_copying'] = 'Kopieren';//"Copying ';
$lang['copy_recursive_copy_progress'] = 'Rekursives Kopieren im Gange';//"Recursive copy progress';
$lang['copy_building_snapshot'] = 'Erzeuge Speicherauszug des zu kopierenden Verzeichnisses';//"Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Kopieren erfolgreich! Wollen sie den';//"Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'neuen Eintrag ansehen';//"view the new entry';
$lang['copy_failed'] = 'Kopieren des DN fehlgeschlagen: ';//'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warnung: Template Datei nicht gefunden';//'Warning: missing template file, ';
$lang['using_default'] = 'Standardeinstellung verwenden';//'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopiere';//"Copy ';
$lang['copyf_to_new_object'] = 'in ein neues Objekt';//"to a new object';
$lang['copyf_dest_dn'] = 'Ziel DN';//"Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'Der komplette DN des Eintrages der beim Kopieren erzeugt wird.';//'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'Zielserver';//"Destination Server';
$lang['copyf_note'] = 'Info: Kopieren zwischen unterschiedlichen Servern funktioniert nur wenn keine Unvereinbarkeiten im Schema auftreten';//"Note: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Rekursiv kopiert auch alle Unterobjekte';//"Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'Fehler, sie haben einen Wert f&uuml;r ein ben&ouml;tigtes Attribut frei gelassen.';//"Error, you left the value blank for required attribute ';
$lang['create_redirecting'] = 'Weiterleitung';//"Redirecting';
$lang['create_here'] = 'hier';//"here';
$lang['create_could_not_add'] = 'Konnte das Objekt dem LDAP-Server nicht hinzuf&uuml;gen.';//"Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Erzeuge einen neuen Eintag';//"Create Object';
$lang['createf_choose_temp'] = 'Vorlage w&auml;hlen';//"Choose a template';
$lang['createf_select_temp'] = 'W&auml;hlen sie eine Vorlage f&uuml;r das Objekt';//"Select a template for the creation process';
$lang['createf_proceed'] = 'Weiter';//"Proceed &gt;&gt;';
//creation_template.php
$lang['ctemplate_on_server'] = 'Auf dem Server';//"On server';
$lang['ctemplate_no_template'] = 'Keine Vorlage angegeben in den POST Variabeln';//"No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'Ihre Konfiguration spezifiziert f&uuml;r diese Vorlage die Routine';//"Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = '. Diese Routine existiert nicht im \'templates/creation\' Verzeichnis';//"for this template. But, this handler does not exist in the 'templates/creation' directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'Sie haben sich am ausgew&auml;hlten Server nicht angemeldet. Sie k&oouml;nnen keine Suche durchf&uuml;hren.';//'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Klicken sie hier um zur Anmeldeseite zu gelangen';//'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unbekannte Option';// 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Falls eigene Auswahlkriterien hinzugef&uuml;gt werden sollen, muss \'search.php\' editiert werden';//'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Gefundene Eintr&auml;ge: ';//'Entries found: ';
$lang['filter_performed'] = 'Angewanter Filter: ';//'Filter performed: ';
$lang['search_duration'] = 'Suche durch phpLDAPadmin ausgef&uuml;hrt in';//'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'Sekunden';//'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Bereich der durchsucht wird.';//'The scope in which to search';
$lang['scope_sub'] = 'Sub (Suchbase und alle Unterverzeichnisebenen)';//'Sub (entire subtree)';
$lang['scope_one'] = 'One (Suchbasis und eine Unterverzeichnisebene)';//'One (one level beneath base)';
$lang['scope_base'] = 'Base (Nur Suchbasis)';//'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP Suchfilter. Bsp.: (&(sn=Smith)(givenname=David))';//'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Suchfilter';//'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'Kommaseparierte Liste der anzuzeigenden Attribute.';//'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Zeige Attribute';//'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Suche nach Eintr&auml;gen welche:';//'Search for entries whose:';
$lang['equals'] = 'entspricht';//'equals';
$lang['starts with'] = 'beginnt mit';//'starts with';
$lang['contains'] = 'enth&auml;lt';//'contains';
$lang['ends with'] = 'endet auf';//'ends with';
$lang['sounds like'] = 'klingt wie';//'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Konnte keine LDAP Informationen vom Server empfangen';//'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Serverinformationen f&uuml;r: ';//'Server info for: ';
$lang['server_reports_following'] = 'Der Server meldete die folgenden Informationen &uuml;ber sich';//'Server reports the following information about itself';
$lang['nothing_to_report'] = 'Der Server hat keine Informationen gemeldet';//'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'Das \'update_array\' wird falsch dargestellt. Dies k&ouml;nnte ein phpLDAPadmin Fehler sein. Bitte Berichten sie uns davon.';//'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Konnte die \'ldap_modify\' Operation nicht ausf&uuml;hren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Wollen sie diese &Auml;nderungen &uuml;bernehmen?';//'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';//'Attribute';
$lang['old_value'] = 'Alter Wert';//'Old Value';
$lang['new_value'] = 'Neuer Wert';//'New Value';
$lang['attr_deleted'] = '[Wert gel&ouml;scht]';//'[attribute deleted]';
$lang['commit'] = 'Anwenden';//'Commit';
$lang['cancel'] = 'Verwerfen';//'Cancel';
$lang['you_made_no_changes'] = 'Sie haben keine &Auml;nderungen vorgenommen.';//'You made no changes';
$lang['go_back'] = 'Zur&uuml;ck';//'Go back';
// welcome.php
$lang['welcome_note'] = 'Ben&uuml;tzen sie das Menu auf der linken Seite zur Navigation.';//'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsicherer Dateiname:';//'Unsafe file name: ';
$lang['no_such_file'] = 'Keine Datei unter diesem Namen';//'No such file: ';
//function.php
$lang['auto_update_not_setup'] = '<tt>auto_uid_numbers</tt> wurde in der Konfiguration (<b>%s</b> aktiviert, aber der Mechanismus (auto_uid_number_mechanism) nicht. Bitte diese Problem korrigieren.';//"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'] = 'Der Mechanismus <tt>auto_uid_number_mechanism</tt> ist als <tt>uidpool</tt> f&uuml;r den Server <b>%s</b> festgelegt, jedoch wurde nicht der <tt>auto_uid_number_uid_pool_dn</tt> festgelegt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt> 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['uidpool_not_exist'] = 'Es scheint so, dass der <tt>uidPool</tt> - der in der Konfiguration festgelegt ist - nicht vorhanden ist.';//"It appears that the uidPool you specified in your configuration (<tt>%s</tt>) does not exist.';
$lang['specified_uidpool'] = 'Der <tt>auto_uid_number_mechanism</tt> wurde auf <tt>search</tt> in der Konfiguration des Servers <b>%s</b> festgelegt, aber es wurde der Wert f&uuml; <tt>auto_uid_number_search_base</tt> nicht gesetzt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your configuration for server <b>%s</b>, but you did not specify the <tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'Es wurde ein ung&uuml;ltiger Wert f&uuml;r <tt>auto_uid_number_mechanism</tt>(%s) festgelegt. G&uuml;ltig sind nur die Werte <tt>uidpool</tt> und <tt>search</tt>. Bitte den Fehler korrigieren. ';//"You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>) in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid. Please correct this problem.';
$lang['error_auth_type_config'] = 'Fehler: Ein Fehler ist in der Konfiguration (config.php) aufgetreten. Die einzigen beiden erlaubten Werte im Konfigurationsteil \'auth_type\' zu einem LDAP-Server ist <b>\'config\'</b> oder <b>\'form\'</b>. Eingetragen ist aber <b>%s</b>, was nicht erlaubt ist.';//"Error: You have an error in your config file. The only two allowed values for 'auth_type' in the $servers section are 'config' and 'form'. You entered '%s', which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Die verwendete PHP-Version unterst&uuml;tzt kein TLS (verschl&uuml;sselte Verbindung).';//"Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'TLS konnte nicht gestartet werden.<br/>Bitte die LDAP-Server-Konfiguration &uuml;berpr&uuml;fen.';//"Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'Die Konfigurationsdatei enth&auml;lt einen Fehler. Der Eintrag f&uuml;r \'auth_type\' %s ist nicht g&uuml,ltig';// 'You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP meldet</b>: %s<br/><br/>';//"<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Fehler';//"Error';
$lang['fbrowse'] = '&Uuml;berfliegen';//"browse';
$lang['delete_photo'] = 'L&ouml;sche Foto';//"Delete Photo';
$lang['install_not_support_blowfish'] = 'Die verwendete PHP-Version unterst&uuml;tzt keine Blowfish Verschl&uuml;sselung.';//"Your PHP install does not support blowfish encryption.';
$lang['install_no_mash'] = 'Die verwendete PHP-Version unterst&uuml;tzt nicht die Funktion mhash(), daher kann kein SHA Hash verwendet werden.';// "Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'Die Bilddatei enth&auml;lt Fehler';//"jpegPhoto contains errors<br />';
$lang['ferror_number'] = '<b>Fehlernummer:</b> %s<small>(%s)</small><br/><br/>';//"<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] ='<b>Beschreibung:</b> %s<br/><br/>';// "<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Fehlernummer:</b>%s<br/><br/>';//"<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Beschreibung:</b> (keine Beschreibung verf&uuml;gbar)<br/>';//"<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Ist das ein phpLDAPadmin Fehler? Wenn dies so ist, dann bitte <a href=\'%s\'>dar&uuml;ber berichten</a>';//"Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Unbekannte Fehlernummer:';//"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>Ein nicht fataler Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</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\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"<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'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Gratulation, einen Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</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\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"Congratulations! You found a bug in phpLDAPadmin.<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'] = 'Importiere LDIF Datei';//'Import LDIF File';
$lang['select_ldif_file'] = 'LDIF Datei ausw&auml;hlen';//'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Ausf&uuml;hren &gt;&gt;';//'Proceed &gt;&gt;';
//ldif_import
$lang['add_action'] = 'Hinzuf&uuml;gen...';//'Adding...';
$lang['delete_action'] = 'Entfernen...';//'Deleting...';
$lang['rename_action'] = 'Umbenennen...';//'Renaming...';
$lang['modify_action'] = 'Ab&auml;ndern...';//'Modifying...';
$lang['failed'] = 'fehlgeschlagen';//'failed';
$lang['ldif_parse_error'] = 'LDIF Pars Fehler';//'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Konnte das Objekt nicht hinzuf&uuml;gen:';//'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Konnte das Objekt nicht umbenennen:';//'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Konnte das Objekt nicht entfernen:';//'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Konnte das Objekt nicht ab&auml;ndern:';//'Could not modify object:';
$lang['ldif_line_number'] = 'Anzahl Zeilen:';//'Line Number:';
$lang['ldif_line'] = 'Zeile:';//'Line:';
?> ?>

View File

@ -1,13 +1,30 @@
<?php <?php
$lang = array(); /* --- 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!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form // Search form
$lang['simple_search_form_str'] = 'Simple Search Form'; $lang['simple_search_form_str'] = 'Simple Search Form';
$lang['advanced_search_form_str'] = 'Advanced Search Form'; $lang['advanced_search_form_str'] = 'Advanced Search Form';
$lang['server'] = 'Server'; $lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Search for entries whose'; $lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN'; $lang['base_dn'] = 'Base <acronym title="Distinguished Name">DN</acronym>';
$lang['search_scope'] = 'Search Scope'; $lang['search_scope'] = 'Search Scope';
$lang['search_ filter'] = 'Search Filter'; $lang['search_ filter'] = 'Search Filter';
$lang['show_attributes'] = 'Show Attributtes'; $lang['show_attributes'] = 'Show Attributtes';
@ -25,10 +42,10 @@ $lang['report_bug'] = 'Report a bug';
$lang['see_open_bugs'] = 'see open bugs'; $lang['see_open_bugs'] = 'see open bugs';
$lang['schema'] = 'schema'; $lang['schema'] = 'schema';
$lang['search'] = 'search'; $lang['search'] = 'search';
$lang['refresh'] = 'refresh';
$lang['create'] = 'create'; $lang['create'] = 'create';
$lang['info'] = 'info'; $lang['info'] = 'info';
$lang['import'] = 'import'; $lang['import'] = 'import';
$lang['refresh'] = 'refresh';
$lang['logout'] = 'logout'; $lang['logout'] = 'logout';
$lang['create_new'] = 'Create New'; $lang['create_new'] = 'Create New';
$lang['view_schema_for'] = 'View schema for'; $lang['view_schema_for'] = 'View schema for';
@ -39,10 +56,11 @@ $lang['import_from_ldif'] = 'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Logout of this server'; $lang['logout_of_this_server'] = 'Logout of this server';
$lang['logged_in_as'] = 'Logged in as: '; $lang['logged_in_as'] = 'Logged in as: ';
$lang['read_only'] = 'read only'; $lang['read_only'] = 'read only';
$lang['could_not_determine_root'] = 'Could not determin the root of your LDAP tree.'; $lang['could_not_determine_root'] = 'Could not determine the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.'; $lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Please specify it in config.php'; $lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in'; $lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
// Entry display // Entry display
$lang['delete_this_entry'] = 'Delete this entry'; $lang['delete_this_entry'] = 'Delete this entry';
@ -69,22 +87,26 @@ $lang['hide_internal_attrs'] = 'Hide internal attributes';
$lang['show_internal_attrs'] = 'Show internal attributes'; $lang['show_internal_attrs'] = 'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'Attributes set automatically by the system'; $lang['internal_attrs_tooltip'] = 'Attributes set automatically by the system';
$lang['entry_attributes'] = 'Entry Attributes'; $lang['entry_attributes'] = 'Entry Attributes';
$lang['click_to_display'] = 'click to display'; $lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'click \'+\' to display';
$lang['hidden'] = 'hidden'; $lang['hidden'] = 'hidden';
$lang['none'] = 'none'; $lang['none'] = 'none';
$lang['save_changes'] = 'Save Changes'; $lang['save_changes'] = 'Save Changes';
$lang['add_value'] = 'add value'; $lang['add_value'] = 'add value';
$lang['add_value_tooltip'] = 'Add an additional value to this attribute'; $lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['refresh'] = 'refresh'; $lang['refresh_entry'] = 'Refresh';
$lang['refresh_this_entry'] = 'Refresh this entry'; $lang['refresh_this_entry'] = 'Refresh this entry';
$lang['delete_hint'] = 'Hint: <b>To delete an attribute</b>, empty the text field and click save.'; $lang['delete_hint'] = 'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$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['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = 'Change this entry\'s RDN'; $lang['change_entry_rdn'] = 'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry'; $lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['binary_value'] = 'Binary value'; $lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add New Binary Attribute'; $lang['add_new_binary_attr'] = 'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'Add a new binary attribute/value from a file'; $lang['add_new_binary_attr_tooltip'] = 'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Alias for'; $lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['download_value'] = 'download value'; $lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute'; $lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true'; $lang['true'] = 'true';
@ -104,11 +126,19 @@ $lang['required_attrs'] = 'Required Attributes';
$lang['optional_attrs'] = 'Optional Attributes'; $lang['optional_attrs'] = 'Optional Attributes';
$lang['OID'] = 'OID'; $lang['OID'] = 'OID';
$lang['desc'] = 'Description'; $lang['desc'] = 'Description';
$lang['name'] = 'Name';
$lang['is_obsolete'] = 'This objectClass is <b>obsolete</b>'; $lang['is_obsolete'] = 'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Inherits'; $lang['inherits'] = 'Inherits';
$lang['jump_to_this_oclass'] = 'Jump to this objectClass definition'; $lang['jump_to_this_oclass'] = 'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Matching Rule OID'; $lang['matching_rule_oid'] = 'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID'; $lang['syntax_oid'] = 'Syntax OID';
$lang['not_applicable'] = 'not applicable';
$lang['not_specified'] = 'not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'You must specify a DN';
$lang['could_not_delete_entry'] = 'Could not delete the entry: %s';
// Adding objectClass form // Adding objectClass form
$lang['new_required_attrs'] = 'New Required Attributes'; $lang['new_required_attrs'] = 'New Required Attributes';
@ -125,18 +155,200 @@ $lang['bad_server_id'] = 'Bad server id';
$lang['not_enough_login_info'] = 'Not enough information to login to server. Please check your configuration.'; $lang['not_enough_login_info'] = 'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Could not connect to LDAP server.'; $lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.'; $lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$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';
// Add value form // Add value form
$lang['add_new'] = 'Add new'; $lang['add_new'] = 'Add new';
$lang['value_to'] = 'value to'; $lang['value_to'] = 'value to';
$lang['server'] = 'Server';
$lang['distinguished_name'] = 'Distinguished Name'; $lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Current list of'; $lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = 'values for attribute'; $lang['values_for_attribute'] = 'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not<br />' . $lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not<br />' .
'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.'; 'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:'; $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<br />that this objectClass requires.'; $lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Syntax'; $lang['syntax'] = '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_dest_already_exists'] = 'The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'The source and destination DN are the same.';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = 'Recursive copy progress';
$lang['copy_building_snapshot'] = 'Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'view the new entry';
$lang['copy_failed'] = 'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warning: missing template file, ';
$lang['using_default'] = 'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
$lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = 'Destination 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'] = 'Destination Server';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute <b>%s</b>.';
$lang['create_redirecting'] = 'Redirecting';
$lang['create_here'] = 'here';
$lang['create_could_not_add'] = 'Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Create Object';
$lang['createf_choose_temp'] = 'Choose a template';
$lang['createf_select_temp'] = 'Select a template for the creation process';
$lang['createf_proceed'] = 'Proceed';
//creation_template.php
$lang['ctemplate_on_server'] = 'On server';
$lang['ctemplate_no_template'] = 'No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = 'for this template. But, this handler does not exist in the templates/creation directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Entries found: ';
$lang['filter_performed'] = 'Filter performed: ';
$lang['search_duration'] = 'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'The scope in which to search';
$lang['scope_sub'] = 'Sub (entire subtree)';
$lang['scope_one'] = 'One (one level beneath base)';
$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';
$lang['ends with'] = 'ends with';
$lang['sounds like'] = 'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['nothing_to_report'] = 'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';
$lang['old_value'] = 'Old Value';
$lang['new_value'] = 'New Value';
$lang['attr_deleted'] = '[attribute deleted]';
$lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsafe file name: ';
$lang['no_such_file'] = '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 <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt>
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['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration (<tt>%s</tt>)
does not exist.';
$lang['specified_uidpool'] = 'You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your
configuration for server <b>%s</b>, but you did not specify the
<tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>)
in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = 'Error: You have an error in your config file. The only two allowed values
for auth_type in the $servers section are \'config\' and \'form\'. You entered \'%s\',
which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP said</b>: %s<br /><br />';
$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_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'] = '<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$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 />';
$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>
<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'] = 'Import LDIF File';
$lang['select_ldif_file'] = 'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Proceed &gt;&gt;';
//ldif_import
$lang['add_action'] = 'Adding...';
$lang['delete_action'] = 'Deleting...';
$lang['rename_action'] = 'Renaming...';
$lang['modify_action'] = 'Modifying...';
$lang['failed'] = 'failed';
$lang['ldif_parse_error'] = 'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Could not modify object:';
$lang['ldif_line_number'] = 'Line Number:';
$lang['ldif_line'] = 'Line:';
?> ?>

335
lang/es.php Normal file
View File

@ -0,0 +1,335 @@
<?php
// 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['show_attributes'] = 'Mostrar 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';
// 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['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$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['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...';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendrá que confirmar esta decision';
$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_to_ldif_mac'] = 'Avance de línea de Macintosh';
$lang['export_to_ldif_win'] = 'Avance de línea de Windows';
$lang['export_to_ldif_unix'] = 'Avance de línea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$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['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los canvios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$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['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'] = 'Sinónimo para';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
// 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['OID'] = 'OID';
$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';
// 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';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acción exige que se agreguen';
$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';
// 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['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';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$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á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';
//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_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: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
//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?';
//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.';
//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';
//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 \'plantilla/creación\'.';
// 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['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['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['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['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['sounds like'] = 'suene como';
// 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.';
//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.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos canvios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ningún canvio';
$lang['go_back'] = 'Volver atrás';
// welcome.php
$lang['welcome_note'] = 'Usa el menú de la izquierda para navegar';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
//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>)
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['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$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['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 fatal del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</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 />
<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>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>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>
</table>
<br />
Por favor envía este error haciendo click 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;';
//ldif_import
$lang['add_action'] = 'Añadiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$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:';
?>

View File

@ -1,70 +1,355 @@
<?php <?php
$lang = array(); /* --- 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!
*
*/
// Advanced/simple search form /*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Recherche Simple'; $lang['simple_search_form_str'] = 'Recherche Simple';
$lang['advanced_search_form_str'] = 'Recherche avancée'; $lang['advanced_search_form_str'] = 'Recherche avanc&eacute;e';
$lang['server'] = 'Serveur'; $lang['server'] = 'Serveur';
$lang['search_for_entries_whose'] = 'Chercher les entrées dont'; $lang['search_for_entries_whose'] = 'Chercher les entr&eacute;es dont';
$lang['base_dn'] = 'Base DN'; $lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Portée de la recherche'; $lang['search_scope'] = 'Port&eacute;e de la recherche';
$lang['search_ filter'] = 'Filtre de la recherche'; $lang['search_ filter'] = 'Filtre de la recherche';
$lang['show_attributes'] = 'Montrer les attributs'; $lang['show_attributes'] = 'Montrer les attributs';
$lang['Search'] = 'Chercher'; $lang['Search'] = 'Chercher';
$lang['equals'] = 'est égal à'; $lang['equals'] = 'est &eacute;gal &agrave;';
$lang['starts_with'] = 'commence par'; $lang['starts_with'] = 'commence par';
$lang['contains'] = 'contient'; $lang['contains'] = 'contient';
$lang['ends_with'] = 'finit par'; $lang['ends_with'] = 'finit par';
$lang['sounds_like'] = 'ressemble à'; $lang['sounds_like'] = 'ressemble &agrave;';
// tree.php // tree.php
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalité'; $lang['request_new_feature'] = 'Demander une nouvelle fonctionnalit&eacute;';
$lang['see_open_requests'] = 'voir les demandes en cours'; $lang['see_open_requests'] = 'voir les demandes en cours';
$lang['report_bug'] = 'Signaler un bogue'; $lang['report_bug'] = 'Signaler un bogue';
$lang['see_open_bugs'] = 'voir les bogues en cours'; $lang['see_open_bugs'] = 'voir les bogues en cours';
$lang['schema'] = 'schema'; $lang['schema'] = 'schema';
$lang['search'] = 'chercher'; $lang['search'] = 'chercher';
$lang['refresh'] = 'rafraîchir'; $lang['refresh'] = 'rafra&icirc;chir';
$lang['create'] = 'créer'; $lang['create'] = 'cr&eacute;er';
$lang['info'] = 'info'; $lang['info'] = 'info';
$lang['import'] = 'importer'; $lang['import'] = 'importer';
$lang['logout'] = 'logout (FIXME)'; $lang['logout'] = 'se d&eacute;connecter';
$lang['create_new'] = 'Créer'; $lang['create_new'] = 'Cr&eacute;er';
$lang['view_schema_for'] = 'Voir les schemas pour';
$lang['refresh_expanded_containers'] = 'Rafra&icirc;chir tous les containeurs &eacute;tendus';
$lang['create_new_entry_on'] = 'Cr&eacute;er une nouvelle entr&eacute;e sur';
$lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entr&eacute;es &agrave; partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se d&eacute;connecter de ce serveur';
$lang['logged_in_as'] = 'Se connecter en tant que: ';
$lang['read_only'] = 'Lecture seule';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être d&eacute;termin&eacute;e.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a &eacute;t&eacute; configur&eacute; de telle sorte que la racine ne soit pas r&eacute;vel&eacute;e.';
$lang['please_specify_in_config'] = 'Veuillez le sp&eacute;cifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Cr&eacute;er une nouvelle entr&eacute;e dans';
$lang['login_link'] = 'Login...';
// entry display // entry display
$lang['delete_this_entry'] = 'Supprimer cette entrée'; $lang['delete_this_entry'] = 'Supprimer cette entr&eacute;e';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demander confirmation'; $lang['delete_this_entry_tooltip'] = 'Il vous sera demand&eacute; confirmation';
$lang['copy_this_entry'] = 'Copier cette entrée'; $lang['copy_this_entry'] = 'Copier cette entr&eacute;e';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur'; $lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export_to_ldif'] = 'Exporter au format LDIF'; $lang['export_to_ldif'] = 'Exporter au format LDIF';
$lang['export_to_ldif_tooltip'] = 'Sauvegarder cet objet au format ldif'; $lang['export_to_ldif_tooltip'] = 'Sauvegarder cet objet au format LDIF';
$lang['export_subtree_to_ldif_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets au format ldif'; $lang['export_subtree_to_ldif_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets au format LDIF';
$lang['export_subtree_to_ldif'] = 'Exporter l\'arborescence au format ldif'; $lang['export_subtree_to_ldif'] = 'Exporter l\'arborescence au format LDIF';
$lang['export_to_ldif_mac'] = 'Fins de ligne Macintosh'; $lang['export_to_ldif_mac'] = 'Fins de ligne Macintosh';
$lang['export_to_ldif_win'] = 'Fins de lignes Windows'; $lang['export_to_ldif_win'] = 'Fins de lignes Windows';
$lang['export_to_ldif_unix'] = 'Fins de ligne Unix '; $lang['export_to_ldif_unix'] = 'Fins de ligne Unix ';
$lang['create_a_child_entry'] = 'Créer une sous-entrée'; $lang['create_a_child_entry'] = 'Cr&eacute;er une sous-entr&eacute;e';
$lang['add_a_jpeg_photo'] = 'Ajouter une jpegPhoto'; $lang['add_a_jpeg_photo'] = 'Ajouter un attribut jpegPhoto';
$lang['rename_entry'] = 'Renommer l\'entrée'; $lang['rename_entry'] = 'Renommer l\'entr&eacute;e';
$lang['rename'] = 'Renommer'; $lang['rename'] = 'Renommer';
$lang['add'] = 'Ajouter'; $lang['add'] = 'Ajouter';
$lang['view'] = 'Ajouter'; $lang['view'] = 'Voir';
$lang['add_new_attribute'] = 'Ajouter un nouvel attribut'; $lang['add_new_attribute'] = 'Ajouter un nouvel attribut';
$lang['add_new_attribute_tooltip'] = 'Ajouter un nouvel attribut/une nouvelle valeur à cette entrée'; $lang['add_new_attribute_tooltip'] = 'Ajouter un nouvel attribut/une nouvelle valeur &agrave; cette entr&eacute;e';
$lang['internal_attributes'] = 'Attributs Internes'; $lang['internal_attributes'] = 'Attributs Internes';
$lang['hide_internal_attrs'] = 'Cacher les attributs internes'; $lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes'; $lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['internal_attrs_tooltip'] = 'Attributs établis automatiquement par le système'; $lang['internal_attrs_tooltip'] = 'Attributs &eacute;tablis automatiquement par le syst&egrave;me';
$lang['entry_attributes'] = 'Attributs de l\'entrée'; $lang['entry_attributes'] = 'Attributs de l\'entr&eacute;e';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la d&eacute;finition de sch&eacute;ma pour l\'attribut de type \'%s\'';
$lang['click_to_display'] = 'Cliquer pour afficher'; $lang['click_to_display'] = 'Cliquer pour afficher';
$lang['hidden'] = 'caché'; $lang['hidden'] = 'cach&eacute;';
$lang['none'] = 'aucun'; $lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications'; $lang['save_changes'] = 'Sauver les modifications';
$lang['add_value'] = 'ajouter une valeur'; $lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur suppl&eacute;mentaire &agrave; cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
$lang['refresh'] = 'rafra&icirc;chir';
$lang['refresh_this_entry'] = 'Rafra&icirc;chir cette entr&eacute;e';
$lang['delete_hint'] = 'Note: <b>Pour effacer un attribut</b>, laissez le champs vide et cliquez pour sauvegarder.';
$lang['attr_schema_hint'] = 'Note: <b>Pour voir le sch&eacute;ma pour un attribut</b>, cliquer sur le nom de l\'attribut.';
$lang['attrs_modified'] = 'Certains attributs (%s) ont &eacute;t&eacute; mdoifi&eacute;s et sont mis en &eacute;vidence ci-dessous.';
$lang['attr_modified'] = 'Un attribut (%s) a &eacute;t&eacute; modifi&eacute; et est mis en &eacute;vidence ci-dessous.';
$lang['viewing_read_only'] = 'Voir une entr&eacute;e en lecture seule.';
$lang['change_entry_rdn'] = 'Changer le RDN de cette entr&eacute;e';
$lang['no_new_attrs_available'] = 'plus d\'attributs disponibles pour cette entr&eacute;e';
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['add_new_binary_attr_tooltip'] = 'Ajouter un nouvel attribut &agrave; partir d\'un fichier';
$lang['alias_for'] = 'Alias pour';
$lang['download_value'] = 'T&eacute;l&eacute;charger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
$lang['false'] = 'faux';
$lang['none_remove_value'] = 'aucun, suppression de la valeur';
$lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
// Schema browser
$lang['the_following_objectclasses'] = 'Les <b>classes d\'objets (objectClasses)</b> suivantes sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les <b>types d\'attributs (attributesTypes)</b> suivants sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les <b>op&eacute;rateurs (matching rules)</b> suivants sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les <b>syntaxes</b> suivantes sont support&eacute;s par ce serveur LDAP.';
$lang['jump_to_objectclass'] = 'Aller &agrave; une classe d\'objet';
$lang['jump_to_attr'] = 'Aller &agrave; un attribut';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['optional_attrs'] = 'Attributs facultatifs';
$lang['OID'] = 'OID';
$lang['desc'] = 'Description';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Cette classe d\'objet est <b>obsolete</b>';
$lang['inherits'] = 'h&eacute;rite';
$lang['jump_to_this_oclass'] = 'Aller &agrave; la d&eacute;finition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'op&eacute;rateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
$lang['not_applicable'] = 'not applicable';
$lang['not_specified'] = 'non sp&eacute;cifi&eacute;';
// Repeat above for *every* string in phpLDAPadmin // Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entr&eacute;e \'%s\' r&eacute;ussie.';
$lang['you_must_specify_a_dn'] = 'Un DN doit être sp&eacute;cifi&eacute;';
$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entr&eacute;e: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nouveaux Attributs Obligatoires';
$lang['requires_to_add'] = 'Cette action n&eacute;cessite d\'ajouter';
$lang['new_attributes'] = 'nouveaux attributs';
$lang['new_required_attrs_instructions'] = 'Instructions: Afin d\'ajouter cette classe d\'objet, vous devez sp&eacute;cifier';
$lang['that_this_oclass_requires'] = 'dont cette classe d\'objet a besoin. Vous pouvez le faire avec ce formulaire.';
$lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
// General
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entr&eacute;(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises &agrave; 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&icirc;, v&eacute;rifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'op&eacute;ration ldap_mod_add.';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succ&egrave;s';
$lang['server_colon_pare'] = 'Serveur: ';
$lang['look_in'] = 'Recherche dans: ';
$lang['missing_server_id_in_query_string'] = 'Aucun serveur ID sp&eacute;cifi&eacute; dans la ligne de requ&ecirc;te !';
$lang['missing_dn_in_query_string'] = 'Aucun DN sp&eacute;cifi&eacute; dans la ligne de requ&ecirc;te !';
$lang['back_up_p'] = 'Retour...';
$lang['no_entries'] = 'aucune entr&eacute;e';
$lang['not_logged_in'] = 'Vous n\'&ecirc; pas loggu&eacute;';
$lang['could_not_det_base_dn'] = 'Impossible de d&eacute;terminer le DN de base';
// Add value form
$lang['add_new'] = 'Ajout d\'une nouvelle valeur ';
$lang['value_to'] = 'pour';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Liste actuelle de';
$lang['values_for_attribute'] = 'valeur(s) pour l\' attribut';
$lang['inappropriate_matching_note'] = 'Note: Vous obtiendrez une erreur de type "inappropriate matching" si vous n\'avez pas<br />' .
'd&eacute;fini une r&egrave;gle <tt>EQUALITY</tt> pour cet attribut aupr&egrave;s du serveur LDAP.';
$lang['enter_value_to_add'] = 'Entrez la valeur que vous voulez ajouter:';
$lang['new_required_attrs_note'] = 'Note: vous aurez peut-&ecirc;tre besoin d\'introduire de nouveaux attributs requis pour cette classe d\'objet';
$lang['syntax'] = 'Syntaxe';
//Copy.php
$lang['copy_server_read_only'] = 'Des mises &agrave; jours ne peuvent pas être effectu&eacute;es si le serveur est en lecture seule';
$lang['copy_dest_dn_blank'] = 'Vous avez laiss&eacute; le DN de destination vide.';
$lang['copy_dest_already_exists'] = 'L\'entr&eacute;e de destination (%s) existe d&eacute;j&agrave;.';
$lang['copy_dest_container_does_not_exist'] = 'Le conteneur de destination (%s) n\'existe pas.';
$lang['copy_source_dest_dn_same'] = 'Le DN d\'origine et le DN de destination sont identiques.';
$lang['copy_copying'] = 'Copie ';
$lang['copy_recursive_copy_progress'] = 'Progression de la copie r&eacute;cursive';
$lang['copy_building_snapshot'] = 'Construction de l\'image de l\'arborscence &agrave; copier... ';
$lang['copy_successful_like_to'] = 'Copie r&eacute;ussite! Voulez-vous ';
$lang['copy_view_new_entry'] = '&eacute;diter cette nouvelle entr&eacute;e';
$lang['copy_failed'] = 'Echec lors de la copie de: ';
//edit.php
$lang['missing_template_file'] = 'Avertissement: le fichier mod&egrave;le est manquant, ';
$lang['using_default'] = 'Utilisation du mod&egrave;le par d&eacute;faut.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copie de ';
$lang['copyf_to_new_object'] = 'vers un nouvel objet';
$lang['copyf_dest_dn'] = 'DN de destination';
$lang['copyf_dest_dn_tooltip'] = 'Le DN de la nouvelle entr&eacute;e &agrave; cr&eacute;er lors de la copie de l\'entr&eacute;e source';
$lang['copyf_dest_server'] = 'Destination Serveur';
$lang['copyf_note'] = 'Note: La copie entre diff&eacute;rents serveurs fonctionne seulement si il n\'y a pas de violation de sch&eacute;ma';
$lang['copyf_recursive_copy'] = 'Copier r&eacute;cursivement les sous-entr&eacute;es de cet object.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas &eacute;t&eacute; sp&eacute;cifi&eacute;e pour l\'attribut requis <b>%s</b>.';
$lang['create_redirecting'] = 'Redirection';
$lang['create_here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectu&eacute;e.';
//create_form.php
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un mod&egrave;le';
$lang['createf_select_temp'] = 'Selectionner un mod&egrave;le pour la proc&eacute;dure de cr&eacute;ation';
$lang['createf_proceed'] = 'Continuer';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun mod&egrave;le sp&eacute;cifi&eacute; dans les variables POST.';
$lang['ctemplate_config_handler'] = 'Votre configuration sc&eacute;cifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce mod&egrave;le. Cependant, ce gestionnaire n\'existe pas dans le r&eacute;pertoire \'templates/creation\'.';
//search.php
$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore logg&eacute; aupr&egrave;s du serveur s&eacute;lectionn&eacute;. Vous ne pouvez y effectuer des recherches.';
$lang['click_to_go_to_login_form'] = 'Cliquer ici pour vous rendre au formulaire de login';
$lang['unrecognized_criteria_option'] = 'Crit&egrave;re non reconnu: ';
$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres crit&egrave;re &agrave; la liste, soyez cetain d\'&eacute;diter search.php afin de pouvoir les g&eacute;rer.';
$lang['entries_found'] = 'Entr&eacute;es trouv&eacute;e: ';
$lang['filter_performed'] = 'Filtre utilis&eacute;: ';
$lang['search_duration'] = 'Recherche effectu&eacute;e par phpLDAPadmin en';
$lang['seconds'] = 'secondes';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Port&eacute;e de la recherche';
$lang['scope_sub'] = 'Sub (le sous-arbre)';
$lang['scope_one'] = 'One (un niveau sous la base)';
$lang['scope_base'] = 'Base (le dn de base)';
$lang['standard_ldap_search_filter'] = 'Un filtre standard de recherche LDAP. Exemple: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre pour la recherche';
$lang['list_of_attrs_to_display_in_results'] = 'Une liste des attributs &agrave; afficher dans les r&eacute;sultats(s&eacute;par&eacute;s par des virgules)';
$lang['show_attributes'] = 'Attributs &agrave; afficher';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Chercher les entr&eacute;es dont:';
$lang['equals'] = 'est egal à;';
$lang['starts with'] = 'commence par';
$lang['contains'] = 'contient';
$lang['ends with'] = 'se termine par';
$lang['sounds like'] = 'ressemble &agrave;';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Impossible de r&eacute;cup&eacute;rer les informations concernant le serveur Ldap';
$lang['server_info_for'] = 'Informations pour le serveur: ';
$lang['server_reports_following'] = 'Le serveur a rapport&eacute; les informations suivantes';
$lang['nothing_to_report'] = 'Ce serveur n\'a aucunes informations a rapporter.';
//update.php
$lang['update_array_malformed'] = 'update_array n\'est pas bien form&eacute;. Ceci est peut-&ecirc;tre un bogue de phpLDAPadmin. Pourriez-vous effectuer un rapport de bogue, s\'il vous pla&icirc;t.';
$lang['could_not_perform_ldap_modify'] = 'L\'op&eacute;ration ldap_modify n\'a pu être effectu&eacute;e.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Voulez-vous effectuer ces changements?';
$lang['attribute'] = 'Attribut';
$lang['old_value'] = 'Ancienne Valeur';
$lang['new_value'] = 'Nouvelle Valeur';
$lang['attr_deleted'] = '[attribut supprim&eacute;]';
$lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a &eacute;t&eacute; effectu&eacute;';
$lang['go_back'] = 'Retour';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non sûr: ';
$lang['no_such_file'] = 'Aucun fichier trouv&eacute;: ';
//function.php
$lang['auto_update_not_setup'] = 'auto_uid_numbers a &eacute;t&eacute; activ&eacute; pour <b>%s</b> dans votre configuration,
mais vous n\'avez pas sp&eacute;cifi&eacute; l\' auto_uid_number_mechanism. Veuiller corriger
ce probl&egrave;me.';
$lang['uidpool_not_set'] = 'Vous avez sp&eacute;cifi&eacute; l<tt>auto_uid_number_mechanism</tt> comme <tt>uidpool</tt>
dans la configuration du serveur <b>%s</b>, mais vous n\'avez pas sp&eacute;cifi&eacute; de valeur pour
auto_uid_number_uid_pool_dn. Veuillez le sp&eacute;cifier avant de continuer.';
$lang['uidpool_not_exist'] = 'Le uidPool que vous avez sp&eacute;cifi&eacute; dans votre configuration (<tt>%s</tt>)
n\'existe pas.';
$lang['specified_uidpool'] = 'L\'<tt>auto_uid_number_mechanism</tt> a &eacute;t&eacute; d&eacute;fini &agrave; <tt>search</tt> dans votre
configuration pour le serveur <b>%s</b>, mais vous n\'avez pas d&eacute;fini
<tt>auto_uid_number_search_base</tt>. Veuillez le sp&eacute;cifier avant de continuer.';
$lang['auto_uid_invalid_value'] = 'Une valeur non valide a &eacute;t&eacute; sp&eacute;cifi&eacute;e pour auto_uid_number_mechanism (<tt>%s</tt>)
dans votre configuration. Seul <tt>uidpool</tt> et <tt>search</tt> sont valides.
Veuillez corriger ce probl&egrave;me.';
$lang['error_auth_type_config'] = 'Erreur: Vous avez une erreur dans votre fichier de configuration.Les valeurs
support&eacute;es pour \'auth_type\' sont \'config\' et \'form\' dans la section $servers.
Vous avez mis \'%s\', ce qui n\'est pas autoris&eacute;.';
$lang['php_install_not_supports_tls'] = 'Votre installation PHP ne supporte pas TLS.';
$lang['could_not_start_tls'] = 'Impossible de d&eacute;marrer TLS.<br />Veuillez,s\'il vous pla&icirc;t, v&eacute;rifier la configuration de votre serveur LDAP.';
$lang['auth_type_not_valid'] = 'Vous avez une erreur dans votre fichier de configuration. auth_type %s n\'est pas valide.';
$lang['ldap_said'] = '<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Erreur';
$lang['fbrowse'] = 'naviguer';
$lang['delete_photo'] = 'Supprimer la photo';
$lang['install_not_support_blowfish'] = 'Votre installation PHP ne support pas l\'encryption blowfish.';
$lang['install_no_mash'] = 'Votre installation PHP ne supporte pas la fonction mhash(). Impossible de cr&eacute;er un hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contient des erreurs<br />';
$lang['ferror_number'] = '<b>Num&eacute;ro de l\'erreur</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Num&eacute; de l\'erreur</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Description</b>: (pas de description disponible)<br />';
$lang['ferror_submit_bug'] = 'Est-ce un bogue de phpLDAPadmin? Si c\'est le cas,veuillez s\'il vous pla&icirc;t <a href=\'%s\'>le rapporter</a>.';
$lang['ferror_unrecognized_num'] = 'Num&eacute;ro de l\'erreur non reconnu: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Vous avez trouv&eacute; un bogue non fatal dans phpLDAPAdmin!</b></td></tr><tr><td>Erreur:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichier:</td>
<td><b>%s</b> ligne <b>%s</b>, origine de l\'appel <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>Serveur Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
S\'il vous pla&icirc;t, veuillez rapporter ce bogue en cliquant ici</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'F&eacute;licitations! Vous avez trouv&eacute; un bogue dans phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Erreur:</td><td><b>%s</b></td></tr>
<tr><td>Niveau:</td><td><b>%s</b></td></tr>
<tr><td>Fichier:</td><td><b>%s</b></td></tr>
<tr><td>Ligne:</td><td><b>%s</b></td></tr>
<tr><td>Origine de l\'appel:</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>Serveur Webr:</td><td><b>%s</b></td></tr>
</table>
<br />
S\'il vous pla&icirc;t, veuillez rapporter ce bogue en cliquant ici!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Import de fichier LDIF';
$lang['select_ldif_file'] = 'S&eacute;lectionner un fichier LDIF:';
$lang['select_ldif_file_proceed'] = 'Continuer &gt;&gt;';
//lldif_import
$lang['add_action'] = 'Ajout de...';
$lang['delete_action'] = 'Supression de...';
$lang['rename_action'] = 'Renommage de...';
$lang['modify_action'] = 'Modification de...';
$lang['failed'] = '&eacute;chec';
$lang['ldif_parse_error'] = 'Erreur lors de l\'analyse du fichier LDIF';
$lang['ldif_could_not_add_object'] = 'Impossible d\'ajouter l\'objet:';
$lang['ldif_could_not_rename_object'] = 'Impossible de renommer l\'objet:';
$lang['ldif_could_not_delete_object'] = 'Impossible de supprimer l\'objet:';
$lang['ldif_could_not_modify_object'] = 'Impossible de modifier l\'objet:';
$lang['ldif_line_number'] = 'Num&eacute;ro de ligne';
$lang['ldif_line'] = 'Ligne';
?> ?>

139
lang/it.php Normal file
View File

@ -0,0 +1,139 @@
<?php
// Search form
$lang['simple_search_form_str'] = 'Modulo di Ricerca Semplice';
$lang['advanced_search_form_str'] = 'Modulo di Ricerca Avanzato';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Cerca per voci che';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Campo di Ricerca';
$lang['search_ filter'] = 'Filtro di Ricerca';
$lang['show_attributes'] = 'Mostra gli Attributi';
$lang['Search'] = 'Cerca';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'inizia con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'finisce con';
$lang['sounds_like'] = 'suona come';
// Tree browser
$lang['request_new_feature'] = 'Richiedi una nuova funzionalità';
$lang['see_open_requests'] = 'guarda le richieste pendenti';
$lang['report_bug'] = 'Riporta un baco';
$lang['see_open_bugs'] = 'guarda i bachi pendenti';
$lang['schema'] = 'schema';
$lang['search'] = 'cerca';
$lang['refresh'] = 'aggiorna';
$lang['create'] = 'crea';
$lang['info'] = 'info';
$lang['import'] = 'importa';
$lang['logout'] = 'esci';
$lang['create_new'] = 'Crea Nuovo';
$lang['view_schema_for'] = 'Guarda schema per';
$lang['refresh_expanded_containers'] = 'Aggiorna tutti i contenitori aperti per';
$lang['create_new_entry_on'] = 'Crea una nuova voce su';
$lang['view_server_info'] = 'Guarda le informazioni fornite dal Server';
$lang['import_from_ldif'] = 'Importa voci da un file LDIF';
$lang['logout_of_this_server'] = 'Esci da questo Server';
$lang['logged_in_as'] = 'Collegato come: ';
$lang['read_only'] = 'sola lettura';
$lang['could_not_determine_root'] = 'Non posso determinare la radice del tuo albero LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembra che il server LDAP sia stato configurato per non rivelare la sua radice.';
$lang['please_specify_in_config'] = 'Per piacere specificare nel config.php';
$lang['create_new_entry_in'] = 'Crea una nuova voce in';
// Entry display
$lang['delete_this_entry'] = 'Cancella questa voce';
$lang['delete_this_entry_tooltip'] = 'Ti sarà richiesto di confermare questa decisione';
$lang['copy_this_entry'] = 'Copia questa voce';
$lang['copy_this_entry_tooltip'] = 'Copia questo oggetto in un\'altra posizione, un nuovo DN od un altro server';
$lang['export_to_ldif'] = 'Esporta in un LDIF';
$lang['export_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto';
$lang['export_subtree_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto e di tutti i suoi figli';
$lang['export_subtree_to_ldif'] = 'Esporta il ramo in un LDIF';
$lang['export_to_ldif_mac'] = 'Fine riga in formato Macintosh';
$lang['export_to_ldif_win'] = 'Fine riga in formato Windows';
$lang['export_to_ldif_unix'] = 'Fine riga in formato Unix';
$lang['create_a_child_entry'] = 'Crea una voce figlia';
$lang['add_a_jpeg_photo'] = 'Aggiungi una jpegPhoto';
$lang['rename_entry'] = 'Rinomina la Voce';
$lang['rename'] = 'Rinomina';
$lang['add'] = 'Aggiungi';
$lang['view'] = 'Guarda';
$lang['add_new_attribute'] = 'Aggiungi un nuovo attributo';
$lang['add_new_attribute_tooltip'] = 'Aggiungi un nuovo attributo/valore a questa voce';
$lang['internal_attributes'] = 'Attributi Interni';
$lang['hide_internal_attrs'] = 'Nascondi gli attributi interni';
$lang['show_internal_attrs'] = 'Mostra gli attributi interni';
$lang['internal_attrs_tooltip'] = 'Attributi settati automaticamente dal sistema';
$lang['entry_attributes'] = 'Attributi della Voce';
$lang['click_to_display'] = 'clicca per mostrare';
$lang['hidden'] = 'nascosto';
$lang['none'] = 'nessuno';
$lang['save_changes'] = 'Salva i Cambiamenti';
$lang['add_value'] = 'aggiungi un valore';
$lang['add_value_tooltip'] = 'Aggiungi un\'altrovalore a questo attributo';
$lang['refresh'] = 'aggiorna';
$lang['refresh_this_entry'] = 'Aggiorna questa voce';
$lang['delete_hint'] = 'Consiglio: <b>Per cancellare un attributo</b>, svuota il campo testo e clicca salva.';
$lang['viewing_read_only'] = 'Stai guardando la voce in modalità sola-lettura.';
$lang['change_entry_rdn'] = 'Cambia l\' RDN di questa voce';
$lang['no_new_attrs_available'] = 'nessun nuovo attributo disponibile per questa voce';
$lang['binary_value'] = 'Valore binario';
$lang['add_new_binary_attr'] = 'Aggiungi un Nuovo Attributo Binario';
$lang['add_new_binary_attr_tooltip'] = 'Aggiungi un nuovo attributo/valore binario da un file';
$lang['alias_for'] = 'Alias per';
$lang['download_value'] = 'valore del download';
$lang['delete_attribute'] = 'cancella l\'attributo';
$lang['true'] = 'vero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'nessuno, rimuovi il valore';
$lang['really_delete_attribute'] = 'Cancella definitivamente il valore';
// Schema browser
$lang['the_following_objectclasses'] = 'Le seguenti <b>objectClasses</b> sono supportate da questo server LDAP';
$lang['the_following_attributes'] = 'Le seguenti <b>attributeTypes</b> sono supportate da questo server LDAP';
$lang['the_following_matching'] = 'Le seguenti <b>matching rules</b> sono supportate da questo server LDAP';
$lang['the_following_syntaxes'] = 'Le seguenti <b>syntaxes</b> sono supportate da questo server LDAP';
$lang['jump_to_objectclass'] = 'Vai a una objectClass';
$lang['jump_to_attr'] = 'Vai a un attributo';
$lang['schema_for_server'] = 'Schema per il server';
$lang['required_attrs'] = 'Attributi Richiesti';
$lang['optional_attrs'] = 'Attributi Opzionali';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descrizione';
$lang['is_obsolete'] = 'Questa objectClass è <b>obsoleta</b>';
$lang['inherits'] = 'Eredita da';
$lang['jump_to_this_oclass'] = 'Vai a questa definizione della objectClass';
$lang['matching_rule_oid'] = 'Regola Corrispondente OID';
$lang['syntax_oid'] = 'Sintassi OID';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuovi Attributi Richiesti';
$lang['requires_to_add'] = 'Questa azione richiede che tu aggiunga';
$lang['new_attributes'] = 'nuovi attributi';
$lang['new_required_attrs_instructions'] = 'Istruzioni: Per aggiungere questa objectClass a questa voce, devi specificare:';
$lang['that_this_oclass_requires'] = 'che questa objectClass richiede. Puoi farlo in questo modulo.';
$lang['add_oclass_and_attrs'] = 'Aggiungi ObjectClass e Attributi';
// General
$lang['chooser_link_tooltip'] = 'Clicca per aprire una finestra di dialogo per la selezione grafica di una voce (DN)';
$lang['no_updates_in_read_only_mode'] = 'Non puoi operare aggiornamenti mentre il server è in modalità sola-lettura';
$lang['bad_server_id'] = 'Server id errata';
$lang['not_enough_login_info'] = 'Non abbastanza informazioni per collegarsi al server. Per piacere controlla la tua configurazione.';
$lang['could_not_connect'] = 'Non ho potuto collegarmi al server LDAP.';
$lang['could_not_perform_ldap_mod_add'] = 'Non ho potuto eseguire l\'operazione ldap_mod_add.';
// Add value form
$lang['add_new'] = 'Aggiungi nuovo';
$lang['value_to'] = 'valore a';
$lang['server'] = 'Server';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Lista corrente di';
$lang['values_for_attribute'] = 'valori per l\'attributo';
$lang['inappropriate_matching_note'] = 'Nota: Tu riceverai un errore "corrispondenza inappropiata" se non hai<br />una regola <tt>EQUALITY</tt> per questo attributo sul tuo server LDAP.';
$lang['enter_value_to_add'] = 'Inserisci il valore che vorresti aggiungere:';
$lang['new_required_attrs_note'] = 'Nota: ti potrebbe essere chiesto di inserire nuovi attributi<br />che questa objectClass richiede.';
$lang['syntax'] = 'Sintassi';
?>

329
lang/nl.php Normal file
View File

@ -0,0 +1,329 @@
<?php
/*
* Übersetzung von Marius Rieder <marius.rieder@bluewin.ch>
* Uwe Ebel
*/
// Search form
$lang['simple_search_form_str'] = 'eenvoudig zoeken';//'Simple Search Form';
$lang['advanced_search_form_str'] = 'uitgebreid zoeken';//'Advanced Search Form';
$lang['server'] = 'server';//'Server';
$lang['search_for_entries_whose'] = 'zoek naar velden die';//'Search for entries whose';
$lang['base_dn'] = 'base DN';//'Base DN';
$lang['search_scope'] = 'zoekbereik';//'Search Scope';
$lang['search_ filter'] = 'zoekfilter';//'Search Filter';
$lang['show_attributes'] = 'laat Attributen zien';//'Show Attributtes';
$lang['Search'] = 'zoeken';//'Search';
$lang['equals'] = 'gelijk aan';//'equals';
$lang['starts_with'] = 'begint met';//'starts with';
$lang['contains'] = 'bevat';//'contains';
$lang['ends_with'] = 'eindigt met';//'ends with';
$lang['sounds_like'] = 'klinkt als';//'sounds like';
// Tree browser
$lang['request_new_feature'] = 'verzoek nieuwe feature';//'Request a new feature';
$lang['see_open_requests'] = 'feature verzoeken inzien';//'see open requests';
$lang['report_bug'] = 'rapporteer een bug';//'Report a bug';
$lang['see_open_bugs'] = 'buglijst inzien';//'see open bugs';
$lang['schema'] = 'schema';//'schema';
$lang['search'] = 'zoeken';//'search';
$lang['refresh'] = 'vernieuwen';//'refresh';
$lang['create'] = 'aanmaken';//'create';
$lang['info'] = 'info';//'info';
$lang['import'] = 'importeer';//'import';
$lang['logout'] = 'uitloggen';//'logout';
$lang['create_new'] = 'aanmaken';//'Create New';
$lang['view_schema_for'] = 'schema inzien voor';//'View schema for';
$lang['refresh_expanded_containers'] = 'vernieuw alle uitgeklapte containers voor';//'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'nieuw veld aanmaken in';//'Create a new entry on';
$lang['view_server_info'] = 'server informatie inzien';//'View server-supplied information';
$lang['import_from_ldif'] = 'importeer LDIF bestand';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'bij deze server uitloggen';//'Logout of this server';
$lang['logged_in_as'] = 'ingelogd als: ';//'Logged in as: ';
$lang['read_only'] = 'alleen lezen';//'read only';
$lang['could_not_determine_root'] = 'kan de root van LDAP structuur niet bepalen.';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'kan de root van LDAP structuur niet bepalen';//'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'in config.php aangeven a.u.b.';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'nieuw veld aanmaken in';//'Create a new entry in';
// Entry display
$lang['delete_this_entry'] = 'veld verwijderen';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'bevestiging zal worden gevraagd voor deze beslissing';//'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'dit veld kopieren';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'kopieer dit object naar een andere plaats, een niuewe DN of naar een andere server';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'exporteren naar LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'maak LDIF dump van dit object';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'maak LDIF dump van dit object plus alle onderliggende objecten';//'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = 'exporteer deze subvelden naar LDIF';//'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = 'Macintosh regeleinden';//'Macintosh style line ends';
$lang['export_to_ldif_win'] = 'Windows regeleinden';//'Windows style line ends';
$lang['export_to_ldif_unix'] = 'Unix regeleinden';//'Unix style line ends';
$lang['create_a_child_entry'] = 'subveld aanmaken';//'Create a child entry';
$lang['add_a_jpeg_photo'] = 'jpeg foto toevoegen';//'Add a jpegPhoto';
$lang['rename_entry'] = 'veld hernoemen';//'Rename Entry';
$lang['rename'] = 'hernoemen';//'Rename';
$lang['add'] = 'toevoegen';//'Add';
$lang['view'] = 'inzien';//'View';
$lang['add_new_attribute'] = 'attribuut toevoegen';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'nieuw attribuut toevoegen/waarde toekennen';// 'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'interne attributen';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'interne attributen verbergen';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'interne attributen laten zien';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'automatisch ingestelde attributen';//'Attributes set automatically by the system';
$lang['entry_attributes'] = 'attributen veld';//'Entry Attributes';
$lang['attr_name_tooltip'] = 'klik hier om de schemadefinitie van attribuuttype \'%s\' te bekijken';//'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'klik om te bekijken';//'click to display';
$lang['hidden'] = 'verborgen';//'hidden';
$lang['none'] = 'geen';//'none';
$lang['save_changes'] = 'veranderingen opslaan';//'Save Changes';
$lang['add_value'] = 'waarde toevoegen';//'add value';
$lang['add_value_tooltip'] = 'voeg een extra waarde toe aan dit attribuut';//'Add an additional value to this attribute';
$lang['refresh_entry'] = 'vernieuwen';// 'Refresh';
$lang['refresh_this_entry'] = 'dit veld vernieuwen';//'Refresh this entry';
$lang['delete_hint'] = 'tip: <b>om een attribuut te verwijderen</b>, maak deze leeg en sla hem op';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tip: <b>om het schema voor een attribuut te bekijken,</b> klik op de attribuutnaam';//'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$lang['attrs_modified'] = 'sommige attributen (%s) zijn gewijzigd en worden ge-highlight weergegeven.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'een attribuut (%s) is gewijzigd en wordt ge-highlight weergegeven';//'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'veld bekijken (alleen-lezen)';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = 'verander de RDN van dit veld';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'geen nieuwe attributen beschikbaar voor dit veld';//'no new attributes available for this entry';
$lang['binary_value'] = 'binaire waarde';//'Binary value';
$lang['add_new_binary_attr'] = 'nieuwe binair attribuut toevoegen';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'lees binair attribuut in vanuit een bestand';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'alias voor';//'Alias for';
$lang['download_value'] = 'waarde downloaden';//'download value';
$lang['delete_attribute'] = 'attribuut verwijderen';//'delete attribute';
$lang['true'] = 'waar';//'true';
$lang['false'] = 'onwaar';//'false';
$lang['none_remove_value'] = 'niets, verwijder waarde';//?? //'none, remove value';
$lang['really_delete_attribute'] = 'dit attribuut echt verwijderen';//'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = 'Deze LDAP server ondersteunt de volgende <b>objectClasses</b>.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Deze LDAP server ondersteunt de volgende <b>attributeTypes</b>.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Deze LDAP server ondersteunt de volgende <b>zoekregels</b>.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Deze LDAP server ondersteunt de volgende <b>syntaxen</b>.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = 'ga naar objectClass';//'Jump to an objectClass';
$lang['jump_to_attr'] = 'ga naar een attribuut';//'Jump to an attribute';
$lang['schema_for_server'] = 'schema voor server';//'Schema for server';
$lang['required_attrs'] = 'vereiste attributen';//'Required Attributes';
$lang['optional_attrs'] = 'niet vereiste attributen';//'Optional Attributes';
$lang['OID'] = 'OID';//'OID';
$lang['desc'] = 'omschrijving';//'Description';
$lang['name'] = 'naam';//'Name';
$lang['is_obsolete'] = 'deze objectClass is <b>verouderd</b>';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'afgeleid van';//'Inherits';
$lang['jump_to_this_oclass'] = 'ga naar objectClass definitie';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'overeenkomen met OID regel';//'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';//'Syntax OID';
$lang['not_applicable'] = 'niet van toepassing';//'not applicable';
$lang['not_specified'] = 'niet gespecificeerd';//not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'dit veld \'%s\' succesvol verwijderd';//'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'U moet een DN aangeven.';//'You must specify a DN';
$lang['could_not_delete_entry'] = 'kan dit veld niet verwijderen: %s';//'Could not delete the entry: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'nieuwe benodigde attributen';//'New Required Attributes';
$lang['requires_to_add'] = 'voor deze actie moet worden toegevoegd:';//'This action requires you to add';
$lang['new_attributes'] = 'nieuw attribuut';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Instructies: om deze objectClass toe te voegen, moet u nog specificeren ';//'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'dat deze objectClass nodig heeft. U kunt dit in dit formulier doen.';//'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'objectClass en attributen toevoegen';//'Add ObjectClass and Attributes';
// General
$lang['chooser_link_tooltip'] = 'klik om grafisch een veld te kiezen (DN)';//"Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'U kunt niet opslaan als de server alleen lezen is';//'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'ongeldig server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Onvoldoende informatie om in te kunnen loggen. Controleer de configuratie.';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Kan LDAP server niet vinden.';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Kan geen ldap_mod_add uitvoeren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'ongeldig server_ID:';//"Bad server_id: ';
$lang['success'] = 'succes';//"Success';
$lang['server_colon_pare'] = 'server: ';//"Server: ';
$lang['look_in'] = 'bekijken: ';//"Looking in: ';
$lang['missing_server_id_in_query_string'] = 'geen server ID meegegeven';//'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'geen DN meegeven';//'No DN specified in query string!';
$lang['back_up_p'] = 'backup...';//"Back Up...';
$lang['no_entries'] = 'geen velden';//"no entries';
$lang['not_logged_in'] = 'niet ingelogd';//"Not logged in';
$lang['could_not_det_base_dn'] = 'kan de basis-DN niet bepalen';//"Could not determine base DN';
// Add value form
$lang['add_new'] = 'nieuw toevoegen';//'Add new';
$lang['value_to'] = 'waarde';//'value to';
$lang['server'] = 'server';//'Server';
//also used in copy_form.php
$lang['distinguished_name'] = 'Distinguished Name';// 'Distinguished Name';
$lang['current_list_of'] = 'huidige lijst van';//'Current list of';
$lang['values_for_attribute'] = 'waarden voor attributen';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Info: U zult een "inappropriate matching" melding krijgen, indien u niet<br />' . //'Note: You will get an "inappropriate matching" error if you have not<br />' .
'een <tt>EQUALITY</tt> regel op de LDAP Server voor dit attribuut ingesteld heeft.';//'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'geef de waarde die u wilt toevoegen:';//'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Info: U kunt verzocht worden nieuwe attributen, die voor deze objectClass verplicht zijn, in te voeren.';//'Note: you may be required to enter new attributes<br />that this objectClass requires.';
$lang['syntax'] = 'syntax';//'Syntax';
//Copy.php
$lang['copy_server_read_only'] = 'U kunt niet opslaan als de server alleen lezen is';//"You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'de bestemmings DN is leeg';//"You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'het veld (%s) bestaat al.';//"The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'het doel-veld (%s) bestaat niet.';//'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'origineel DN en doel DN zijn hetzelfde';//"The source and destination DN are the same.';
$lang['copy_copying'] = 'kopieren';//"Copying ';
$lang['copy_recursive_copy_progress'] = 'bezig met recursief kopieren';//"Recursive copy progress';
$lang['copy_building_snapshot'] = 'bezig met het aanmaken van een snapshot van de boomstructuur... ';//"Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Kopieren succesvol! Wit u dan';//"Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'het nieuwe veld bekijken';//"view the new entry';
$lang['copy_failed'] = 'Kopieren van DN mislukt: ';//'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Waarschuwing: kan de template file niet vinden';//'Warning: missing template file, ';
$lang['using_default'] = 'standaardinstelling gebruiken';//'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopieren';//"Copy ';
$lang['copyf_to_new_object'] = 'naar een nieuw Objekt';//"to a new object';
$lang['copyf_dest_dn'] = 'doel DN';//"Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'De complete DN die aangemaakt wordt bij het kopieren van het bron-veld.';//'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'bestemmings server';//"Destination Server';
$lang['copyf_note'] = 'Info: kopieren tussen twee servers gaat alleen maar goped als er geen schema problemen zijn';//"Note: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Recursief kopieren van alle sub-velden';//"Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'Fout. U heeft een verplicht veld leeggelaten.';//"Error, you left the value blank for required attribute ';
$lang['create_redirecting'] = 'omleiden';//"Redirecting';
$lang['create_here'] = 'hier';//"here';
$lang['create_could_not_add'] = 'kan het object niet toevoegen op de LDAP server.';//"Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'object aanmaken';//"Create Object';
$lang['createf_choose_temp'] = 'kies een template';//"Choose a template';
$lang['createf_select_temp'] = 'kies een template voor dit object';//"Select a template for the creation process';
$lang['createf_proceed'] = 'verder';//"Proceed';
//creation_template.php
$lang['ctemplate_on_server'] = 'op server';//"On server';
$lang['ctemplate_no_template'] = 'geen template gespecifieerd in de POST variabelen';//"No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'uw configuratie specificeert een routine';//"Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = 'in deze template. Maar deze routine bestaat niet in de \'templates/creation\' directory.';//"for this template. But, this handler does not exist in the 'templates/creation' directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'u bent nog niet ingelogd op de geselecteerde server, dus u kunt geen zoekopdrachten geven.';//'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Klik hier om in te loggen';//'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Als u uw eigen crteria toe wilt voegen aan de lijst, dient u search.php te bewerken. Sluiten.';//'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'gevonden velden: ';//'Entries found: ';
$lang['filter_performed'] = 'toegepast filter: ';//'Filter performed: ';
$lang['search_duration'] = 'zoeken door phpLDAPadmin duurde';//'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'seconden';//'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'zoekbereik';//'The scope in which to search';
$lang['scope_sub'] = 'Sub (de hele tak)';//'Sub (entire subtree)';
$lang['scope_one'] = 'One (een laag diep)';//'One (one level beneath base)';
$lang['scope_base'] = 'Base (alleen de basis)';//'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP zoekfilter. Voorbeeld.: (&(sn=Smith)(givenname=David))';//'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'zoekfilter';//'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'komma gescheiden lijst van de attributen.';//'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'attributen laten zien';//'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'zoek naar velden waarvoor:';//'Search for entries whose:';
$lang['equals'] = 'gelijk is aan';//'equals';
$lang['starts with'] = 'begint met';//'starts with';
$lang['contains'] = 'bevat';//'contains';
$lang['ends with'] = 'eindigt met';//'ends with';
$lang['sounds like'] = 'klinkt als';//'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'kan geen LDAP van de server krijgen';//'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Server info voor: ';//'Server info for: ';
$lang['server_reports_following'] = 'De server geeft de volgende informatie over zichzelf';//'Server reports the following information about itself';
$lang['nothing_to_report'] = 'De server heeft niets te melden';//'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'De update_array is niet goed. Dat kan een phpLDAPadmin bug zijn. Laat het ons weten!';//'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Kan ldap_modify niet uitvoeren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Deze veranderingen doorvoeren?';//'Do you want to make these changes?';
$lang['attribute'] = 'attribuut';//'Attribute';
$lang['old_value'] = 'oude waarde';//'Old Value';
$lang['new_value'] = 'nieuwe waarde';//'New Value';
$lang['attr_deleted'] = '[attribuut verwijderd]';//'[attribute deleted]';
$lang['commit'] = 'uitvoeren';//'Commit';
$lang['cancel'] = 'annuleren';//'Cancel';
$lang['you_made_no_changes'] = 'U heeft geen veranderingen gemaakt.';//'You made no changes';
$lang['go_back'] = 'terug';//'Go back';
// welcome.php
$lang['welcome_note'] = 'Gebruik het linkermenu om te navigeren.';//'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'onveilige bestandsnaam: ';//'Unsafe file name: ';
$lang['no_such_file'] = 'Bestand bestaat niet: ';//'No such file: ';
//function.php
$lang['auto_update_not_setup'] = '<tt>auto_uid_numbers</tt> is geactiveerd (<b>%s</b>, maar niet het mechanisme (auto_uid_number_mechanism). U dient dit alsnog te doen.';//"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'] = 'Het mechanisme <tt>auto_uid_number_mechanism</tt> is als <tt>uidpool</tt> voor server <b>%s</b> vastgelegd, maar niet de <tt>auto_uid_number_uid_pool_dn</tt>. U dient dit alsnog te doen.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt> 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['uidpool_not_exist'] = 'De <tt>uidPool</tt> die gespecificeerd is in de configuratie bestaat niet.';//"It appears that the uidPool you specified in your configuration (<tt>%s</tt>) does not exist.';
$lang['specified_uidpool'] = 'De <tt>auto_uid_number_mechanism</tt> is als <tt>search</tt> in de configuratie voor de server <b>%s</b> bepaald, maar de waarde <tt>auto_uid_number_search_base</tt> niet. U dient dit alsnog te doen.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your configuration for server <b>%s</b>, but you did not specify the <tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'Ongeldige waarde voor <tt>auto_uid_number_mechanism</tt>(%s). Alleen <tt>uidpool</tt> und <tt>search</tt> zijn geldig. Gaarne de fout herstellen ';//"You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>) in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid. Please correct this problem.';
$lang['error_auth_type_config'] = 'Fout: Er zit een fout inde configuratiefile (config.php). De enige twee waarden voor \'auth_type\' in de $servers sectie zijn: <b>\'config\'</b> of <b>\'form\'</b>. U heeft er nu <b>%s</b> in staan en dat kan niet.';//"Error: You have an error in your config file. The only two allowed values for 'auth_type' in the $servers section are 'config' and 'form'. You entered '%s', which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Uw installatie ondersteunt geen TLS.';//"Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'Kan TLS niet starten.<br/>Controleer de LDAP-Server-configuratie.';//"Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'Fout in de configuratiefile: auth_type %s is niet geldig'; //"You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP zegt</b>: %s<br/><br/>';//"<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Fout';//"Error';
$lang['fbrowse'] = 'navigeer';//"browse';
$lang['delete_photo'] = 'Foto verwijderen';//"Delete Photo';
$lang['install_not_support_blowfish'] = 'Uw PHP-Versie ondersteunt geen Blowfish versleuteling.';//"Your PHP install does not support blowfish encryption.';
$lang['install_no_mash'] = 'Uw PHP-Versie ondersteunt de functie mhash() niet, dus de SHA-hash is niet mogelijk.';// "Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'Foto (jpg) bevat fouten';//"jpegPhoto contains errors<br />';
$lang['ferror_number'] = '<b>Foutnummer:</b> %s<small>(%s)</small><br/><br/>';//"<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] ='<b>Omschrijving:</b> %s<br/><br/>';// "<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Foutnummer:</b>%s<br/><br/>';//"<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Omschrijving:</b> (geen omschrijving beschikbaar)<br/>';//"<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Is het een phpLDAPadmin fout? Als dat zo is, dan gaarne een <a href=\'%s\'>bugreport</a> invullen';//"Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Onbekend foutnummer:';//"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>Een niet fatale fout in phpLDAPadmin gevonden!</b></td></tr><tr><td>Fout:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Bestand:</td><td><b>%s</b>Regel:<b>%s</b>, aangeroepen door <b>%s</b></td></tr><tr><td>Versie:</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>Graag een <a target=\'new\' href=\'%s\'>bugreport</a> invullen.</center></td></tr></table></center><br />';//"<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'] = '<center><table class=\'notice\'>
<tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Gefeliciteerd! Een fout in phpLDAPadmin gevonden!</b></td></tr>
<tr><td>Fout:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Bestand:</td><td><b>%s</b>, aangeroepen door <b>%s</b></td></tr>
<tr><td>Versie:</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>Graag een bugreport invullen.</center></td></tr>
</table></center><br />';//"Congratulations! You found a bug in phpLDAPadmin.<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!';
// extra strings:
$lang['login_link'] = 'Login...';
$lang['import_ldif_file_title'] = 'Import file from LDIF';
$lang['select_ldif_file'] = 'Selecteer een LDIF file:';
$lang['select_ldif_file_proceed']= 'Ga door &gt;&gt;';
$lang['add_action'] = 'Toevoegen...';
$lang['delete_action'] = 'Verwijderen...';
$lang['rename_action'] = 'Hernoemen...';
$lang['modify_action'] = 'Veranderen...';
$lang['failed'] = 'mislukt';
$lang['ldif_parse_error'] = 'LDIF inleesfout';
$lang['ldif_could_not_add_object'] = 'Kan object niet toevoegen:';
$lang['ldif_could_not_rename_object'] = 'Kan object niet hernoemen';
$lang['ldif_could_not_delete_object'] = 'Kan object niet verwijderen';
$lang['ldif_could_not_modify_object'] = 'Kan object niet wijzigen';
$lang['ldif_line_number'] = 'regelnummer: ';
$lang['ldif_line'] = 'regel: ';
?>

337
lang/recoded/ct.php Normal file
View File

@ -0,0 +1,337 @@
<?php
// Search form
$lang['simple_search_form_str'] = 'Formulari de recerca sencilla';
$lang['advanced_search_form_str'] = 'Formulari de recerca avan&ccedil;ada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objectes els quals';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Abast de la recerca';
$lang['search_ filter'] = 'Filtre de Recerca';
$lang['show_attributes'] = 'Mostrar atributs';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equival';
$lang['starts_with'] = 'comen&ccedil;a amb';
$lang['contains'] = 'cont&eacute;';
$lang['ends_with'] = 'acaba amb';
$lang['sounds_like'] = 'sona com';
// Tree browser
$lang['request_new_feature'] = 'Demanar funcionalitat';
$lang['see_open_requests'] = 'Veure les peticions';
$lang['report_bug'] = 'Reportar una errada';
$lang['see_open_bugs'] = 'Veure les errades';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'sortir';
$lang['create_new'] = 'Crear Nou Objecte';
$lang['view_schema_for'] = 'Veure esquema per a';
$lang['refresh_expanded_containers'] = 'Refrescar tots els contenidors ext&eacute;s per a';
$lang['create_new_entry_on'] = 'Crear nou objecte a';
$lang['view_server_info'] = 'Veure informaci&oacute; del servidor';
$lang['import_from_ldif'] = 'Importar objectes d\'arxiu LDIF';
$lang['logout_of_this_server'] = 'Sortiu d\'aquest servidor';
$lang['logged_in_as'] = 'Conectat com: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No s\'ha pogut determinar l\'arrel del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembla que el servidor LDAP s\'ha configurat per no revelar la seva arrel.';
$lang['please_specify_in_config'] = 'Si us plau especif&iacute;cala a l\'arxiu config.php';
$lang['create_new_entry_in'] = 'Crear un nou objecte a';
$lang['login_link'] = 'Autenticaci&oacute;...';
// Entry display
$lang['delete_this_entry'] = 'Esborrar aquest objecte';
$lang['delete_this_entry_tooltip'] = 'Es tindr&aacute; que confirmar aquesta decisi&oacute;';
$lang['copy_this_entry'] = 'Copiar aquest objecte';
$lang['copy_this_entry_tooltip'] = 'Copiar aquest objecte per una altra localitzaci&oacute;, DN nou, o per un altre servidor.';
$lang['export_to_ldif'] = 'Exportar arxiu LDIF';
$lang['export_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte';
$lang['export_subtree_to_ldif_tooltip'] = 'Desar arxiu LDIF d\'aquest objecte i tots els seus objectes fills';
$lang['export_subtree_to_ldif'] = 'Exportar arxiu LDIF de sub-estructura';
$lang['export_to_ldif_mac'] = 'Avan&ccedil; de l&iacute;nia de Macintosh';
$lang['export_to_ldif_win'] = 'Avan&ccedil; de l&iacute;nia de Windows';
$lang['export_to_ldif_unix'] = 'Avan&ccedil; de l&iacute;nia de Unix';
$lang['create_a_child_entry'] = 'Crear objecte com a fill';
$lang['add_a_jpeg_photo'] = 'Afegir jpegPhoto';
$lang['rename_entry'] = 'Renombrar objecte';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Afegir';
$lang['view'] = 'Veure';
$lang['add_new_attribute'] = 'Afegir nou atribut';
$lang['add_new_attribute_tooltip'] = 'Afegir nous atribut/valor a aquest objecte';
$lang['internal_attributes'] = 'Atributs Interns';
$lang['hide_internal_attrs'] = 'ocultar els atributs interns';
$lang['show_internal_attrs'] = 'mostrar els atributs interns';
$lang['internal_attrs_tooltip'] = 'Els atributs fixes automaticament pel servidor';
$lang['entry_attributes'] = 'Atributs de l\'objecte';
$lang['attr_name_tooltip'] = 'Fes click per veure la definici&oacute; de l\'esquema per tipus d\'atribut \'%s\'';
$lang['click_to_display'] = 'Fer click per a mostrar';
$lang['hidden'] = 'ocultat';
$lang['none'] = 'cap';
$lang['save_changes'] = 'Desar els canvis';
$lang['add_value'] = 'afegir valor';
$lang['add_value_tooltip'] = 'Afegir valor adicional a aquest atribut';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar aquest objecte';
$lang['delete_hint'] = 'Pista: <b>Per a borrar un atribut</b>, buida el formulari de texte i fes click a Desar.';
$lang['attr_schema_hint'] = 'Pista: <b>Per veure l\'esquema d\'un atribut</b>, fes click al nom de l\'atribut.';
$lang['attrs_modified'] = 'Alguns atributs (%s) foren modificats i estan remarcats m&eacute;s abaix.';
$lang['attr_modified'] = 'Un atribut (%s) fore modificat i est&agrave; remarcat m&eacute;s abaix.';
$lang['viewing_read_only'] = 'Mostrant l\'objecte en el mode de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN d\'aquest objecte';
$lang['no_new_attrs_available'] = 'No hi han atributs nous disponibles per aquest objecte';
$lang['binary_value'] = 'Valor binari';
$lang['add_new_binary_attr'] = 'Afegir valor binari';
$lang['add_new_binary_attr_tooltip'] = 'Afegir atribut/valor binari d\'un arxiu';
$lang['alias_for'] = 'Sin&ograve;nim per a';
$lang['download_value'] = 'Descarregar valor';
$lang['delete_attribute'] = 'Esborrar atribut';
$lang['true'] = 'veritat';
$lang['false'] = 'fals';
$lang['none_remove_value'] = 'cap, esborrar valor';
$lang['really_delete_attribute'] = 'Esborrar realment l\'atribut?';
// Schema browser
$lang['the_following_objectclasses'] = 'Les seg&uuml;ents <b>ObjectClass</b> s&oacute;n presents en aquest servidor LDAP.';
$lang['the_following_attributes'] = 'Les seg&uuml;ents <b>attributeTypes</b> s&oacute;n presents en aquest servidor LDAP.';
$lang['the_following_matching'] = 'Les seg&uuml;ents <b>matching rules</b> s&oacute;n presents en aquest servidor LDAP.';
$lang['the_following_syntaxes'] = 'Les seg&uuml;ents <b>sintaxis</b> s&oacute;n presents en aquest servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atribut';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributs Requerits (MUST)';
$lang['optional_attrs'] = 'Atributs Opcionals (MAY)';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descripci&oacute;';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Aquesta ObjectClass &eacute;s <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a aquesta 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';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' esborrada correctament.';
$lang['you_must_specify_a_dn'] = 'Has d\'especificar un DN';
$lang['could_not_delete_entry'] = 'No he pogut esborrar l\'entrada: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nous atributs requerits';
$lang['requires_to_add'] = 'Aquesta acci&oacute; exigeix que s\'afegeixin';
$lang['new_attributes'] = 'nous atributs';
$lang['new_required_attrs_instructions'] = 'Instruccions: Per afegir aquesta ObjectClass a aquest objecte, s\'ha d\'especificar';
$lang['that_this_oclass_requires'] = 'que aquest ObjectClass requereix. Es pot fer amb aquest formulari.';
$lang['add_oclass_and_attrs'] = 'Afegir ObjectClass i Atributs';
// General
$lang['chooser_link_tooltip'] = 'Fer click per seleccionar un objecte gr&agrave;ficament';
$lang['no_updates_in_read_only_mode'] = 'No es pot modificar l\'objecte si el servidor est&agrave; operant en mode inalterable.';
$lang['bad_server_id'] = 'L\'identificador de servidor est&agrave; malament';
$lang['not_enough_login_info'] = 'No tinc suficient informaci&oacute; per conectar al servidor. Si us plau configurar correctament l\'arxiu config.php';
$lang['could_not_connect'] = 'No s\'ha pogut conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No s\'ha pogut fer l\'operaci&oacute; del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'L\'identificador del servidor est&agrave; malament: ';
$lang['success'] = 'Exit';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscant a: ';
$lang['missing_server_id_in_query_string'] = 'No est&agrave; present l\'identificador del servidor a la URL';
$lang['missing_dn_in_query_string'] = 'No est&agrave; present el DN a la URL';
$lang['back_up_p'] = 'Tornar a...';
$lang['no_entries'] = 'no hi han entrades';
$lang['not_logged_in'] = 'No est&agrave;s autenticat';
$lang['could_not_det_base_dn'] = 'No he pogut determinar la base DN';
// Add value form
$lang['add_new'] = 'Afegir';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['distinguished_name'] = 'Nom distinguit';
$lang['current_list_of'] = 'La llista actual de';
$lang['values_for_attribute'] = 'valors per a l\'atribut';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurat una regla \'EQUALITY\' al servidor LDAP, rebr&agrave;s un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Prove&iuml;r el valor per afegir: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que es requereixi afegir nous atributs per satisfer els requisits d\'aquesta ObjectClass';
$lang['syntax'] = 'Sintaxi';
//copy.php
$lang['copy_server_read_only'] = 'No es poden realitzar les modificacions si el servidor est&agrave; operant en mode inalterable';
$lang['copy_dest_dn_blank'] = 'No se emplenat el formulari de DN.';
$lang['copy_dest_already_exists'] = 'L\'entrada de dest&iacute; (%s) encara existeix.';
$lang['copy_dest_container_does_not_exist'] = 'El contenidor de dest&iacute; (%s) no existeix.';
$lang['copy_source_dest_dn_same'] = 'El DN de la font i el DN de dest&iacute; son els mateixos.';
$lang['copy_copying'] = 'Copiant ';
$lang['copy_recursive_copy_progress'] = 'El progr&eacute;s de la c&ograve;pia recurrent';
$lang['copy_building_snapshot'] = 'Constru&iuml;nt la \'foto\' de l\'arbre per a copiar... ';
$lang['copy_successful_like_to'] = 'Exit! Desitges ';
$lang['copy_view_new_entry'] = 'Veure el nou objecte?';
$lang['copy_failed'] = 'Fallida al copiar DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Fent anar l\'arxiu per defecte.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objecte nou';
$lang['copyf_dest_dn'] = 'DN de dest&iacute;';
$lang['copyf_dest_dn_tooltip'] = 'El DN sencer de la nova entrada a ser creada quan es copii l\'entrada font';
$lang['copyf_dest_server'] = 'Servidor de dest&iacute;';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidor funciona solsament si no hi han violacions de l\'esquema.';
$lang['copyf_recursive_copy'] = 'Esborrar tots els fills recurrentment tamb&eacute;?';
//create.php
$lang['create_required_attribute'] = 'T\'has deixar el valor en blanc de l\'atribut requerit <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigint';
$lang['create_here'] = 'aqu&iacute;';
$lang['create_could_not_add'] = 'No he pogut afegir l\'objecte al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objecte';
$lang['createf_choose_temp'] = 'Escull una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla per al proc&egrave;s de creaci&oacute;';
$lang['createf_proceed'] = 'Procedir';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No s\'ha especificat cap plantilla a les variables del POST.';
$lang['ctemplate_config_handler'] = 'La teva configuraci&oacute; especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'per aquesta plantilla. Per&ograve;, aquest manejador no existeix al directori \'plantilla/creaci&oacute;\'.';
// search.php
$lang['you_have_not_logged_into_server'] = 'Encara no t\'has autenticat al servidor selectionat, no pots fer cap recerca.';
$lang['click_to_go_to_login_form'] = 'Clica aqu&iacute; per anar al formulari d\'autenticaci&oacute;';
$lang['unrecognized_criteria_option'] = 'Opci&oacute; de criteri desconeguda: ';
$lang['if_you_want_to_add_criteria'] = 'Si vols afegir el teu propi criteri a la llista. Estigues segur d\'editar search.php per manejar-lo. Sortint.';
$lang['entries_found'] = 'Entrades trobades: ';
$lang['filter_performed'] = 'Filtre realitzat: ';
$lang['search_duration'] = 'Recerca realitzada per phpLDAPadmin a';
$lang['seconds'] = 'segons';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'L\'abast en el que buscar';
$lang['scope_sub'] = 'Sub (tot el sub-arbre)';
$lang['scope_one'] = 'Un (un nivell per d\'avall de la base)';
$lang['scope_base'] = 'Base (sols base dn)';
$lang['standard_ldap_search_filter'] = 'Filtre de recerca est&agrave;ndar de LDAP. Exemple: (&amp;(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre de recerca';
$lang['list_of_attrs_to_display_in_results'] = 'Una llista d\'atributs per mostrar als resultats (separats per comes)';
$lang['show_attributes'] = 'Mostrar atributs';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entrades les quals:';
$lang['equals'] = 'sigui igual';
$lang['starts with'] = 'comenci amb';
$lang['contains'] = 'contingui';
$lang['ends with'] = 'acabi amb';
$lang['sounds like'] = 'soni com';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No s\'ha pogut treure informaci&oacute; LDAP del servidor';
$lang['server_info_for'] = 'Informaci&oacute; del servidor per a: ';
$lang['server_reports_following'] = 'El servidor mostra la seg&uuml;ent informaci&oacute; sobre ell mateix';
$lang['nothing_to_report'] = 'Aquest servidor no t&eacute; res a mostrar.';
//update.php
$lang['update_array_malformed'] = 'l\'update_array est&agrave; malformat. Aix&oacute; podria ser una errada del phpLDAPadmin. Si us plau reportala.';
$lang['could_not_perform_ldap_modify'] = 'No he pogut executar l\'operaci&oacute; ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Vols fer aquests canvis?';
$lang['attribute'] = 'Atribut';
$lang['old_value'] = 'Valor vell';
$lang['new_value'] = 'Valor nou';
$lang['attr_deleted'] = '[atribut esborrat]';
$lang['commit'] = 'Cometre';
$lang['cancel'] = 'Cancel.lar';
$lang['you_made_no_changes'] = 'No has fet cap canvi';
$lang['go_back'] = 'Tornar enrera';
// welcome.php
$lang['welcome_note'] = 'Fes anar el men&uacute; de l\'esquerra per a navegar';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom d\'arxiu insegur: ';
$lang['no_such_file'] = 'Arxiu no existent: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activat els auto_uid_numbers per <b>%s</b> a la teva configuraci&oacute;,
pero no has especificat l\'auto_uid_number_mechanism. Si us plau soluciona
aquest problema.';
$lang['uidpool_not_set'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>uidpool</tt>
a la teva configuraci&oacute; per al servidor <b>%s</b>, pero no has especificat el
audo_uid_number_uid_pool_dn. Si us plau especifica\'l avans de procedir.';
$lang['uidpool_not_exist'] = 'Sembla ser que el uidPool que has especificat a la teva configuraci&oacute; (<tt>%s</tt>)
no existeix.';
$lang['specified_uidpool'] = 'Has especificat l\'<tt>auto_uid_number_mechanism</tt> com <tt>search</tt> a la teva
configuraci&oacute; per al servidor <b>%s</b>, pero no has especificat el
<tt>auto_uid_number_search_base</tt>. Si us plau especifica\'l avans de procedir.';
$lang['auto_uid_invalid_value'] = 'Has especificat un valor no v&agrave;lid per a l\'auto_uid_number_mechanism (<tt>%s</tt>)
a la teva configuraci&oacute;. Sols <tt>uidpool</tt> i <tt>search</tt> son v&agrave;lids.
Si us plau soluciona aquest problema.';
$lang['error_auth_type_config'] = 'Error: Tens un error al teu arxiu de configuraci&oacute;. Els dos &uacute;nics valors acceptats per
\'auth_type\' a la secci&oacute; $servers son \'config\' i \'form\'. Tu has ficat \'%s\',
el qual no est&agrave; acceptat. ';
$lang['php_install_not_supports_tls'] = 'La teva instalaci&oacute; de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he pogut iniciar el TLS.<br />Revisa la teva configuraci&oacute; del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tens un error a l\'arxiu de configuraci&oacute;. auth_type de %s no es v&agrave;lid.';
$lang['ldap_said'] = '<b>LDAP digu&egrave;</b>: %s<br /><br />';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['delete_photo'] = 'Esborrar foto';
$lang['install_not_support_blowfish'] = 'La teva instalaci&oacute; de PHP no soporta el tipus d\'encriptaci&oacute; blowfish.';
$lang['install_no_mash'] = 'La teva instalaci&oacute; de PHP no t&eacute; la funci&oacute; mhash(). No puc fer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto cont&eacute; errors<br />';
$lang['ferror_number'] = '<b>Error n&uacute;mero</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripci&oacute;</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error n&uacute;mero</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripci&oacute;</b>: (no hi ha descripci&oacute;)<br />';
$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho &eacute;s, si us plau <a href=\'%s\'>diguen\'s-ho</a>.';
$lang['ferror_unrecognized_num'] = 'N&uacute;mero d\'error desconegut: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has trobat un error fatal del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Arxiu:</td>
<td><b>%s</b> l&iacute;nia <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>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Env&iacute;a aquesta errada fent click aqu&iacute;</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicitats! Has trobat una errada al phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivell:</td><td><b>%s</b></td></tr>
<tr><td>Arxiu:</td><td><b>%s</b></td></tr>
<tr><td>L&iacute;nia:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versi&oacute; PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versi&oacute; 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>
</table>
<br />
Si us plau env&iacute;a aquesta errada fent click abaix!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar arxiu LDIF';
$lang['select_ldif_file'] = 'Selecciona un arxiu LDIF:';
$lang['select_ldif_file_proceed'] = 'Procedir &amp;gt;&amp;gt;';
//ldif_import
$lang['add_action'] = 'Afegint...';
$lang['delete_action'] = 'Esborrant...';
$lang['rename_action'] = 'Renombrant...';
$lang['modify_action'] = 'Modificant...';
$lang['failed'] = 'fallat';
$lang['ldif_parse_error'] = 'Error de parsejat LDIF';
$lang['ldif_could_not_add_object'] = 'No he pogut afegir l\'objecte:';
$lang['ldif_could_not_rename_object'] = 'No he pogut renombrar l\'objecte:';
$lang['ldif_could_not_delete_object'] = 'No he pogut esborrar l\'objecte:';
$lang['ldif_could_not_modify_object'] = 'No he pogut modificar l\'objecte:';
$lang['ldif_line_number'] = 'L&iacute;nia N&uacute;mero:';
$lang['ldif_line'] = 'L&iacute;nia:';
?>

326
lang/recoded/de.php Normal file
View File

@ -0,0 +1,326 @@
<?php
/*
* Übersetzung von Marius Rieder <marius.rieder@bluewin.ch>
* Uwe Ebel
* Modifikationen von Dieter Kluenter <hdk@dkluenter.de>
*/
// Search form
$lang['simple_search_form_str'] = 'Einfache Suche';//'Simple Search Form';
$lang['advanced_search_form_str'] = 'Experten Suche';//'Advanced Search Form';
$lang['server'] = 'Server';//'Server';
$lang['search_for_entries_whose'] = 'Suche nach Eintr&auml;gen die';//'Search for entries whose';
$lang['base_dn'] = 'Base DN';//'Base DN';
$lang['search_scope'] = 'Suchbereich';//'Search Scope';
$lang['search_ filter'] = 'Suchfilter';//'Search Filter';
$lang['show_attributes'] = 'Zeige Attribute';//'Show Attributtes';
$lang['Search'] = 'Suchen';//'Search';
$lang['equals'] = 'gleich';//'equals';
$lang['starts_with'] = 'beginnt mit';//'starts with';
$lang['contains'] = 'enth&auml;lt';//'contains';
$lang['ends_with'] = 'endet mit';//'ends with';
$lang['sounds_like'] = '&auml;nlich wie';//'sounds like';
// Tree browser
$lang['request_new_feature'] = 'Anfragen von neuen M&ouml;glichkeiten';//'Request a new feature';
$lang['see_open_requests'] = 'Siehe offene Anfragen';//'see open requests';
$lang['report_bug'] = 'Einen Fehler berichten';//'Report a bug';
$lang['see_open_bugs'] = 'Siehe offene Fehler';//'see open bugs';
$lang['schema'] = 'Schema';//'schema';
$lang['search'] = 'suche';//'search';
$lang['refresh'] = 'aktualisieren';//'refresh';
$lang['create'] = 'neu';//'create';
$lang['info'] = 'Info';//'info';
$lang['import'] = 'Import';//'import';
$lang['logout'] = 'abmelden';//'logout';
$lang['create_new'] = 'Neuen Eintrag erzeugen';//'Create New';
$lang['view_schema_for'] = 'Zeige Schema f&uuml;r';//'View schema for';
$lang['refresh_expanded_containers'] = 'Aktualisiere alle ge&ouml;ffneten Container von';//'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Erzeuge einen neuen Eintrag auf';//'Create a new entry on';
$lang['view_server_info'] = 'Zeige Server Informationen';//'View server-supplied information';
$lang['import_from_ldif'] = 'Importiere Eintr&auml;ge von einer LDIF-Datei';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Von diesem Server abmelden';//'Logout of this server';
$lang['logged_in_as'] = 'Angemeldet als: ';//'Logged in as: ';
$lang['read_only'] = 'nur lesen';//'read only';
$lang['could_not_determine_root'] = 'Konnte die Basis ihres LDAP Verzeichnises nicht ermitteln';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'Es scheint das ihr LDAP Server nicht dazu konfiguriert wurde seine Basis bekanntzugeben';//'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Bitte in config.php angeben';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Neuen Eintrag erzeugen auf';//'Create a new entry in';
$lang['login_link'] = 'Anmelden...';//'Login...';
// Entry display
$lang['delete_this_entry'] = 'Diesen Eintrag l&ouml;schen';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'F&uml;r diese Entscheidung wird nochmals nachgefragt.';//'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Diesen Eintrag kopieren';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'Kopiere diese Object an eine anderen Ort: ein neuer DN oder einen anderen Server.';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'Exportieren nach LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'Speichere einen LDIF-Abzug diese Objektes';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'Speicher eine LDIF-Abzug ab diesem Objekt und alle seine Untereintr&auml;ge';//'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = 'Export Unterbaum nach LDIF';//'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = 'Zeilenende f&uuml;r Macintosh';//'Macintosh style line ends';
$lang['export_to_ldif_win'] = 'Zeilenende f&uuml;r Windows';//'Windows style line ends';
$lang['export_to_ldif_unix'] = 'Zeilenende f&uuml;r Unix';//'Unix style line ends';
$lang['create_a_child_entry'] = 'Erzeuge einen Untereintrag';//'Create a child entry';
$lang['add_a_jpeg_photo'] = 'Ein JPEG-Foto hinzuf&uuml;gen';//'Add a jpegPhoto';
$lang['rename_entry'] = 'Eintrag umbenennen';//'Rename Entry';
$lang['rename'] = 'Umbenennen';//'Rename';
$lang['add'] = 'Hinzuf&uuml;gen';//'Add';
$lang['view'] = 'Ansehen';//'View';
$lang['add_new_attribute'] = 'Neues Attribut hinzuf&uuml;gen';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'F&uuml;ge ein neues Attribut/Wert zu diesem Eintrag hinzu';// 'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'Interne Attribute';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'Verdecke interne Attribute';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'Zeige interne Attribute';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'Attribute werden automatisch vom System erzeugt.';//'Attributes set automatically by the system';
$lang['entry_attributes'] = 'Attribute des Eintrages';//'Entry Attributes';
$lang['attr_name_tooltip'] = 'Klicken sie um die Schemadefinition f&uuml;r den Attributtyp \'%s\' anzuzeigen.';//'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'Klicken zum Ansehen';//'click to display';
$lang['hidden'] = 'verdeckt';//'hidden';
$lang['none'] = 'Keine';//'none';
$lang['save_changes'] = '&Auml;nderungen speichern';//'Save Changes';
$lang['add_value'] = 'Wert hinzuf&uuml;gen';//'add value';
$lang['add_value_tooltip'] = 'F&uuml;ge einen weiteren Wert dem Attribut hinzu';//'Add an additional value to this attribute';
$lang['refresh_entry'] = 'Auffrischen';// 'Refresh';
$lang['refresh_this_entry'] = 'Aktualisiere den Entrag';//'Refresh this entry';
$lang['delete_hint'] = 'Hinweis: Um ein Attribut zu l&ouml;schen, leeren Sie den Inhalt des Wertes.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tipp:Um das Schema f&uuml;r ein Attribut anzusehen, gen&uuml;gt ein klick auf den Attributnamen';//'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$lang['attrs_modified'] = 'Einige Attribute (%s) wurden ver&auml;ndert und sind hervorgehoben.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'Ein Attribut (%s) wurde ver&auml;ndert und ist hervorgehoben.';//'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Zeige Eintrag im Nurlesemodus';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = '&Auml;ndere den RDN des Eintrages';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'Keine weiteren Attribute verf&uuml;gbar f&uuml;r diesen Eintrag';//'no new attributes available for this entry';
$lang['binary_value'] = 'Bin&auml;rwert';//'Binary value';
$lang['add_new_binary_attr'] = 'Neuen Bin&auml;rwert hinzuf&uuml;gen';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'F&uuml;ge einen neuen Bin&auml;wert (Attribut/Wert) aus einer Datei hinzu.';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Alias f&uuml;r';//'Alias for';
$lang['download_value'] = 'Wert herunterladen';//'download value';
$lang['delete_attribute'] = 'L&ouml;sche Attribut';//'delete attribute';
$lang['true'] = 'Wahr';//'true';
$lang['false'] = 'Falsch';//'false';
$lang['none_remove_value'] = 'nichts, entferne den Wert';//?? //'none, remove value';
$lang['really_delete_attribute'] = 'L&ouml;sche das Attribut wirklich';//'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = 'Die folgenden Objektklassen werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Die folgenden Attribute werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Die folgenden Suchregeln werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Die folgenden Syntaxe werden vom LDAP-Server unterst&uuml;tzt.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = 'Gehe zur objectClass';//'Jump to an objectClass';
$lang['jump_to_attr'] = 'Gehe zum Attribut';//'Jump to an attribute';
$lang['schema_for_server'] = 'Schema f&uuml;r Server';//'Schema for server';
$lang['required_attrs'] = 'Notwendige Attribute';//'Required Attributes';
$lang['optional_attrs'] = 'Optionale Attribute';//'Optional Attributes';
$lang['OID'] = 'OID';//'OID';
$lang['desc'] = 'Beschreibung';//'Description';
$lang['name'] = 'Name';//'Name';
$lang['is_obsolete'] = 'Diese objectClass ist veraltet';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Abgeleitet von';//'Inherits';
$lang['jump_to_this_oclass'] = 'Gehe zur objectClass Definition';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Treffer-Regel OID';//'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';//'Syntax OID';
$lang['not_applicable'] = 'keine Angabe';//'not applicable';
$lang['not_specified'] = 'nicht spezifiziert';//not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Der Eintrag \'%s\' wurde erfolgreich gel&ouml;scht.';//'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'Ein DN muss angegeben werden.';//'You must specify a DN';
$lang['could_not_delete_entry'] = 'Konnte den Eintrag nicht l&ouml;schen: %s';//'Could not delete the entry: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Neue ben&ouml;tigte Attribute';//'New Required Attributes';
$lang['requires_to_add'] = 'Diese Aktion zwingt sie folgendes hinzuzuf&uuml;gen';//'This action requires you to add';
$lang['new_attributes'] = 'neue Attribute';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Anleitung: Um diese objectClass hinzuzuf&uml;gen m&uuml;ssen sie ';//'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'die von dieser objectClass ben&ouml;tigt werden. Sie k&ouml;nnen dies in diesem Formular machen.';//'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'ObjectClass und Attribute hinzuf&uuml;gen';//'Add ObjectClass and Attributes';
// General
$lang['chooser_link_tooltip'] = 'Klicken um einen Eintrag (DN) grafisch auszuw&auml;hlen.';//"Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'Sie k&ouml;nnen keine Aktualisierungen durchf&uuml;hren w&auml;hrend der Server sich im \'nur lese\'-modus befindet';//'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'Ung&uuml;ltige Server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Nicht gen&uuml;gend Angaben zur Anmeldung am Server. Bitte &uuml;berpr&uuml;fen sie ihre Konfiguration';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Konnte keine Verbindung zum LDAP Server herstellen.';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Kann keine \'ldap_mod_add\' Operationen durchf&uuml;hren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Ung&uuml;ltige Server ID:';//"Bad server_id: ';
$lang['success'] = 'Erfolgreich';//"Success';
$lang['server_colon_pare'] = 'Server';//"Server: ';
$lang['look_in'] = 'Sehe nach in:';//"Looking in: ';
$lang['missing_server_id_in_query_string'] = 'Keine Server ID in der Anfrage angegeben';//'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'Kein DN in der Anfrage angegeben';//'No DN specified in query string!';
$lang['back_up_p'] = 'Backup...';//"Back Up...';
$lang['no_entries'] = 'Keine Eintr&auml;ge';//"no entries';
$lang['not_logged_in'] = 'Nicht eingeloggt';//"Not logged in';
$lang['could_not_det_base_dn'] = 'Konnten Basis-DN nicht ermitteln.';//"Could not determine base DN';
// Add value form
$lang['add_new'] = 'Neu hinzuf&uuml;gen';//'Add new';
$lang['value_to'] = 'Wert auf';//'value to';
$lang['server'] = 'Server';//'Server';
//also used in copy_form.php
$lang['distinguished_name'] = 'Distinguished Name (eindeutiger Name)';// 'Distinguished Name';
$lang['current_list_of'] = 'Aktuelle Liste von';//'Current list of';
$lang['values_for_attribute'] = 'Werte des Attributes';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Info: Sie werden einen "inappropriate matching" Fehler erhalten, falls sie nicht<br />'; //'Note: You will get an "inappropriate matching" error if you have not<br />' .
'eine <tt>EQUALITY</tt> Regel f&uuml;r dieses Attribut auf ihren LDAP Server eingerichtet haben.';//'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Geben sie den Wert ein den sie hinzuf&uuml;gen m&ouml;chten:';//'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Info: Sie werden gegebenenfalles gezwungen sein neue Attribute hinzuzuf&uuml;gen.';//'Note: you may be required to enter new attributes<br />that this objectClass requires.';
$lang['syntax'] = 'Syntax';//'Syntax';
//Copy.php
$lang['copy_server_read_only'] = 'Sie k&ouml;nnen keine Aktualisierungen durchf&uuml;hren w&auml;hrend der Server sich im \'nur lese\'-modus befindet';//"You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'Sie haben kein Ziel DN angegeben';//"You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'Der Zieleintrag (%s) existiert bereits.';//"The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'Der Zielcontainer (%s) existiert nicht.';//'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'Ursprung DN und Ziel DN sind identisch';//"The source and destination DN are the same.';
$lang['copy_copying'] = 'Kopieren';//"Copying ';
$lang['copy_recursive_copy_progress'] = 'Rekursives Kopieren im Gange';//"Recursive copy progress';
$lang['copy_building_snapshot'] = 'Erzeuge Speicherauszug des zu kopierenden Verzeichnisses';//"Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Kopieren erfolgreich! Wollen sie den';//"Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'neuen Eintrag ansehen';//"view the new entry';
$lang['copy_failed'] = 'Kopieren des DN fehlgeschlagen: ';//'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warnung: Template Datei nicht gefunden';//'Warning: missing template file, ';
$lang['using_default'] = 'Standardeinstellung verwenden';//'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopiere';//"Copy ';
$lang['copyf_to_new_object'] = 'in ein neues Objekt';//"to a new object';
$lang['copyf_dest_dn'] = 'Ziel DN';//"Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'Der komplette DN des Eintrages der beim Kopieren erzeugt wird.';//'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'Zielserver';//"Destination Server';
$lang['copyf_note'] = 'Info: Kopieren zwischen unterschiedlichen Servern funktioniert nur wenn keine Unvereinbarkeiten im Schema auftreten';//"Note: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Rekursiv kopiert auch alle Unterobjekte';//"Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'Fehler, sie haben einen Wert f&uuml;r ein ben&ouml;tigtes Attribut frei gelassen.';//"Error, you left the value blank for required attribute ';
$lang['create_redirecting'] = 'Weiterleitung';//"Redirecting';
$lang['create_here'] = 'hier';//"here';
$lang['create_could_not_add'] = 'Konnte das Objekt dem LDAP-Server nicht hinzuf&uuml;gen.';//"Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Erzeuge einen neuen Eintag';//"Create Object';
$lang['createf_choose_temp'] = 'Vorlage w&auml;hlen';//"Choose a template';
$lang['createf_select_temp'] = 'W&auml;hlen sie eine Vorlage f&uuml;r das Objekt';//"Select a template for the creation process';
$lang['createf_proceed'] = 'Weiter';//"Proceed >>';
//creation_template.php
$lang['ctemplate_on_server'] = 'Auf dem Server';//"On server';
$lang['ctemplate_no_template'] = 'Keine Vorlage angegeben in den POST Variabeln';//"No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'Ihre Konfiguration spezifiziert f&uuml;r diese Vorlage die Routine';//"Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = '. Diese Routine existiert nicht im \'templates/creation\' Verzeichnis';//"for this template. But, this handler does not exist in the 'templates/creation' directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'Sie haben sich am ausgew&auml;hlten Server nicht angemeldet. Sie k&oouml;nnen keine Suche durchf&uuml;hren.';//'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Klicken sie hier um zur Anmeldeseite zu gelangen';//'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unbekannte Option';// 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Falls eigene Auswahlkriterien hinzugef&uuml;gt werden sollen, muss \'search.php\' editiert werden';//'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Gefundene Eintr&auml;ge: ';//'Entries found: ';
$lang['filter_performed'] = 'Angewanter Filter: ';//'Filter performed: ';
$lang['search_duration'] = 'Suche durch phpLDAPadmin ausgef&uuml;hrt in';//'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'Sekunden';//'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Bereich der durchsucht wird.';//'The scope in which to search';
$lang['scope_sub'] = 'Sub (Suchbase und alle Unterverzeichnisebenen)';//'Sub (entire subtree)';
$lang['scope_one'] = 'One (Suchbasis und eine Unterverzeichnisebene)';//'One (one level beneath base)';
$lang['scope_base'] = 'Base (Nur Suchbasis)';//'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP Suchfilter. Bsp.: (&(sn=Smith)(givenname=David))';//'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Suchfilter';//'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'Kommaseparierte Liste der anzuzeigenden Attribute.';//'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Zeige Attribute';//'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Suche nach Eintr&auml;gen welche:';//'Search for entries whose:';
$lang['equals'] = 'entspricht';//'equals';
$lang['starts with'] = 'beginnt mit';//'starts with';
$lang['contains'] = 'enth&auml;lt';//'contains';
$lang['ends with'] = 'endet auf';//'ends with';
$lang['sounds like'] = 'klingt wie';//'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Konnte keine LDAP Informationen vom Server empfangen';//'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Serverinformationen f&uuml;r: ';//'Server info for: ';
$lang['server_reports_following'] = 'Der Server meldete die folgenden Informationen &uuml;ber sich';//'Server reports the following information about itself';
$lang['nothing_to_report'] = 'Der Server hat keine Informationen gemeldet';//'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'Das \'update_array\' wird falsch dargestellt. Dies k&ouml;nnte ein phpLDAPadmin Fehler sein. Bitte Berichten sie uns davon.';//'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Konnte die \'ldap_modify\' Operation nicht ausf&uuml;hren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Wollen sie diese &Auml;nderungen &uuml;bernehmen?';//'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';//'Attribute';
$lang['old_value'] = 'Alter Wert';//'Old Value';
$lang['new_value'] = 'Neuer Wert';//'New Value';
$lang['attr_deleted'] = '[Wert gel&ouml;scht]';//'[attribute deleted]';
$lang['commit'] = 'Anwenden';//'Commit';
$lang['cancel'] = 'Verwerfen';//'Cancel';
$lang['you_made_no_changes'] = 'Sie haben keine &Auml;nderungen vorgenommen.';//'You made no changes';
$lang['go_back'] = 'Zur&uuml;ck';//'Go back';
// welcome.php
$lang['welcome_note'] = 'Ben&uuml;tzen sie das Menu auf der linken Seite zur Navigation.';//'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsicherer Dateiname:';//'Unsafe file name: ';
$lang['no_such_file'] = 'Keine Datei unter diesem Namen';//'No such file: ';
//function.php
$lang['auto_update_not_setup'] = '<tt>auto_uid_numbers</tt> wurde in der Konfiguration (<b>%s</b> aktiviert, aber der Mechanismus (auto_uid_number_mechanism) nicht. Bitte diese Problem korrigieren.';//"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'] = 'Der Mechanismus <tt>auto_uid_number_mechanism</tt> ist als <tt>uidpool</tt> f&uuml;r den Server <b>%s</b> festgelegt, jedoch wurde nicht der <tt>auto_uid_number_uid_pool_dn</tt> festgelegt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt> 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['uidpool_not_exist'] = 'Es scheint so, dass der <tt>uidPool</tt> - der in der Konfiguration festgelegt ist - nicht vorhanden ist.';//"It appears that the uidPool you specified in your configuration (<tt>%s</tt>) does not exist.';
$lang['specified_uidpool'] = 'Der <tt>auto_uid_number_mechanism</tt> wurde auf <tt>search</tt> in der Konfiguration des Servers <b>%s</b> festgelegt, aber es wurde der Wert f&uuml; <tt>auto_uid_number_search_base</tt> nicht gesetzt. Bitte korrigieren und dann weiter verfahren.';//"You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your configuration for server <b>%s</b>, but you did not specify the <tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'Es wurde ein ung&uuml;ltiger Wert f&uuml;r <tt>auto_uid_number_mechanism</tt>(%s) festgelegt. G&uuml;ltig sind nur die Werte <tt>uidpool</tt> und <tt>search</tt>. Bitte den Fehler korrigieren. ';//"You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>) in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid. Please correct this problem.';
$lang['error_auth_type_config'] = 'Fehler: Ein Fehler ist in der Konfiguration (config.php) aufgetreten. Die einzigen beiden erlaubten Werte im Konfigurationsteil \'auth_type\' zu einem LDAP-Server ist <b>\'config\'</b> oder <b>\'form\'</b>. Eingetragen ist aber <b>%s</b>, was nicht erlaubt ist.';//"Error: You have an error in your config file. The only two allowed values for 'auth_type' in the $servers section are 'config' and 'form'. You entered '%s', which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Die verwendete PHP-Version unterst&uuml;tzt kein TLS (verschl&uuml;sselte Verbindung).';//"Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'TLS konnte nicht gestartet werden.<br/>Bitte die LDAP-Server-Konfiguration &uuml;berpr&uuml;fen.';//"Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'Die Konfigurationsdatei enth&auml;lt einen Fehler. Der Eintrag f&uuml;r \'auth_type\' %s ist nicht g&uuml,ltig';// 'You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP meldet</b>: %s<br/><br/>';//"<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Fehler';//"Error';
$lang['fbrowse'] = '&Uuml;berfliegen';//"browse';
$lang['delete_photo'] = 'L&ouml;sche Foto';//"Delete Photo';
$lang['install_not_support_blowfish'] = 'Die verwendete PHP-Version unterst&uuml;tzt keine Blowfish Verschl&uuml;sselung.';//"Your PHP install does not support blowfish encryption.';
$lang['install_no_mash'] = 'Die verwendete PHP-Version unterst&uuml;tzt nicht die Funktion mhash(), daher kann kein SHA Hash verwendet werden.';// "Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'Die Bilddatei enth&auml;lt Fehler';//"jpegPhoto contains errors<br />';
$lang['ferror_number'] = '<b>Fehlernummer:</b> %s<small>(%s)</small><br/><br/>';//"<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] ='<b>Beschreibung:</b> %s<br/><br/>';// "<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Fehlernummer:</b>%s<br/><br/>';//"<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Beschreibung:</b> (keine Beschreibung verf&uuml;gbar)<br/>';//"<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Ist das ein phpLDAPadmin Fehler? Wenn dies so ist, dann bitte <a href=\'%s\'>dar&uuml;ber berichten</a>';//"Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Unbekannte Fehlernummer:';//"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>Ein nicht fataler Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</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\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"<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'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Gratulation, einen Fehler in phpLDAPadmin gefunden!</b></td></tr><tr><td>Fehler:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Datei:</td><td><b>%s</b>Zeile:<b>%s</b>, aufgerufen von <b>%s</b></td></tr><tr><td>Version:</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\'>Bitte diesen Fehler melden (durch anklicken).</a>.</center></td></tr></table></center><br />';//"Congratulations! You found a bug in phpLDAPadmin.<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'] = 'Importiere LDIF Datei';//'Import LDIF File';
$lang['select_ldif_file'] = 'LDIF Datei ausw&auml;hlen';//'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Ausf&uuml;hren >>';//'Proceed >>';
//ldif_import
$lang['add_action'] = 'Hinzuf&uuml;gen...';//'Adding...';
$lang['delete_action'] = 'Entfernen...';//'Deleting...';
$lang['rename_action'] = 'Umbenennen...';//'Renaming...';
$lang['modify_action'] = 'Ab&auml;ndern...';//'Modifying...';
$lang['failed'] = 'fehlgeschlagen';//'failed';
$lang['ldif_parse_error'] = 'LDIF Pars Fehler';//'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Konnte das Objekt nicht hinzuf&uuml;gen:';//'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Konnte das Objekt nicht umbenennen:';//'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Konnte das Objekt nicht entfernen:';//'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Konnte das Objekt nicht ab&auml;ndern:';//'Could not modify object:';
$lang['ldif_line_number'] = 'Anzahl Zeilen:';//'Line Number:';
$lang['ldif_line'] = 'Zeile:';//'Line:';
?>

354
lang/recoded/en.php Normal file
View File

@ -0,0 +1,354 @@
<?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!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Simple Search Form';
$lang['advanced_search_form_str'] = 'Advanced Search Form';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base <acronym title="Distinguished Name">DN</acronym>';
$lang['search_scope'] = 'Search Scope';
$lang['search_ filter'] = 'Search Filter';
$lang['show_attributes'] = 'Show Attributtes';
$lang['Search'] = 'Search';
$lang['equals'] = 'equals';
$lang['starts_with'] = 'starts with';
$lang['contains'] = 'contains';
$lang['ends_with'] = 'ends with';
$lang['sounds_like'] = 'sounds like';
// Tree browser
$lang['request_new_feature'] = 'Request a new feature';
$lang['see_open_requests'] = 'see open requests';
$lang['report_bug'] = 'Report a bug';
$lang['see_open_bugs'] = 'see open bugs';
$lang['schema'] = 'schema';
$lang['search'] = 'search';
$lang['create'] = 'create';
$lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'refresh';
$lang['logout'] = 'logout';
$lang['create_new'] = '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_server_info'] = 'View server-supplied information';
$lang['import_from_ldif'] = 'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Logout of this server';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['read_only'] = 'read only';
$lang['could_not_determine_root'] = 'Could not determine the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.';
$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...';
// 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_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = 'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = 'Macintosh style line ends';
$lang['export_to_ldif_win'] = 'Windows style line ends';
$lang['export_to_ldif_unix'] = 'Unix style line ends';
$lang['create_a_child_entry'] = 'Create a child entry';
$lang['add_a_jpeg_photo'] = 'Add a jpegPhoto';
$lang['rename_entry'] = 'Rename Entry';
$lang['rename'] = 'Rename';
$lang['add'] = 'Add';
$lang['view'] = 'View';
$lang['add_new_attribute'] = 'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'Internal Attributes';
$lang['hide_internal_attrs'] = 'Hide internal attributes';
$lang['show_internal_attrs'] = 'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'Attributes set automatically by the system';
$lang['entry_attributes'] = 'Entry Attributes';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'click \'+\' to display';
$lang['hidden'] = 'hidden';
$lang['none'] = 'none';
$lang['save_changes'] = 'Save Changes';
$lang['add_value'] = 'add value';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['refresh_entry'] = 'Refresh';
$lang['refresh_this_entry'] = 'Refresh this entry';
$lang['delete_hint'] = 'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$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['change_entry_rdn'] = 'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['really_delete_attribute'] = 'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = 'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute';
$lang['schema_for_server'] = 'Schema for server';
$lang['required_attrs'] = 'Required Attributes';
$lang['optional_attrs'] = 'Optional Attributes';
$lang['OID'] = 'OID';
$lang['desc'] = 'Description';
$lang['name'] = 'Name';
$lang['is_obsolete'] = 'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Inherits';
$lang['jump_to_this_oclass'] = 'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['not_applicable'] = 'not applicable';
$lang['not_specified'] = 'not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'You must specify a DN';
$lang['could_not_delete_entry'] = 'Could not delete the entry: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'New Required Attributes';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = '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['add_oclass_and_attrs'] = 'Add ObjectClass and Attributes';
// 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['bad_server_id'] = 'Bad server id';
$lang['not_enough_login_info'] = 'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$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';
// Add value form
$lang['add_new'] = 'Add new';
$lang['value_to'] = 'value to';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = 'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not<br />' .
'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$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';
//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_dest_already_exists'] = 'The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'The source and destination DN are the same.';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = 'Recursive copy progress';
$lang['copy_building_snapshot'] = 'Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'view the new entry';
$lang['copy_failed'] = 'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Warning: missing template file, ';
$lang['using_default'] = 'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
$lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = 'Destination 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'] = 'Destination Server';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute <b>%s</b>.';
$lang['create_redirecting'] = 'Redirecting';
$lang['create_here'] = 'here';
$lang['create_could_not_add'] = 'Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'Create Object';
$lang['createf_choose_temp'] = 'Choose a template';
$lang['createf_select_temp'] = 'Select a template for the creation process';
$lang['createf_proceed'] = 'Proceed';
//creation_template.php
$lang['ctemplate_on_server'] = 'On server';
$lang['ctemplate_no_template'] = 'No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = 'for this template. But, this handler does not exist in the templates/creation directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'Entries found: ';
$lang['filter_performed'] = 'Filter performed: ';
$lang['search_duration'] = 'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'The scope in which to search';
$lang['scope_sub'] = 'Sub (entire subtree)';
$lang['scope_one'] = 'One (one level beneath base)';
$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';
$lang['ends with'] = 'ends with';
$lang['sounds like'] = 'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['nothing_to_report'] = 'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['attribute'] = 'Attribute';
$lang['old_value'] = 'Old Value';
$lang['new_value'] = 'New Value';
$lang['attr_deleted'] = '[attribute deleted]';
$lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Unsafe file name: ';
$lang['no_such_file'] = '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 <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt>
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['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration (<tt>%s</tt>)
does not exist.';
$lang['specified_uidpool'] = 'You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your
configuration for server <b>%s</b>, but you did not specify the
<tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>)
in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = 'Error: You have an error in your config file. The only two allowed values
for auth_type in the $servers section are \'config\' and \'form\'. You entered \'%s\',
which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP said</b>: %s<br /><br />';
$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_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'] = '<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$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 />';
$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>
<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'] = 'Import LDIF File';
$lang['select_ldif_file'] = 'Select an LDIF file:';
$lang['select_ldif_file_proceed'] = 'Proceed >>';
//ldif_import
$lang['add_action'] = 'Adding...';
$lang['delete_action'] = 'Deleting...';
$lang['rename_action'] = 'Renaming...';
$lang['modify_action'] = 'Modifying...';
$lang['failed'] = 'failed';
$lang['ldif_parse_error'] = 'LDIF Parse Error';
$lang['ldif_could_not_add_object'] = 'Could not add object:';
$lang['ldif_could_not_rename_object'] = 'Could not rename object:';
$lang['ldif_could_not_delete_object'] = 'Could not delete object:';
$lang['ldif_could_not_modify_object'] = 'Could not modify object:';
$lang['ldif_line_number'] = 'Line Number:';
$lang['ldif_line'] = 'Line:';
?>

335
lang/recoded/es.php Normal file
View File

@ -0,0 +1,335 @@
<?php
// Search form
$lang['simple_search_form_str'] = 'Formulario de b&uacute;squeda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de b&uacute;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&uacute;squeda';
$lang['search_ filter'] = 'Filtro de B&uacute;squeda';
$lang['show_attributes'] = 'Mostrar 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';
// 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['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
$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&oacute;n del servidor';
$lang['import_from_ldif'] = 'Importar objetos de archivo LDIF';
$lang['logout_of_this_server'] = 'Salir de este 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&iacute;cala en el archivo config.php';
$lang['create_new_entry_in'] = 'Crear un nuevo objeto en';
$lang['login_link'] = 'Autenticaci&oacute;n...';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendr&aacute; que confirmar esta decision';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto para otra localizaci&oacute;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_to_ldif_mac'] = 'Avance de l&iacute;nea de Macintosh';
$lang['export_to_ldif_win'] = 'Avance de l&iacute;nea de Windows';
$lang['export_to_ldif_unix'] = 'Avance de l&iacute;nea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$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['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los canvios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Pista: <b>Para borrar un atributo</b>, vac&iacute;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&aacute;s abajo.';
$lang['attr_modified'] = 'Un atributo (%s) fu&eacute; modificado y est&aacute; remarcado m&aacute;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['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'] = 'Sin&oacute;nimo para';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
// Schema browser
$lang['the_following_objectclasses'] = 'Los siguientes <b>ObjectClass</b> est&aacute;n presentes en este servidor LDAP.';
$lang['the_following_attributes'] = 'Los siguientes <b>attributeTypes</b> est&aacute;n presentes en este servidor LDAP.';
$lang['the_following_matching'] = 'Los siguientes <b>matching rules</b> est&aacute;n presentes en este servidor LDAP.';
$lang['the_following_syntaxes'] = 'Los siguientes <b>sintaxis</b> est&aacute;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['OID'] = 'OID';
$lang['desc'] = 'Descripci&oacute;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';
// 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';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acci&oacute;n exige que se agreguen';
$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';
// 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&aacute; operando en modo inalterable.';
$lang['bad_server_id'] = 'El identificador de servidor est&aacute; mal';
$lang['not_enough_login_info'] = 'No tengo suficiente informaci&oacute;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&oacute;n del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'El identificador del servidor est&aacute; mal: ';
$lang['success'] = 'Exito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando a: ';
$lang['missing_server_id_in_query_string'] = 'No est&aacute; presente el identificador del servidor en la URL';
$lang['missing_dn_in_query_string'] = 'No est&aacute; presente el DN en la URL';
$lang['back_up_p'] = 'Volver a...';
$lang['no_entries'] = 'no hay entradas';
$lang['not_logged_in'] = 'No est&aacute;s autenticado';
$lang['could_not_det_base_dn'] = 'No he podido determinar la base DN';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$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&aacute;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';
//copy.php
$lang['copy_server_read_only'] = 'No se pueden realizar las modificaciones si el servidor est&aacute; 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_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: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
//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&eacute;n?';
//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&iacute;';
$lang['create_could_not_add'] = 'No he podido agregar 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&oacute;n';
$lang['createf_proceed'] = 'Proceder';
//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&oacute;n especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'para esta plantilla. Pero este manejador no existe en el directorio \'plantilla/creaci&oacute;n\'.';
// search.php
$lang['you_have_not_logged_into_server'] = 'A&uacute;n no te has autenticado en ell servidor seleccionado, no puedes hacer ninguna b&uacute;squeda.';
$lang['click_to_go_to_login_form'] = 'Hac click aqu&iacute; para ir al formulario de autenticaci&oacute;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&uacute;squeda realitzada para phpLDAPadmin a';
$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&uacute;squeda est&aacute;ndar de LDAP. Ejemplo: (&amp;(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtro de b&uacute;squeda';
$lang['list_of_attrs_to_display_in_results'] = 'Una lista de atributos para mostrar 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['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['sounds like'] = 'suene como';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido sacar informaci&oacute;n LDAP del servidor';
$lang['server_info_for'] = 'Informaci&oacute;n del servidor para: ';
$lang['server_reports_following'] = 'El servidor muestra la siguiente informaci&oacute;n sobre el mismo';
$lang['nothing_to_report'] = 'Este servidor no tiene nada a mostrar.';
//update.php
$lang['update_array_malformed'] = 'el update_array est&aacute; mal formado. Esto podr&iacute;a ser un error del phpLDAPadmin. Por favor reportalo.';
$lang['could_not_perform_ldap_modify'] = 'No he podido ejecutar la operaci&oacute;n ldap_modify.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos canvios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ning&uacute;n canvio';
$lang['go_back'] = 'Volver atr&aacute;s';
// welcome.php
$lang['welcome_note'] = 'Usa el men&uacute; de la izquierda para navegar';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para <b>%s</b> en tu configuraci&oacute;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&oacute;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&oacute;n (<tt>%s</tt>)
no existe.';
$lang['specified_uidpool'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>search</tt> en tu
configuraci&oacute;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&aacute;lido para el auto_uid_number_mechanism (<tt>%s</tt>)
en tu configuraci&oacute;n. Solo <tt>uidpool</tt> y <tt>search</tt> son v&aacute;lidos.
Por favor soluciona este problema.';
$lang['error_auth_type_config'] = 'Error: Tienes un error en tu archivo de configuraci&oacute;n. Los dos &uacute;nicos valores aceptados para
\'auth_type\' en la secci&oacute;n $servers son \'config\' y \'form\'. Tu has puesto \'%s\',
el cual no est&aacute; aceptado. ';
$lang['php_install_not_supports_tls'] = 'Tu instalaci&oacute;n de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he podido iniciar el TLS.<br />Revisa tu configuraci&oacute;n del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tienes un error en el archivo de configuraci&oacute;n. auth_type de %s no es v&aacute;lido.';
$lang['ldap_said'] = '<b>LDAP dijo</b>: %s<br /><br />';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Tu instalaci&oacute;n de PHP no soporta los tipos de encriptaci&oacute;n blowfish.';
$lang['install_no_mash'] = 'Tu instalaci&oacute;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&uacute;mero</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripci&oacute;n</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error n&uacute;mero</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripci&oacute;n</b>: (no hay descripci&oacute;n)<br />';
$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si as&iacute; es, por favor <a href=\'%s\'>d&iacute;noslo</a>.';
$lang['ferror_unrecognized_num'] = 'N&uacute;mero de error desconocido: ';
$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 fatal del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</td>
<td><b>%s</b> l&iacute;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&iacute;a este error haciendo click aqu&iacute;</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el 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>L&iacute;nea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versi&oacute;n PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versi&oacute;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>
</table>
<br />
Por favor env&iacute;a este error haciendo click 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 &amp;gt;&amp;gt;';
//ldif_import
$lang['add_action'] = 'A&ntilde;adiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['failed'] = 'fallado';
$lang['ldif_parse_error'] = 'Error de parseado LDIF';
$lang['ldif_could_not_add_object'] = 'No he podido a&ntilde;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&uacute;mero:';
$lang['ldif_line'] = 'Linea:';
?>

355
lang/recoded/fr.php Normal file
View File

@ -0,0 +1,355 @@
<?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!
*
*/
/*
* The $lang array contains all the strings that phpLDAPadmin uses.
* Each language file simply defines this aray with strings in its
* language.
*/
// Search form
$lang['simple_search_form_str'] = 'Recherche Simple';
$lang['advanced_search_form_str'] = 'Recherche avanc&eacute;e';
$lang['server'] = 'Serveur';
$lang['search_for_entries_whose'] = 'Chercher les entr&eacute;es dont';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Port&eacute;e de la recherche';
$lang['search_ filter'] = 'Filtre de la recherche';
$lang['show_attributes'] = 'Montrer les attributs';
$lang['Search'] = 'Chercher';
$lang['equals'] = 'est &eacute;gal &agrave;';
$lang['starts_with'] = 'commence par';
$lang['contains'] = 'contient';
$lang['ends_with'] = 'finit par';
$lang['sounds_like'] = 'ressemble &agrave;';
// tree.php
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalit&eacute;';
$lang['see_open_requests'] = 'voir les demandes en cours';
$lang['report_bug'] = 'Signaler un bogue';
$lang['see_open_bugs'] = 'voir les bogues en cours';
$lang['schema'] = 'schema';
$lang['search'] = 'chercher';
$lang['refresh'] = 'rafra&icirc;chir';
$lang['create'] = 'cr&eacute;er';
$lang['info'] = 'info';
$lang['import'] = 'importer';
$lang['logout'] = 'se d&eacute;connecter';
$lang['create_new'] = 'Cr&eacute;er';
$lang['view_schema_for'] = 'Voir les schemas pour';
$lang['refresh_expanded_containers'] = 'Rafra&icirc;chir tous les containeurs &eacute;tendus';
$lang['create_new_entry_on'] = 'Cr&eacute;er une nouvelle entr&eacute;e sur';
$lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entr&eacute;es &agrave; partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se d&eacute;connecter de ce serveur';
$lang['logged_in_as'] = 'Se connecter en tant que: ';
$lang['read_only'] = 'Lecture seule';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être d&eacute;termin&eacute;e.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a &eacute;t&eacute; configur&eacute; de telle sorte que la racine ne soit pas r&eacute;vel&eacute;e.';
$lang['please_specify_in_config'] = 'Veuillez le sp&eacute;cifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Cr&eacute;er une nouvelle entr&eacute;e dans';
$lang['login_link'] = 'Login...';
// entry display
$lang['delete_this_entry'] = 'Supprimer cette entr&eacute;e';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demand&eacute; confirmation';
$lang['copy_this_entry'] = 'Copier cette entr&eacute;e';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export_to_ldif'] = 'Exporter au format LDIF';
$lang['export_to_ldif_tooltip'] = 'Sauvegarder cet objet au format LDIF';
$lang['export_subtree_to_ldif_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets au format LDIF';
$lang['export_subtree_to_ldif'] = 'Exporter l\'arborescence au format LDIF';
$lang['export_to_ldif_mac'] = 'Fins de ligne Macintosh';
$lang['export_to_ldif_win'] = 'Fins de lignes Windows';
$lang['export_to_ldif_unix'] = 'Fins de ligne Unix ';
$lang['create_a_child_entry'] = 'Cr&eacute;er une sous-entr&eacute;e';
$lang['add_a_jpeg_photo'] = 'Ajouter un attribut jpegPhoto';
$lang['rename_entry'] = 'Renommer l\'entr&eacute;e';
$lang['rename'] = 'Renommer';
$lang['add'] = 'Ajouter';
$lang['view'] = 'Voir';
$lang['add_new_attribute'] = 'Ajouter un nouvel attribut';
$lang['add_new_attribute_tooltip'] = 'Ajouter un nouvel attribut/une nouvelle valeur &agrave; cette entr&eacute;e';
$lang['internal_attributes'] = 'Attributs Internes';
$lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['internal_attrs_tooltip'] = 'Attributs &eacute;tablis automatiquement par le syst&egrave;me';
$lang['entry_attributes'] = 'Attributs de l\'entr&eacute;e';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la d&eacute;finition de sch&eacute;ma pour l\'attribut de type \'%s\'';
$lang['click_to_display'] = 'Cliquer pour afficher';
$lang['hidden'] = 'cach&eacute;';
$lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur suppl&eacute;mentaire &agrave; cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
$lang['refresh'] = 'rafra&icirc;chir';
$lang['refresh_this_entry'] = 'Rafra&icirc;chir cette entr&eacute;e';
$lang['delete_hint'] = 'Note: <b>Pour effacer un attribut</b>, laissez le champs vide et cliquez pour sauvegarder.';
$lang['attr_schema_hint'] = 'Note: <b>Pour voir le sch&eacute;ma pour un attribut</b>, cliquer sur le nom de l\'attribut.';
$lang['attrs_modified'] = 'Certains attributs (%s) ont &eacute;t&eacute; mdoifi&eacute;s et sont mis en &eacute;vidence ci-dessous.';
$lang['attr_modified'] = 'Un attribut (%s) a &eacute;t&eacute; modifi&eacute; et est mis en &eacute;vidence ci-dessous.';
$lang['viewing_read_only'] = 'Voir une entr&eacute;e en lecture seule.';
$lang['change_entry_rdn'] = 'Changer le RDN de cette entr&eacute;e';
$lang['no_new_attrs_available'] = 'plus d\'attributs disponibles pour cette entr&eacute;e';
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['add_new_binary_attr_tooltip'] = 'Ajouter un nouvel attribut &agrave; partir d\'un fichier';
$lang['alias_for'] = 'Alias pour';
$lang['download_value'] = 'T&eacute;l&eacute;charger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
$lang['false'] = 'faux';
$lang['none_remove_value'] = 'aucun, suppression de la valeur';
$lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
// Schema browser
$lang['the_following_objectclasses'] = 'Les <b>classes d\'objets (objectClasses)</b> suivantes sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les <b>types d\'attributs (attributesTypes)</b> suivants sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les <b>op&eacute;rateurs (matching rules)</b> suivants sont support&eacute;s par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les <b>syntaxes</b> suivantes sont support&eacute;s par ce serveur LDAP.';
$lang['jump_to_objectclass'] = 'Aller &agrave; une classe d\'objet';
$lang['jump_to_attr'] = 'Aller &agrave; un attribut';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['optional_attrs'] = 'Attributs facultatifs';
$lang['OID'] = 'OID';
$lang['desc'] = 'Description';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Cette classe d\'objet est <b>obsolete</b>';
$lang['inherits'] = 'h&eacute;rite';
$lang['jump_to_this_oclass'] = 'Aller &agrave; la d&eacute;finition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'op&eacute;rateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
$lang['not_applicable'] = 'not applicable';
$lang['not_specified'] = 'non sp&eacute;cifi&eacute;';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entr&eacute;e \'%s\' r&eacute;ussie.';
$lang['you_must_specify_a_dn'] = 'Un DN doit être sp&eacute;cifi&eacute;';
$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entr&eacute;e: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nouveaux Attributs Obligatoires';
$lang['requires_to_add'] = 'Cette action n&eacute;cessite d\'ajouter';
$lang['new_attributes'] = 'nouveaux attributs';
$lang['new_required_attrs_instructions'] = 'Instructions: Afin d\'ajouter cette classe d\'objet, vous devez sp&eacute;cifier';
$lang['that_this_oclass_requires'] = 'dont cette classe d\'objet a besoin. Vous pouvez le faire avec ce formulaire.';
$lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
// General
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entr&eacute;(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises &agrave; 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&icirc;, v&eacute;rifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'op&eacute;ration ldap_mod_add.';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succ&egrave;s';
$lang['server_colon_pare'] = 'Serveur: ';
$lang['look_in'] = 'Recherche dans: ';
$lang['missing_server_id_in_query_string'] = 'Aucun serveur ID sp&eacute;cifi&eacute; dans la ligne de requ&ecirc;te !';
$lang['missing_dn_in_query_string'] = 'Aucun DN sp&eacute;cifi&eacute; dans la ligne de requ&ecirc;te !';
$lang['back_up_p'] = 'Retour...';
$lang['no_entries'] = 'aucune entr&eacute;e';
$lang['not_logged_in'] = 'Vous n\'&ecirc; pas loggu&eacute;';
$lang['could_not_det_base_dn'] = 'Impossible de d&eacute;terminer le DN de base';
// Add value form
$lang['add_new'] = 'Ajout d\'une nouvelle valeur ';
$lang['value_to'] = 'pour';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Liste actuelle de';
$lang['values_for_attribute'] = 'valeur(s) pour l\' attribut';
$lang['inappropriate_matching_note'] = 'Note: Vous obtiendrez une erreur de type "inappropriate matching" si vous n\'avez pas<br />' .
'd&eacute;fini une r&egrave;gle <tt>EQUALITY</tt> pour cet attribut aupr&egrave;s du serveur LDAP.';
$lang['enter_value_to_add'] = 'Entrez la valeur que vous voulez ajouter:';
$lang['new_required_attrs_note'] = 'Note: vous aurez peut-&ecirc;tre besoin d\'introduire de nouveaux attributs requis pour cette classe d\'objet';
$lang['syntax'] = 'Syntaxe';
//Copy.php
$lang['copy_server_read_only'] = 'Des mises &agrave; jours ne peuvent pas être effectu&eacute;es si le serveur est en lecture seule';
$lang['copy_dest_dn_blank'] = 'Vous avez laiss&eacute; le DN de destination vide.';
$lang['copy_dest_already_exists'] = 'L\'entr&eacute;e de destination (%s) existe d&eacute;j&agrave;.';
$lang['copy_dest_container_does_not_exist'] = 'Le conteneur de destination (%s) n\'existe pas.';
$lang['copy_source_dest_dn_same'] = 'Le DN d\'origine et le DN de destination sont identiques.';
$lang['copy_copying'] = 'Copie ';
$lang['copy_recursive_copy_progress'] = 'Progression de la copie r&eacute;cursive';
$lang['copy_building_snapshot'] = 'Construction de l\'image de l\'arborscence &agrave; copier... ';
$lang['copy_successful_like_to'] = 'Copie r&eacute;ussite! Voulez-vous ';
$lang['copy_view_new_entry'] = '&eacute;diter cette nouvelle entr&eacute;e';
$lang['copy_failed'] = 'Echec lors de la copie de: ';
//edit.php
$lang['missing_template_file'] = 'Avertissement: le fichier mod&egrave;le est manquant, ';
$lang['using_default'] = 'Utilisation du mod&egrave;le par d&eacute;faut.';
//copy_form.php
$lang['copyf_title_copy'] = 'Copie de ';
$lang['copyf_to_new_object'] = 'vers un nouvel objet';
$lang['copyf_dest_dn'] = 'DN de destination';
$lang['copyf_dest_dn_tooltip'] = 'Le DN de la nouvelle entr&eacute;e &agrave; cr&eacute;er lors de la copie de l\'entr&eacute;e source';
$lang['copyf_dest_server'] = 'Destination Serveur';
$lang['copyf_note'] = 'Note: La copie entre diff&eacute;rents serveurs fonctionne seulement si il n\'y a pas de violation de sch&eacute;ma';
$lang['copyf_recursive_copy'] = 'Copier r&eacute;cursivement les sous-entr&eacute;es de cet object.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas &eacute;t&eacute; sp&eacute;cifi&eacute;e pour l\'attribut requis <b>%s</b>.';
$lang['create_redirecting'] = 'Redirection';
$lang['create_here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectu&eacute;e.';
//create_form.php
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un mod&egrave;le';
$lang['createf_select_temp'] = 'Selectionner un mod&egrave;le pour la proc&eacute;dure de cr&eacute;ation';
$lang['createf_proceed'] = 'Continuer';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun mod&egrave;le sp&eacute;cifi&eacute; dans les variables POST.';
$lang['ctemplate_config_handler'] = 'Votre configuration sc&eacute;cifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce mod&egrave;le. Cependant, ce gestionnaire n\'existe pas dans le r&eacute;pertoire \'templates/creation\'.';
//search.php
$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore logg&eacute; aupr&egrave;s du serveur s&eacute;lectionn&eacute;. Vous ne pouvez y effectuer des recherches.';
$lang['click_to_go_to_login_form'] = 'Cliquer ici pour vous rendre au formulaire de login';
$lang['unrecognized_criteria_option'] = 'Crit&egrave;re non reconnu: ';
$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres crit&egrave;re &agrave; la liste, soyez cetain d\'&eacute;diter search.php afin de pouvoir les g&eacute;rer.';
$lang['entries_found'] = 'Entr&eacute;es trouv&eacute;e: ';
$lang['filter_performed'] = 'Filtre utilis&eacute;: ';
$lang['search_duration'] = 'Recherche effectu&eacute;e par phpLDAPadmin en';
$lang['seconds'] = 'secondes';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'Port&eacute;e de la recherche';
$lang['scope_sub'] = 'Sub (le sous-arbre)';
$lang['scope_one'] = 'One (un niveau sous la base)';
$lang['scope_base'] = 'Base (le dn de base)';
$lang['standard_ldap_search_filter'] = 'Un filtre standard de recherche LDAP. Exemple: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Filtre pour la recherche';
$lang['list_of_attrs_to_display_in_results'] = 'Une liste des attributs &agrave; afficher dans les r&eacute;sultats(s&eacute;par&eacute;s par des virgules)';
$lang['show_attributes'] = 'Attributs &agrave; afficher';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Chercher les entr&eacute;es dont:';
$lang['equals'] = 'est egal à;';
$lang['starts with'] = 'commence par';
$lang['contains'] = 'contient';
$lang['ends with'] = 'se termine par';
$lang['sounds like'] = 'ressemble &agrave;';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Impossible de r&eacute;cup&eacute;rer les informations concernant le serveur Ldap';
$lang['server_info_for'] = 'Informations pour le serveur: ';
$lang['server_reports_following'] = 'Le serveur a rapport&eacute; les informations suivantes';
$lang['nothing_to_report'] = 'Ce serveur n\'a aucunes informations a rapporter.';
//update.php
$lang['update_array_malformed'] = 'update_array n\'est pas bien form&eacute;. Ceci est peut-&ecirc;tre un bogue de phpLDAPadmin. Pourriez-vous effectuer un rapport de bogue, s\'il vous pla&icirc;t.';
$lang['could_not_perform_ldap_modify'] = 'L\'op&eacute;ration ldap_modify n\'a pu être effectu&eacute;e.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Voulez-vous effectuer ces changements?';
$lang['attribute'] = 'Attribut';
$lang['old_value'] = 'Ancienne Valeur';
$lang['new_value'] = 'Nouvelle Valeur';
$lang['attr_deleted'] = '[attribut supprim&eacute;]';
$lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a &eacute;t&eacute; effectu&eacute;';
$lang['go_back'] = 'Retour';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non sûr: ';
$lang['no_such_file'] = 'Aucun fichier trouv&eacute;: ';
//function.php
$lang['auto_update_not_setup'] = 'auto_uid_numbers a &eacute;t&eacute; activ&eacute; pour <b>%s</b> dans votre configuration,
mais vous n\'avez pas sp&eacute;cifi&eacute; l\' auto_uid_number_mechanism. Veuiller corriger
ce probl&egrave;me.';
$lang['uidpool_not_set'] = 'Vous avez sp&eacute;cifi&eacute; l<tt>auto_uid_number_mechanism</tt> comme <tt>uidpool</tt>
dans la configuration du serveur <b>%s</b>, mais vous n\'avez pas sp&eacute;cifi&eacute; de valeur pour
auto_uid_number_uid_pool_dn. Veuillez le sp&eacute;cifier avant de continuer.';
$lang['uidpool_not_exist'] = 'Le uidPool que vous avez sp&eacute;cifi&eacute; dans votre configuration (<tt>%s</tt>)
n\'existe pas.';
$lang['specified_uidpool'] = 'L\'<tt>auto_uid_number_mechanism</tt> a &eacute;t&eacute; d&eacute;fini &agrave; <tt>search</tt> dans votre
configuration pour le serveur <b>%s</b>, mais vous n\'avez pas d&eacute;fini
<tt>auto_uid_number_search_base</tt>. Veuillez le sp&eacute;cifier avant de continuer.';
$lang['auto_uid_invalid_value'] = 'Une valeur non valide a &eacute;t&eacute; sp&eacute;cifi&eacute;e pour auto_uid_number_mechanism (<tt>%s</tt>)
dans votre configuration. Seul <tt>uidpool</tt> et <tt>search</tt> sont valides.
Veuillez corriger ce probl&egrave;me.';
$lang['error_auth_type_config'] = 'Erreur: Vous avez une erreur dans votre fichier de configuration.Les valeurs
support&eacute;es pour \'auth_type\' sont \'config\' et \'form\' dans la section $servers.
Vous avez mis \'%s\', ce qui n\'est pas autoris&eacute;.';
$lang['php_install_not_supports_tls'] = 'Votre installation PHP ne supporte pas TLS.';
$lang['could_not_start_tls'] = 'Impossible de d&eacute;marrer TLS.<br />Veuillez,s\'il vous pla&icirc;t, v&eacute;rifier la configuration de votre serveur LDAP.';
$lang['auth_type_not_valid'] = 'Vous avez une erreur dans votre fichier de configuration. auth_type %s n\'est pas valide.';
$lang['ldap_said'] = '<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Erreur';
$lang['fbrowse'] = 'naviguer';
$lang['delete_photo'] = 'Supprimer la photo';
$lang['install_not_support_blowfish'] = 'Votre installation PHP ne support pas l\'encryption blowfish.';
$lang['install_no_mash'] = 'Votre installation PHP ne supporte pas la fonction mhash(). Impossible de cr&eacute;er un hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contient des erreurs<br />';
$lang['ferror_number'] = '<b>Num&eacute;ro de l\'erreur</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Num&eacute; de l\'erreur</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Description</b>: (pas de description disponible)<br />';
$lang['ferror_submit_bug'] = 'Est-ce un bogue de phpLDAPadmin? Si c\'est le cas,veuillez s\'il vous pla&icirc;t <a href=\'%s\'>le rapporter</a>.';
$lang['ferror_unrecognized_num'] = 'Num&eacute;ro de l\'erreur non reconnu: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Vous avez trouv&eacute; un bogue non fatal dans phpLDAPAdmin!</b></td></tr><tr><td>Erreur:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichier:</td>
<td><b>%s</b> ligne <b>%s</b>, origine de l\'appel <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>Serveur Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
S\'il vous pla&icirc;t, veuillez rapporter ce bogue en cliquant ici</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'F&eacute;licitations! Vous avez trouv&eacute; un bogue dans phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Erreur:</td><td><b>%s</b></td></tr>
<tr><td>Niveau:</td><td><b>%s</b></td></tr>
<tr><td>Fichier:</td><td><b>%s</b></td></tr>
<tr><td>Ligne:</td><td><b>%s</b></td></tr>
<tr><td>Origine de l\'appel:</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>Serveur Webr:</td><td><b>%s</b></td></tr>
</table>
<br />
S\'il vous pla&icirc;t, veuillez rapporter ce bogue en cliquant ici!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Import de fichier LDIF';
$lang['select_ldif_file'] = 'S&eacute;lectionner un fichier LDIF:';
$lang['select_ldif_file_proceed'] = 'Continuer >>';
//lldif_import
$lang['add_action'] = 'Ajout de...';
$lang['delete_action'] = 'Supression de...';
$lang['rename_action'] = 'Renommage de...';
$lang['modify_action'] = 'Modification de...';
$lang['failed'] = '&eacute;chec';
$lang['ldif_parse_error'] = 'Erreur lors de l\'analyse du fichier LDIF';
$lang['ldif_could_not_add_object'] = 'Impossible d\'ajouter l\'objet:';
$lang['ldif_could_not_rename_object'] = 'Impossible de renommer l\'objet:';
$lang['ldif_could_not_delete_object'] = 'Impossible de supprimer l\'objet:';
$lang['ldif_could_not_modify_object'] = 'Impossible de modifier l\'objet:';
$lang['ldif_line_number'] = 'Num&eacute;ro de ligne';
$lang['ldif_line'] = 'Ligne';
?>

139
lang/recoded/it.php Normal file
View File

@ -0,0 +1,139 @@
<?php
// Search form
$lang['simple_search_form_str'] = 'Modulo di Ricerca Semplice';
$lang['advanced_search_form_str'] = 'Modulo di Ricerca Avanzato';
$lang['server'] = 'Server';
$lang['search_for_entries_whose'] = 'Cerca per voci che';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Campo di Ricerca';
$lang['search_ filter'] = 'Filtro di Ricerca';
$lang['show_attributes'] = 'Mostra gli Attributi';
$lang['Search'] = 'Cerca';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'inizia con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'finisce con';
$lang['sounds_like'] = 'suona come';
// Tree browser
$lang['request_new_feature'] = 'Richiedi una nuova funzionalit&#341;';
$lang['see_open_requests'] = 'guarda le richieste pendenti';
$lang['report_bug'] = 'Riporta un baco';
$lang['see_open_bugs'] = 'guarda i bachi pendenti';
$lang['schema'] = 'schema';
$lang['search'] = 'cerca';
$lang['refresh'] = 'aggiorna';
$lang['create'] = 'crea';
$lang['info'] = 'info';
$lang['import'] = 'importa';
$lang['logout'] = 'esci';
$lang['create_new'] = 'Crea Nuovo';
$lang['view_schema_for'] = 'Guarda schema per';
$lang['refresh_expanded_containers'] = 'Aggiorna tutti i contenitori aperti per';
$lang['create_new_entry_on'] = 'Crea una nuova voce su';
$lang['view_server_info'] = 'Guarda le informazioni fornite dal Server';
$lang['import_from_ldif'] = 'Importa voci da un file LDIF';
$lang['logout_of_this_server'] = 'Esci da questo Server';
$lang['logged_in_as'] = 'Collegato come: ';
$lang['read_only'] = 'sola lettura';
$lang['could_not_determine_root'] = 'Non posso determinare la radice del tuo albero LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Sembra che il server LDAP sia stato configurato per non rivelare la sua radice.';
$lang['please_specify_in_config'] = 'Per piacere specificare nel config.php';
$lang['create_new_entry_in'] = 'Crea una nuova voce in';
// Entry display
$lang['delete_this_entry'] = 'Cancella questa voce';
$lang['delete_this_entry_tooltip'] = 'Ti sar&#341; richiesto di confermare questa decisione';
$lang['copy_this_entry'] = 'Copia questa voce';
$lang['copy_this_entry_tooltip'] = 'Copia questo oggetto in un\'altra posizione, un nuovo DN od un altro server';
$lang['export_to_ldif'] = 'Esporta in un LDIF';
$lang['export_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto';
$lang['export_subtree_to_ldif_tooltip'] = 'Salva un formato LDIF di questo oggetto e di tutti i suoi figli';
$lang['export_subtree_to_ldif'] = 'Esporta il ramo in un LDIF';
$lang['export_to_ldif_mac'] = 'Fine riga in formato Macintosh';
$lang['export_to_ldif_win'] = 'Fine riga in formato Windows';
$lang['export_to_ldif_unix'] = 'Fine riga in formato Unix';
$lang['create_a_child_entry'] = 'Crea una voce figlia';
$lang['add_a_jpeg_photo'] = 'Aggiungi una jpegPhoto';
$lang['rename_entry'] = 'Rinomina la Voce';
$lang['rename'] = 'Rinomina';
$lang['add'] = 'Aggiungi';
$lang['view'] = 'Guarda';
$lang['add_new_attribute'] = 'Aggiungi un nuovo attributo';
$lang['add_new_attribute_tooltip'] = 'Aggiungi un nuovo attributo/valore a questa voce';
$lang['internal_attributes'] = 'Attributi Interni';
$lang['hide_internal_attrs'] = 'Nascondi gli attributi interni';
$lang['show_internal_attrs'] = 'Mostra gli attributi interni';
$lang['internal_attrs_tooltip'] = 'Attributi settati automaticamente dal sistema';
$lang['entry_attributes'] = 'Attributi della Voce';
$lang['click_to_display'] = 'clicca per mostrare';
$lang['hidden'] = 'nascosto';
$lang['none'] = 'nessuno';
$lang['save_changes'] = 'Salva i Cambiamenti';
$lang['add_value'] = 'aggiungi un valore';
$lang['add_value_tooltip'] = 'Aggiungi un\'altrovalore a questo attributo';
$lang['refresh'] = 'aggiorna';
$lang['refresh_this_entry'] = 'Aggiorna questa voce';
$lang['delete_hint'] = 'Consiglio: <b>Per cancellare un attributo</b>, svuota il campo testo e clicca salva.';
$lang['viewing_read_only'] = 'Stai guardando la voce in modalit&#341; sola-lettura.';
$lang['change_entry_rdn'] = 'Cambia l\' RDN di questa voce';
$lang['no_new_attrs_available'] = 'nessun nuovo attributo disponibile per questa voce';
$lang['binary_value'] = 'Valore binario';
$lang['add_new_binary_attr'] = 'Aggiungi un Nuovo Attributo Binario';
$lang['add_new_binary_attr_tooltip'] = 'Aggiungi un nuovo attributo/valore binario da un file';
$lang['alias_for'] = 'Alias per';
$lang['download_value'] = 'valore del download';
$lang['delete_attribute'] = 'cancella l\'attributo';
$lang['true'] = 'vero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'nessuno, rimuovi il valore';
$lang['really_delete_attribute'] = 'Cancella definitivamente il valore';
// Schema browser
$lang['the_following_objectclasses'] = 'Le seguenti <b>objectClasses</b> sono supportate da questo server LDAP';
$lang['the_following_attributes'] = 'Le seguenti <b>attributeTypes</b> sono supportate da questo server LDAP';
$lang['the_following_matching'] = 'Le seguenti <b>matching rules</b> sono supportate da questo server LDAP';
$lang['the_following_syntaxes'] = 'Le seguenti <b>syntaxes</b> sono supportate da questo server LDAP';
$lang['jump_to_objectclass'] = 'Vai a una objectClass';
$lang['jump_to_attr'] = 'Vai a un attributo';
$lang['schema_for_server'] = 'Schema per il server';
$lang['required_attrs'] = 'Attributi Richiesti';
$lang['optional_attrs'] = 'Attributi Opzionali';
$lang['OID'] = 'OID';
$lang['desc'] = 'Descrizione';
$lang['is_obsolete'] = 'Questa objectClass &#269; <b>obsoleta</b>';
$lang['inherits'] = 'Eredita da';
$lang['jump_to_this_oclass'] = 'Vai a questa definizione della objectClass';
$lang['matching_rule_oid'] = 'Regola Corrispondente OID';
$lang['syntax_oid'] = 'Sintassi OID';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuovi Attributi Richiesti';
$lang['requires_to_add'] = 'Questa azione richiede che tu aggiunga';
$lang['new_attributes'] = 'nuovi attributi';
$lang['new_required_attrs_instructions'] = 'Istruzioni: Per aggiungere questa objectClass a questa voce, devi specificare:';
$lang['that_this_oclass_requires'] = 'che questa objectClass richiede. Puoi farlo in questo modulo.';
$lang['add_oclass_and_attrs'] = 'Aggiungi ObjectClass e Attributi';
// General
$lang['chooser_link_tooltip'] = 'Clicca per aprire una finestra di dialogo per la selezione grafica di una voce (DN)';
$lang['no_updates_in_read_only_mode'] = 'Non puoi operare aggiornamenti mentre il server &#269; in modalit&#341; sola-lettura';
$lang['bad_server_id'] = 'Server id errata';
$lang['not_enough_login_info'] = 'Non abbastanza informazioni per collegarsi al server. Per piacere controlla la tua configurazione.';
$lang['could_not_connect'] = 'Non ho potuto collegarmi al server LDAP.';
$lang['could_not_perform_ldap_mod_add'] = 'Non ho potuto eseguire l\'operazione ldap_mod_add.';
// Add value form
$lang['add_new'] = 'Aggiungi nuovo';
$lang['value_to'] = 'valore a';
$lang['server'] = 'Server';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Lista corrente di';
$lang['values_for_attribute'] = 'valori per l\'attributo';
$lang['inappropriate_matching_note'] = 'Nota: Tu riceverai un errore &quot;corrispondenza inappropiata&quot; se non hai<br />una regola <tt>EQUALITY</tt> per questo attributo sul tuo server LDAP.';
$lang['enter_value_to_add'] = 'Inserisci il valore che vorresti aggiungere:';
$lang['new_required_attrs_note'] = 'Nota: ti potrebbe essere chiesto di inserire nuovi attributi<br />che questa objectClass richiede.';
$lang['syntax'] = 'Sintassi';
?>

329
lang/recoded/nl.php Normal file
View File

@ -0,0 +1,329 @@
<?php
/*
* &Uuml;bersetzung von Marius Rieder <marius.rieder@bluewin.ch>
* Uwe Ebel
*/
// Search form
$lang['simple_search_form_str'] = 'eenvoudig zoeken';//'Simple Search Form';
$lang['advanced_search_form_str'] = 'uitgebreid zoeken';//'Advanced Search Form';
$lang['server'] = 'server';//'Server';
$lang['search_for_entries_whose'] = 'zoek naar velden die';//'Search for entries whose';
$lang['base_dn'] = 'base DN';//'Base DN';
$lang['search_scope'] = 'zoekbereik';//'Search Scope';
$lang['search_ filter'] = 'zoekfilter';//'Search Filter';
$lang['show_attributes'] = 'laat Attributen zien';//'Show Attributtes';
$lang['Search'] = 'zoeken';//'Search';
$lang['equals'] = 'gelijk aan';//'equals';
$lang['starts_with'] = 'begint met';//'starts with';
$lang['contains'] = 'bevat';//'contains';
$lang['ends_with'] = 'eindigt met';//'ends with';
$lang['sounds_like'] = 'klinkt als';//'sounds like';
// Tree browser
$lang['request_new_feature'] = 'verzoek nieuwe feature';//'Request a new feature';
$lang['see_open_requests'] = 'feature verzoeken inzien';//'see open requests';
$lang['report_bug'] = 'rapporteer een bug';//'Report a bug';
$lang['see_open_bugs'] = 'buglijst inzien';//'see open bugs';
$lang['schema'] = 'schema';//'schema';
$lang['search'] = 'zoeken';//'search';
$lang['refresh'] = 'vernieuwen';//'refresh';
$lang['create'] = 'aanmaken';//'create';
$lang['info'] = 'info';//'info';
$lang['import'] = 'importeer';//'import';
$lang['logout'] = 'uitloggen';//'logout';
$lang['create_new'] = 'aanmaken';//'Create New';
$lang['view_schema_for'] = 'schema inzien voor';//'View schema for';
$lang['refresh_expanded_containers'] = 'vernieuw alle uitgeklapte containers voor';//'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'nieuw veld aanmaken in';//'Create a new entry on';
$lang['view_server_info'] = 'server informatie inzien';//'View server-supplied information';
$lang['import_from_ldif'] = 'importeer LDIF bestand';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'bij deze server uitloggen';//'Logout of this server';
$lang['logged_in_as'] = 'ingelogd als: ';//'Logged in as: ';
$lang['read_only'] = 'alleen lezen';//'read only';
$lang['could_not_determine_root'] = 'kan de root van LDAP structuur niet bepalen.';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'kan de root van LDAP structuur niet bepalen';//'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'in config.php aangeven a.u.b.';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'nieuw veld aanmaken in';//'Create a new entry in';
// Entry display
$lang['delete_this_entry'] = 'veld verwijderen';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'bevestiging zal worden gevraagd voor deze beslissing';//'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'dit veld kopieren';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = 'kopieer dit object naar een andere plaats, een niuewe DN of naar een andere server';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'exporteren naar LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'maak LDIF dump van dit object';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'maak LDIF dump van dit object plus alle onderliggende objecten';//'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = 'exporteer deze subvelden naar LDIF';//'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = 'Macintosh regeleinden';//'Macintosh style line ends';
$lang['export_to_ldif_win'] = 'Windows regeleinden';//'Windows style line ends';
$lang['export_to_ldif_unix'] = 'Unix regeleinden';//'Unix style line ends';
$lang['create_a_child_entry'] = 'subveld aanmaken';//'Create a child entry';
$lang['add_a_jpeg_photo'] = 'jpeg foto toevoegen';//'Add a jpegPhoto';
$lang['rename_entry'] = 'veld hernoemen';//'Rename Entry';
$lang['rename'] = 'hernoemen';//'Rename';
$lang['add'] = 'toevoegen';//'Add';
$lang['view'] = 'inzien';//'View';
$lang['add_new_attribute'] = 'attribuut toevoegen';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'nieuw attribuut toevoegen/waarde toekennen';// 'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'interne attributen';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'interne attributen verbergen';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'interne attributen laten zien';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'automatisch ingestelde attributen';//'Attributes set automatically by the system';
$lang['entry_attributes'] = 'attributen veld';//'Entry Attributes';
$lang['attr_name_tooltip'] = 'klik hier om de schemadefinitie van attribuuttype \'%s\' te bekijken';//'Click to view the schema defintion for attribute type \'%s\'';
$lang['click_to_display'] = 'klik om te bekijken';//'click to display';
$lang['hidden'] = 'verborgen';//'hidden';
$lang['none'] = 'geen';//'none';
$lang['save_changes'] = 'veranderingen opslaan';//'Save Changes';
$lang['add_value'] = 'waarde toevoegen';//'add value';
$lang['add_value_tooltip'] = 'voeg een extra waarde toe aan dit attribuut';//'Add an additional value to this attribute';
$lang['refresh_entry'] = 'vernieuwen';// 'Refresh';
$lang['refresh_this_entry'] = 'dit veld vernieuwen';//'Refresh this entry';
$lang['delete_hint'] = 'tip: <b>om een attribuut te verwijderen</b>, maak deze leeg en sla hem op';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['attr_schema_hint'] = 'Tip: <b>om het schema voor een attribuut te bekijken,</b> klik op de attribuutnaam';//'Hint: <b>To view the schema for an attribute</b>, click the attribute name.';
$lang['attrs_modified'] = 'sommige attributen (%s) zijn gewijzigd en worden ge-highlight weergegeven.';//'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'een attribuut (%s) is gewijzigd en wordt ge-highlight weergegeven';//'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'veld bekijken (alleen-lezen)';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = 'verander de RDN van dit veld';//'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'geen nieuwe attributen beschikbaar voor dit veld';//'no new attributes available for this entry';
$lang['binary_value'] = 'binaire waarde';//'Binary value';
$lang['add_new_binary_attr'] = 'nieuwe binair attribuut toevoegen';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'lees binair attribuut in vanuit een bestand';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'alias voor';//'Alias for';
$lang['download_value'] = 'waarde downloaden';//'download value';
$lang['delete_attribute'] = 'attribuut verwijderen';//'delete attribute';
$lang['true'] = 'waar';//'true';
$lang['false'] = 'onwaar';//'false';
$lang['none_remove_value'] = 'niets, verwijder waarde';//?? //'none, remove value';
$lang['really_delete_attribute'] = 'dit attribuut echt verwijderen';//'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = 'Deze LDAP server ondersteunt de volgende <b>objectClasses</b>.';//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Deze LDAP server ondersteunt de volgende <b>attributeTypes</b>.';//'The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Deze LDAP server ondersteunt de volgende <b>zoekregels</b>.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Deze LDAP server ondersteunt de volgende <b>syntaxen</b>.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = 'ga naar objectClass';//'Jump to an objectClass';
$lang['jump_to_attr'] = 'ga naar een attribuut';//'Jump to an attribute';
$lang['schema_for_server'] = 'schema voor server';//'Schema for server';
$lang['required_attrs'] = 'vereiste attributen';//'Required Attributes';
$lang['optional_attrs'] = 'niet vereiste attributen';//'Optional Attributes';
$lang['OID'] = 'OID';//'OID';
$lang['desc'] = 'omschrijving';//'Description';
$lang['name'] = 'naam';//'Name';
$lang['is_obsolete'] = 'deze objectClass is <b>verouderd</b>';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'afgeleid van';//'Inherits';
$lang['jump_to_this_oclass'] = 'ga naar objectClass definitie';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'overeenkomen met OID regel';//'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';//'Syntax OID';
$lang['not_applicable'] = 'niet van toepassing';//'not applicable';
$lang['not_specified'] = 'niet gespecificeerd';//not specified';
// Deleting entries
$lang['entry_deleted_successfully'] = 'dit veld \'%s\' succesvol verwijderd';//'Entry \'%s\' deleted successfully.';
$lang['you_must_specify_a_dn'] = 'U moet een DN aangeven.';//'You must specify a DN';
$lang['could_not_delete_entry'] = 'kan dit veld niet verwijderen: %s';//'Could not delete the entry: %s';
// Adding objectClass form
$lang['new_required_attrs'] = 'nieuwe benodigde attributen';//'New Required Attributes';
$lang['requires_to_add'] = 'voor deze actie moet worden toegevoegd:';//'This action requires you to add';
$lang['new_attributes'] = 'nieuw attribuut';//'new attributes';
$lang['new_required_attrs_instructions'] = 'Instructies: om deze objectClass toe te voegen, moet u nog specificeren ';//'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'dat deze objectClass nodig heeft. U kunt dit in dit formulier doen.';//'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'objectClass en attributen toevoegen';//'Add ObjectClass and Attributes';
// General
$lang['chooser_link_tooltip'] = 'klik om grafisch een veld te kiezen (DN)';//&quot;Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'U kunt niet opslaan als de server alleen lezen is';//'You cannot perform updates while server is in read-only mode';
$lang['bad_server_id'] = 'ongeldig server ID';//'Bad server id';
$lang['not_enough_login_info'] = 'Onvoldoende informatie om in te kunnen loggen. Controleer de configuratie.';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Kan LDAP server niet vinden.';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Kan geen ldap_mod_add uitvoeren.';//'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'ongeldig server_ID:';//&quot;Bad server_id: ';
$lang['success'] = 'succes';//&quot;Success';
$lang['server_colon_pare'] = 'server: ';//&quot;Server: ';
$lang['look_in'] = 'bekijken: ';//&quot;Looking in: ';
$lang['missing_server_id_in_query_string'] = 'geen server ID meegegeven';//'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'geen DN meegeven';//'No DN specified in query string!';
$lang['back_up_p'] = 'backup...';//&quot;Back Up...';
$lang['no_entries'] = 'geen velden';//&quot;no entries';
$lang['not_logged_in'] = 'niet ingelogd';//&quot;Not logged in';
$lang['could_not_det_base_dn'] = 'kan de basis-DN niet bepalen';//&quot;Could not determine base DN';
// Add value form
$lang['add_new'] = 'nieuw toevoegen';//'Add new';
$lang['value_to'] = 'waarde';//'value to';
$lang['server'] = 'server';//'Server';
//also used in copy_form.php
$lang['distinguished_name'] = 'Distinguished Name';// 'Distinguished Name';
$lang['current_list_of'] = 'huidige lijst van';//'Current list of';
$lang['values_for_attribute'] = 'waarden voor attributen';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Info: U zult een &quot;inappropriate matching&quot; melding krijgen, indien u niet<br />' . //'Note: You will get an &quot;inappropriate matching&quot; error if you have not<br />' .
'een <tt>EQUALITY</tt> regel op de LDAP Server voor dit attribuut ingesteld heeft.';//'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'geef de waarde die u wilt toevoegen:';//'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Info: U kunt verzocht worden nieuwe attributen, die voor deze objectClass verplicht zijn, in te voeren.';//'Note: you may be required to enter new attributes<br />that this objectClass requires.';
$lang['syntax'] = 'syntax';//'Syntax';
//Copy.php
$lang['copy_server_read_only'] = 'U kunt niet opslaan als de server alleen lezen is';//&quot;You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'de bestemmings DN is leeg';//&quot;You left the destination DN blank.';
$lang['copy_dest_already_exists'] = 'het veld (%s) bestaat al.';//&quot;The destination entry (%s) already exists.';
$lang['copy_dest_container_does_not_exist'] = 'het doel-veld (%s) bestaat niet.';//'The destination container (%s) does not exist.';
$lang['copy_source_dest_dn_same'] = 'origineel DN en doel DN zijn hetzelfde';//&quot;The source and destination DN are the same.';
$lang['copy_copying'] = 'kopieren';//&quot;Copying ';
$lang['copy_recursive_copy_progress'] = 'bezig met recursief kopieren';//&quot;Recursive copy progress';
$lang['copy_building_snapshot'] = 'bezig met het aanmaken van een snapshot van de boomstructuur... ';//&quot;Building snapshot of tree to copy... ';
$lang['copy_successful_like_to'] = 'Kopieren succesvol! Wit u dan';//&quot;Copy successful! Would you like to ';
$lang['copy_view_new_entry'] = 'het nieuwe veld bekijken';//&quot;view the new entry';
$lang['copy_failed'] = 'Kopieren van DN mislukt: ';//'Failed to copy DN: ';
//edit.php
$lang['missing_template_file'] = 'Waarschuwing: kan de template file niet vinden';//'Warning: missing template file, ';
$lang['using_default'] = 'standaardinstelling gebruiken';//'Using default.';
//copy_form.php
$lang['copyf_title_copy'] = 'Kopieren';//&quot;Copy ';
$lang['copyf_to_new_object'] = 'naar een nieuw Objekt';//&quot;to a new object';
$lang['copyf_dest_dn'] = 'doel DN';//&quot;Destination DN';
$lang['copyf_dest_dn_tooltip'] = 'De complete DN die aangemaakt wordt bij het kopieren van het bron-veld.';//'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = 'bestemmings server';//&quot;Destination Server';
$lang['copyf_note'] = 'Info: kopieren tussen twee servers gaat alleen maar goped als er geen schema problemen zijn';//&quot;Note: Copying between different servers only works if there are no schema violations';
$lang['copyf_recursive_copy'] = 'Recursief kopieren van alle sub-velden';//&quot;Recursively copy all children of this object as well.';
//create.php
$lang['create_required_attribute'] = 'Fout. U heeft een verplicht veld leeggelaten.';//&quot;Error, you left the value blank for required attribute ';
$lang['create_redirecting'] = 'omleiden';//&quot;Redirecting';
$lang['create_here'] = 'hier';//&quot;here';
$lang['create_could_not_add'] = 'kan het object niet toevoegen op de LDAP server.';//&quot;Could not add the object to the LDAP server.';
//create_form.php
$lang['createf_create_object'] = 'object aanmaken';//&quot;Create Object';
$lang['createf_choose_temp'] = 'kies een template';//&quot;Choose a template';
$lang['createf_select_temp'] = 'kies een template voor dit object';//&quot;Select a template for the creation process';
$lang['createf_proceed'] = 'verder';//&quot;Proceed';
//creation_template.php
$lang['ctemplate_on_server'] = 'op server';//&quot;On server';
$lang['ctemplate_no_template'] = 'geen template gespecifieerd in de POST variabelen';//&quot;No template specified in POST variables.';
$lang['ctemplate_config_handler'] = 'uw configuratie specificeert een routine';//&quot;Your config specifies a handler of';
$lang['ctemplate_handler_does_not_exist'] = 'in deze template. Maar deze routine bestaat niet in de \'templates/creation\' directory.';//&quot;for this template. But, this handler does not exist in the 'templates/creation' directory.';
// search.php
$lang['you_have_not_logged_into_server'] = 'u bent nog niet ingelogd op de geselecteerde server, dus u kunt geen zoekopdrachten geven.';//'You have not logged into the selected server yet, so you cannot perform searches on it.';
$lang['click_to_go_to_login_form'] = 'Klik hier om in te loggen';//'Click here to go to the login form';
$lang['unrecognized_criteria_option'] = 'Unrecognized criteria option: ';
$lang['if_you_want_to_add_criteria'] = 'Als u uw eigen crteria toe wilt voegen aan de lijst, dient u search.php te bewerken. Sluiten.';//'If you want to add your own criteria to the list. Be sure to edit search.php to handle them. Quitting.';
$lang['entries_found'] = 'gevonden velden: ';//'Entries found: ';
$lang['filter_performed'] = 'toegepast filter: ';//'Filter performed: ';
$lang['search_duration'] = 'zoeken door phpLDAPadmin duurde';//'Search performed by phpLDAPadmin in';
$lang['seconds'] = 'seconden';//'seconds';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'zoekbereik';//'The scope in which to search';
$lang['scope_sub'] = 'Sub (de hele tak)';//'Sub (entire subtree)';
$lang['scope_one'] = 'One (een laag diep)';//'One (one level beneath base)';
$lang['scope_base'] = 'Base (alleen de basis)';//'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP zoekfilter. Voorbeeld.: (&amp;(sn=Smith)(givenname=David))';//'Standard LDAP search filter. Example: (&amp;(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'zoekfilter';//'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'komma gescheiden lijst van de attributen.';//'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'attributen laten zien';//'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'zoek naar velden waarvoor:';//'Search for entries whose:';
$lang['equals'] = 'gelijk is aan';//'equals';
$lang['starts with'] = 'begint met';//'starts with';
$lang['contains'] = 'bevat';//'contains';
$lang['ends with'] = 'eindigt met';//'ends with';
$lang['sounds like'] = 'klinkt als';//'sounds like';
// server_info.php
$lang['could_not_fetch_server_info'] = 'kan geen LDAP van de server krijgen';//'Could not retrieve LDAP information from the server';
$lang['server_info_for'] = 'Server info voor: ';//'Server info for: ';
$lang['server_reports_following'] = 'De server geeft de volgende informatie over zichzelf';//'Server reports the following information about itself';
$lang['nothing_to_report'] = 'De server heeft niets te melden';//'This server has nothing to report.';
//update.php
$lang['update_array_malformed'] = 'De update_array is niet goed. Dat kan een phpLDAPadmin bug zijn. Laat het ons weten!';//'update_array is malformed. This might be a phpLDAPadmin bug. Please report it.';
$lang['could_not_perform_ldap_modify'] = 'Kan ldap_modify niet uitvoeren.';//'Could not perform ldap_modify operation.';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Deze veranderingen doorvoeren?';//'Do you want to make these changes?';
$lang['attribute'] = 'attribuut';//'Attribute';
$lang['old_value'] = 'oude waarde';//'Old Value';
$lang['new_value'] = 'nieuwe waarde';//'New Value';
$lang['attr_deleted'] = '[attribuut verwijderd]';//'[attribute deleted]';
$lang['commit'] = 'uitvoeren';//'Commit';
$lang['cancel'] = 'annuleren';//'Cancel';
$lang['you_made_no_changes'] = 'U heeft geen veranderingen gemaakt.';//'You made no changes';
$lang['go_back'] = 'terug';//'Go back';
// welcome.php
$lang['welcome_note'] = 'Gebruik het linkermenu om te navigeren.';//'Use the menu to the left to navigate';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'onveilige bestandsnaam: ';//'Unsafe file name: ';
$lang['no_such_file'] = 'Bestand bestaat niet: ';//'No such file: ';
//function.php
$lang['auto_update_not_setup'] = '<tt>auto_uid_numbers</tt> is geactiveerd (<b>%s</b>, maar niet het mechanisme (auto_uid_number_mechanism). U dient dit alsnog te doen.';//&quot;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'] = 'Het mechanisme <tt>auto_uid_number_mechanism</tt> is als <tt>uidpool</tt> voor server <b>%s</b> vastgelegd, maar niet de <tt>auto_uid_number_uid_pool_dn</tt>. U dient dit alsnog te doen.';//&quot;You specified the <tt>auto_uid_number_mechanism</tt> as <tt>uidpool</tt> 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['uidpool_not_exist'] = 'De <tt>uidPool</tt> die gespecificeerd is in de configuratie bestaat niet.';//&quot;It appears that the uidPool you specified in your configuration (<tt>%s</tt>) does not exist.';
$lang['specified_uidpool'] = 'De <tt>auto_uid_number_mechanism</tt> is als <tt>search</tt> in de configuratie voor de server <b>%s</b> bepaald, maar de waarde <tt>auto_uid_number_search_base</tt> niet. U dient dit alsnog te doen.';//&quot;You specified the <tt>auto_uid_number_mechanism</tt> as <tt>search</tt> in your configuration for server <b>%s</b>, but you did not specify the <tt>auto_uid_number_search_base</tt>. Please specify it before proceeding.';
$lang['auto_uid_invalid_value'] = 'Ongeldige waarde voor <tt>auto_uid_number_mechanism</tt>(%s). Alleen <tt>uidpool</tt> und <tt>search</tt> zijn geldig. Gaarne de fout herstellen ';//&quot;You specified an invalid value for auto_uid_number_mechanism (<tt>%s</tt>) in your configration. Only <tt>uidpool</tt> and <tt>search</tt> are valid. Please correct this problem.';
$lang['error_auth_type_config'] = 'Fout: Er zit een fout inde configuratiefile (config.php). De enige twee waarden voor \'auth_type\' in de $servers sectie zijn: <b>\'config\'</b> of <b>\'form\'</b>. U heeft er nu <b>%s</b> in staan en dat kan niet.';//&quot;Error: You have an error in your config file. The only two allowed values for 'auth_type' in the $servers section are 'config' and 'form'. You entered '%s', which is not allowed. ';
$lang['php_install_not_supports_tls'] = 'Uw installatie ondersteunt geen TLS.';//&quot;Your PHP install does not support TLS';
$lang['could_not_start_tls'] = 'Kan TLS niet starten.<br/>Controleer de LDAP-Server-configuratie.';//&quot;Could not start TLS.<br />Please check your LDAP server configuration.';
$lang['auth_type_not_valid'] = 'Fout in de configuratiefile: auth_type %s is niet geldig'; //&quot;You have an error in your config file. auth_type of %s is not valid.';
$lang['ldap_said'] = '<b>LDAP zegt</b>: %s<br/><br/>';//&quot;<b>LDAP said</b>: %s<br /><br />';
$lang['ferror_error'] = 'Fout';//&quot;Error';
$lang['fbrowse'] = 'navigeer';//&quot;browse';
$lang['delete_photo'] = 'Foto verwijderen';//&quot;Delete Photo';
$lang['install_not_support_blowfish'] = 'Uw PHP-Versie ondersteunt geen Blowfish versleuteling.';//&quot;Your PHP install does not support blowfish encryption.';
$lang['install_no_mash'] = 'Uw PHP-Versie ondersteunt de functie mhash() niet, dus de SHA-hash is niet mogelijk.';// &quot;Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'Foto (jpg) bevat fouten';//&quot;jpegPhoto contains errors<br />';
$lang['ferror_number'] = '<b>Foutnummer:</b> %s<small>(%s)</small><br/><br/>';//&quot;<b>Error number</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] ='<b>Omschrijving:</b> %s<br/><br/>';// &quot;<b>Description</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Foutnummer:</b>%s<br/><br/>';//&quot;<b>Error number</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Omschrijving:</b> (geen omschrijving beschikbaar)<br/>';//&quot;<b>Description</b>: (no description available)<br />';
$lang['ferror_submit_bug'] = 'Is het een phpLDAPadmin fout? Als dat zo is, dan gaarne een <a href=\'%s\'>bugreport</a> invullen';//&quot;Is this a phpLDAPadmin bug? If so, please <a href=\'%s\'>report it</a>.';
$lang['ferror_unrecognized_num'] = 'Onbekend foutnummer:';//&quot;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>Een niet fatale fout in phpLDAPadmin gevonden!</b></td></tr><tr><td>Fout:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Bestand:</td><td><b>%s</b>Regel:<b>%s</b>, aangeroepen door <b>%s</b></td></tr><tr><td>Versie:</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>Graag een <a target=\'new\' href=\'%s\'>bugreport</a> invullen.</center></td></tr></table></center><br />';//&quot;<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'] = '<center><table class=\'notice\'>
<tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' /><b>Gefeliciteerd! Een fout in phpLDAPadmin gevonden!</b></td></tr>
<tr><td>Fout:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Bestand:</td><td><b>%s</b>, aangeroepen door <b>%s</b></td></tr>
<tr><td>Versie:</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>Graag een bugreport invullen.</center></td></tr>
</table></center><br />';//&quot;Congratulations! You found a bug in phpLDAPadmin.<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!';
// extra strings:
$lang['login_link'] = 'Login...';
$lang['import_ldif_file_title'] = 'Import file from LDIF';
$lang['select_ldif_file'] = 'Selecteer een LDIF file:';
$lang['select_ldif_file_proceed']= 'Ga door &amp;gt;&amp;gt;';
$lang['add_action'] = 'Toevoegen...';
$lang['delete_action'] = 'Verwijderen...';
$lang['rename_action'] = 'Hernoemen...';
$lang['modify_action'] = 'Veranderen...';
$lang['failed'] = 'mislukt';
$lang['ldif_parse_error'] = 'LDIF inleesfout';
$lang['ldif_could_not_add_object'] = 'Kan object niet toevoegen:';
$lang['ldif_could_not_rename_object'] = 'Kan object niet hernoemen';
$lang['ldif_could_not_delete_object'] = 'Kan object niet verwijderen';
$lang['ldif_could_not_modify_object'] = 'Kan object niet wijzigen';
$lang['ldif_line_number'] = 'regelnummer: ';
$lang['ldif_line'] = 'regel: ';
?>

259
lang/recoded/ru.php Normal file
View File

@ -0,0 +1,259 @@
<?php
// Translate to russian Dmitry Gorpinenko dima at uz.energy.gov.ua
$lang = array();
// Search form
$lang['simple_search_form_str'] = '&#1055;&#1088;&#1086;&#1089;&#1090;&#1072;&#1103; &#1092;&#1086;&#1088;&#1084;&#1072; &#1087;&#1086;&#1080;&#1089;&#1082;&#1072;';
$lang['advanced_search_form_str'] = '&#1056;&#1072;&#1079;&#1096;&#1080;&#1088;&#1077;&#1085;&#1072;&#1103; &#1092;&#1086;&#1088;&#1084;&#1072; &#1087;&#1086;&#1080;&#1089;&#1082;&#1072;';
$lang['server'] = '&#1057;&#1077;&#1088;&#1074;&#1077;&#1088;';
$lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = '&#1054;&#1089;&#1085;&#1086;&#1074;&#1085;&#1086;&#1081; DN (Base DN)'; // 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['search_ filter'] = '&#1055;&#1086;&#1080;&#1089;&#1082;&#1086;&#1074;&#1099;&#1081; &#1092;&#1080;&#1083;&#1100;&#1090;&#1088;';//'Search Filter';
$lang['show_attributes'] = '&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Show Attributtes';
$lang['Search'] = '&#1055;&#1086;&#1080;&#1089;&#1082;';//'Search';
$lang['equals'] = '&#1088;&#1086;&#1074;&#1085;&#1086;';//'equals';
$lang['starts_with'] = '&#1079;&#1072;&#1087;&#1091;&#1089;&#1082;&#1072;&#1090;&#1100; &#1089;';//'starts with';
$lang['contains'] = '&#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1090;';//'contains';
$lang['ends_with'] = '&#1079;&#1072;&#1082;&#1072;&#1085;&#1095;&#1080;&#1074;&#1072;&#1090;&#1100; &#1089;';//'ends with';
$lang['sounds_like'] = '&#1079;&#1074;&#1091;&#1095;&#1080;&#1090; &#1087;&#1086;&#1076;&#1086;&#1073;&#1085;&#1086;';//'sounds like';
// Tree browser
$lang['request_new_feature'] = '&#1055;&#1086;&#1087;&#1088;&#1086;&#1089;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1091;&#1102; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;&#1089;&#1090;&#1100;';//'Request a new feature';
$lang['see_open_requests'] = '&#1087;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1079;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1099;&#1077; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;&#1089;&#1090;&#1080;';//'see open requests';
$lang['report_bug'] = '&#1057;&#1086;&#1086;&#1073;&#1097;&#1080;&#1090;&#1100; &#1086;&#1073; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072;&#1093; ';//'Report a bug';
$lang['see_open_bugs'] = '&#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1090;&#1077;&#1082;&#1091;&#1097;&#1077;&#1077; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080;';//'see open bugs';
$lang['schema'] = '&#1089;&#1093;&#1077;&#1084;&#1072;';//'schema';
$lang['search'] = '&#1087;&#1086;&#1080;&#1089;&#1082;';//'search';
$lang['refresh'] = '&#1086;&#1073;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100;';//'refresh';
$lang['create'] = '&#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100;';//'create';
$lang['info'] = '&#1080;&#1085;&#1092;&#1072;';//'info';
$lang['import'] = '&#1080;&#1084;&#1087;&#1086;&#1088;&#1090;';//'import';
$lang['logout'] = '&#1074;&#1099;&#1081;&#1090;&#1080;';//'logout';
$lang['create_new'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1091;&#1102;';//'Create New';
$lang['view_schema_for'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1089;&#1093;&#1077;&#1084;&#1091; &#1076;&#1083;&#1103;';//'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1091;&#1102; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100; &#1085;&#1072;';//'Create a new entry on';
$lang['view_server_info'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1080;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1080;&#1102; &#1086; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086;&#1089;&#1090;&#1103;&#1093; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';//'View server-supplied information';
$lang['import_from_ldif'] = '&#1048;&#1084;&#1087;&#1086;&#1088;&#1090; &#1079;&#1072;&#1087;&#1080;&#1089;&#1077;&#1081; &#1080;&#1079; LDIF &#1092;&#1072;&#1081;&#1083;&#1072;';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = '&#1054;&#1090;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1100;&#1089;&#1103; &#1086;&#1090; &#1101;&#1090;&#1086;&#1075;&#1086; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';//'Logout of this server';
$lang['logged_in_as'] = '&#1055;&#1086;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085; &#1082;&#1072;&#1082;:';//'Logged in as: ';
$lang['read_only'] = '&#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1076;&#1083;&#1103; &#1095;&#1090;&#1077;&#1085;&#1080;&#1103;';//'read only';
$lang['could_not_determine_root'] = '&#1053;&#1077; &#1084;&#1086;&#1075;&#1091; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100; &#1082;&#1086;&#1088;&#1077;&#1085;&#1100; &#1042;&#1072;&#1096;&#1077;&#1075;&#1086; LDAP &#1076;&#1077;&#1088;&#1077;&#1074;&#1072;';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = '&#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1089;&#1090;&#1072; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1077; &#1101;&#1090;&#1086; &#1074; config.php';//'Please specify it in config.php';
$lang['create_new_entry_in'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1081;&#1090;&#1077; &#1085;&#1086;&#1074;&#1091;&#1102; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100; &#1074;';//'Create a new entry in';
// Entry display
$lang['delete_this_entry'] = '&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1101;&#1090;&#1091; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';//'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = '&#1057;&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1101;&#1090;&#1091; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';//'Copy this entry';
$lang['copy_this_entry_tooltip'] = '&#1057;&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1101;&#1090;&#1086;&#1090; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090; &#1074; &#1076;&#1088;&#1091;&#1075;&#1086;&#1077; &#1084;&#1077;&#1089;&#1090;&#1086;, &#1085;&#1086;&#1074;&#1099;&#1081; DN, &#1080;&#1083;&#1080; &#1076;&#1088;&#1091;&#1075;&#1086;&#1081; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = '&#1069;&#1082;&#1089;&#1087;&#1086;&#1088;&#1090; &#1074; LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = '&#1057;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090;&#1100; &#1076;&#1072;&#1084;&#1087; LDIF &#1101;&#1090;&#1086;&#1075;&#1086; &#1086;&#1073;&#1100;&#1077;&#1082;&#1090;&#1072;';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = '&#1069;&#1082;&#1089;&#1087;&#1086;&#1088;&#1090; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1077;&#1074;&#1072; &#1074; LDIF';//'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = '&#1050;&#1086;&#1085;&#1077;&#1094; &#1089;&#1090;&#1088;&#1086;&#1082;&#1080; &#1074; &#1089;&#1090;&#1080;&#1083;&#1077; Macintosh';//'Macintosh style line ends';
$lang['export_to_ldif_win'] = '&#1050;&#1086;&#1085;&#1077;&#1094; &#1089;&#1090;&#1088;&#1086;&#1082;&#1080; &#1074; &#1089;&#1090;&#1080;&#1083;&#1077; Windows';
$lang['export_to_ldif_unix'] = '&#1050;&#1086;&#1085;&#1077;&#1094; &#1089;&#1090;&#1088;&#1086;&#1082;&#1080; &#1074; &#1089;&#1090;&#1080;&#1083;&#1077; Windows';//'Unix style line ends';
$lang['create_a_child_entry'] = '&#1057;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;-&#1087;&#1086;&#1090;&#1086;&#1084;&#1086;&#1082;';//'Create a child entry';
$lang['add_a_jpeg_photo'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; jpeg-&#1092;&#1086;&#1090;&#1086;';//'Add a jpegPhoto';
$lang['rename_entry'] = '&#1055;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1086;&#1074;&#1072;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';//'Rename Entry';
$lang['rename'] = '&#1055;&#1077;&#1088;&#1077;&#1080;&#1084;&#1077;&#1085;&#1086;&#1074;&#1072;&#1090;&#1100;';//'Rename';
$lang['login_link'] = 'Login...';
$lang['add'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100;';//'Add';
$lang['view'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100;';//'View';
$lang['add_new_attribute'] = '&#1044;&#1086;&#1074;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;/&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1074; &#1101;&#1090;&#1091; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';//'Add a new attribute/value to this entry';
$lang['internal_attributes'] = '&#1042;&#1085;&#1077;&#1096;&#1085;&#1080;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Internal Attributes';
$lang['hide_internal_attrs'] = '&#1057;&#1082;&#1088;&#1099;&#1090;&#1100; &#1074;&#1085;&#1077;&#1096;&#1085;&#1080;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Hide internal attributes';
$lang['show_internal_attrs'] = '&#1055;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1074;&#1085;&#1077;&#1096;&#1085;&#1080;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = '&#1040;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099; &#1091;&#1089;&#1090;&#1072;&#1085;&#1072;&#1074;&#1083;&#1080;&#1074;&#1072;&#1102;&#1090;&#1100;&#1089;&#1103; &#1072;&#1074;&#1090;&#1086;&#1084;&#1072;&#1090;&#1080;&#1095;&#1077;&#1089;&#1082;&#1080; &#1089;&#1080;&#1089;&#1090;&#1077;&#1084;&#1086;&#1081;';//'Attributes set automatically by the system';
$lang['entry_attributes'] = '&#1040;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080;';//'Entry Attributes';
$lang['click_to_display'] = '&#1085;&#1072;&#1078;&#1072;&#1090;&#1100; &#1076;&#1083;&#1103; &#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1072;';//'click to display';
$lang['hidden'] = '&#1089;&#1082;&#1088;&#1099;&#1090;&#1099;&#1081;';//'hidden';
$lang['none'] = '&#1085;&#1077;&#1090;';//'none';
$lang['save_changes'] = '&#1057;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090;&#1100; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1077;';//'Save Changes';
$lang['add_value'] = '&#1076;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';//'add value';
$lang['add_value_tooltip'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1076;&#1086;&#1087;&#1086;&#1083;&#1085;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1082; &#1101;&#1090;&#1086;&#1084;&#1091; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1091;';//'Add an additional value to this attribute';
$lang['refresh'] = '&#1086;&#1073;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100;';//'refresh';
$lang['refresh_this_entry'] = '&#1054;&#1073;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1101;&#1090;&#1091; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';//'Refresh this entry';
$lang['delete_hint'] = '&#1057;&#1086;&#1074;&#1077;&#1090;: <b>&#1059;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;</b>, &#1086;&#1095;&#1080;&#1089;&#1090;&#1080;&#1090;&#1077; &#1090;&#1077;&#1082;&#1089;&#1090;&#1086;&#1074;&#1086;&#1077; &#1087;&#1086;&#1083;&#1077; &#1080; &#1085;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1089;&#1086;&#1093;&#1088;&#1085;&#1080;&#1090;&#1100;.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['viewing_read_only'] = '&#1055;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100; &#1074; &#1088;&#1077;&#1078;&#1080;&#1084;&#1077; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1076;&#1083;&#1103; &#1095;&#1090;&#1077;&#1085;&#1080;&#1103;';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = 'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = '&#1085;&#1077;&#1090; &#1085;&#1086;&#1074;&#1099;&#1093; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1086;&#1074; &#1076;&#1083;&#1103; &#1101;&#1090;&#1086;&#1081; &#1079;&#1072;&#1087;&#1080;&#1089;&#1080;';//'no new attributes available for this entry';
$lang['binary_value'] = '&#1041;&#1080;&#1085;&#1072;&#1088;&#1085;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';//'Binary value';
$lang['add_new_binary_attr'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1073;&#1080;&#1085;&#1072;&#1088;&#1085;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1073;&#1080;&#1085;&#1072;&#1088;&#1085;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;/&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1089; &#1092;&#1072;&#1081;&#1083;&#1072;';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = '&#1040;&#1083;&#1080;&#1072;&#1089; &#1076;&#1083;&#1103;';//'Alias for';
$lang['download_value'] = '&#1079;&#1072;&#1075;&#1088;&#1091;&#1079;&#1080;&#1090;&#1100; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';//'download value';
$lang['delete_attribute'] = '&#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;';//'delete attribute';
$lang['true'] = '&#1076;&#1072;';//'true';
$lang['false'] = '&#1085;&#1077;&#1090;';//'false';
$lang['none_remove_value'] = '&#1085;&#1077;&#1090;, &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';//'none, remove value';
$lang['really_delete_attribute'] = 'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; <b>objectClasses</b> &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090;&#1100;&#1089;&#1103; &#1101;&#1090;&#1080;&#1084; LDAP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1086;&#1084;.';;//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; <b>attributeTypes</b> &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090;&#1100;&#1089;&#1103; &#1101;&#1090;&#1080;&#1084; LDAP &#1089;&#1077;&#1074;&#1077;&#1088;&#1086;&#1084;.';//The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; <b>matching rules</b> &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090;&#1100;&#1089;&#1103; &#1101;&#1090;&#1080;&#1084; LDAP &#1089;&#1077;&#1074;&#1077;&#1088;&#1086;&#1084;.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1080;&#1081; <b>syntaxes</b> &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090;&#1100;&#1089;&#1103; &#1101;&#1090;&#1080;&#1084; LDAP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1086;&#1084;.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = '&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1082; objectClass';//'Jump to an objectClass';
$lang['jump_to_attr'] = '&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1082; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1072;&#1084;';//'Jump to an attribute';
$lang['schema_for_server'] = '&#1057;&#1093;&#1077;&#1084;&#1072; &#1076;&#1083;&#1103; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';//'Schema for server';
$lang['required_attrs'] = '&#1047;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1099;&#1077; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Required Attributes';
$lang['optional_attrs'] = '&#1054;&#1087;&#1090;&#1080;&#1084;&#1072;&#1083;&#1100;&#1085;&#1099;&#1077; &#1086;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'Optional Attributes';
$lang['OID'] = 'OID';
$lang['desc'] = '&#1054;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077;';//'Description';
$lang['is_obsolete'] = '&#1069;&#1090;&#1086;&#1090; objectClass &#1077;&#1089;&#1090;&#1100; <b>obsolete</b>';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = '&#1053;&#1072;&#1089;&#1083;&#1077;&#1076;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
$lang['jump_to_this_oclass'] = '&#1055;&#1077;&#1088;&#1077;&#1081;&#1090;&#1080; &#1082; &#1101;&#1090;&#1086;&#1084;&#1091; objectClass &#1086;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1102;';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';
// Adding objectClass form
$lang['new_required_attrs'] = '&#1053;&#1086;&#1074;&#1099;&#1077; &#1079;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1099;&#1077; &#1087;&#1072;&#1088;&#1072;&#1084;&#1077;&#1090;&#1088;&#1099;';// 'New Required Attributes';
$lang['requires_to_add'] = '&#1069;&#1090;&#1086; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1077; &#1079;&#1072;&#1087;&#1088;&#1086;&#1096;&#1077;&#1085;&#1086; &#1074;&#1072;&#1084;&#1080; &#1082; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1102;';//'This action requires you to add';
$lang['new_attributes'] = '&#1085;&#1086;&#1074;&#1099;&#1077; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099;';//'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['add_oclass_and_attrs'] = '&#1048; ObjectClass &#1080; Attributes';//'Add ObjectClass and Attributes';
// 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['bad_server_id'] = '&#1055;&#1083;&#1086;&#1093;&#1086;&#1081; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; id';//'Bad server id';
$lang['not_enough_login_info'] = '&#1053;&#1077; &#1076;&#1086;&#1089;&#1090;&#1072;&#1090;&#1086;&#1095;&#1085;&#1086; &#1080;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1080;&#1080; &#1076;&#1083;&#1103; &#1087;&#1086;&#1076;&#1082;&#1083;&#1102;&#1095;&#1077;&#1085;&#1080;&#1103; &#1082; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1091;. &#1055;&#1086;&#1078;&#1072;&#1083;&#1091;&#1089;&#1090;&#1072; &#1087;&#1088;&#1086;&#1074;&#1077;&#1088;&#1090;&#1077; &#1042;&#1072;&#1096;&#1091; &#1082;&#1086;&#1085;&#1092;&#1080;&#1075;&#1091;&#1083;&#1072;&#1094;&#1080;&#1102;.';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = '&#1053;&#1077; &#1084;&#1086;&#1075;&#1091; &#1087;&#1086;&#1076;&#1082;&#1083;&#1102;&#1095;&#1080;&#1090;&#1100;&#1089;&#1103; &#1082; LDAP &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1086;&#1084;';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
// Add value form
$lang['add_new'] = '&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081;';//'Add new';
$lang['value_to'] = '&#1047;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1082;';//'value to';
$lang['server'] = '&#1057;&#1077;&#1088;&#1074;&#1077;&#1088;';//'Server';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = '&#1058;&#1077;&#1082;&#1091;&#1097;&#1080;&#1081; &#1089;&#1087;&#1080;&#1089;&#1086;&#1082;';//'Current list of';
$lang['values_for_attribute'] = '&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077; &#1076;&#1083;&#1103; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1072;';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an &quot;inappropriate matching&quot; error if you have not<br />' .
'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$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<br />that this objectClass requires.';
$lang['syntax'] = '&#1057;&#1080;&#1085;&#1090;&#1072;&#1082;&#1089;&#1080;&#1089;';//'Syntax';
// Incomplete or Erroneous Language Files
$lang['attr_name_tooltip'] = 'attr_name_tooltip';
$lang['refresh_entry']= '&#1086;&#1073;&#1085;&#1086;&#1074;&#1080;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';
$lang['attr_schema_hint']='&#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090; &#1089;&#1093;&#1077;&#1084;&#1099; &#1087;&#1086;&#1076;&#1089;&#1082;&#1072;&#1079;&#1082;&#1080;';
$lang['attrs_modified']='&#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1099; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1099;';
$lang['attr_modified']='&#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;';
$lang['name']='&#1080;&#1084;&#1103;';
$lang['not_applicable']='&#1085;&#1077; &#1087;&#1088;&#1080;&#1084;&#1077;&#1085;&#1080;&#1084;&#1099;&#1081;';
$lang['not_specified']='&#1085;&#1077; &#1086;&#1088;&#1087;&#1077;&#1076;&#1077;&#1083;&#1077;&#1085;&#1085;&#1099;&#1081;';
$lang['entry_deleted_successfully']='&#1079;&#1072;&#1087;&#1080;&#1089;&#1100; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;&#1072; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
$lang['you_must_specify_a_dn']='&#1074;&#1099; &#1076;&#1086;&#1083;&#1078;&#1085;&#1099; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100; DN';
$lang['could_not_delete_entry']='&#1085;&#1077; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';
$lang['bad_server_id_underline']='&#1085;&#1077;&#1074;&#1077;&#1088;&#1085;&#1099;&#1081; id &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &#1087;&#1086;&#1076;&#1095;&#1077;&#1088;&#1082;&#1080;&#1074;&#1072;&#1090;&#1100;';
$lang['success']='&#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086;';
$lang['server_colon_pare']='&#1074;&#1099;&#1088;&#1077;&#1079;&#1072;&#1090;&#1100; &#1076;&#1074;&#1086;&#1077;&#1090;&#1086;&#1095;&#1080;&#1077; &#1089;&#1077;&#1074;&#1077;&#1088;&#1072;';
$lang['look_in']='&#1088;&#1072;&#1089;&#1089;&#1084;&#1072;&#1090;&#1088;&#1080;&#1074;&#1072;&#1090;&#1100;';
$lang['missing_server_id_in_query_string']='&#1086;&#1090;&#1089;&#1091;&#1090;&#1089;&#1074;&#1091;&#1077;&#1090; id &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &#1074; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; &#1079;&#1072;&#1087;&#1088;&#1086;&#1089;&#1072;';
$lang['missing_dn_in_query_string']='&#1086;&#1090;&#1089;&#1091;&#1090;&#1089;&#1074;&#1091;&#1077;&#1090; dn &#1074; &#1089;&#1090;&#1088;&#1086;&#1082;&#1077; &#1079;&#1072;&#1087;&#1088;&#1086;&#1089;&#1072;';
$lang['back_up_p']='back up p';
$lang['no_entries']='&#1085;&#1077;&#1090; &#1079;&#1072;&#1087;&#1080;&#1089;&#1077;&#1081;';
$lang['not_logged_in']='&#1085;&#1077; &#1079;&#1072;&#1088;&#1072;&#1075;&#1077;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085; &#1074;';
$lang['could_not_det_base_dn']='&#1085;&#1077; &#1074;&#1086;&#1079;&#1084;&#1086;&#1078;&#1085;&#1086; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1100; Base DN';
$lang['copy_server_read_only']='&#1082;&#1086;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088; &#1090;&#1086;&#1083;&#1100;&#1082;&#1086; &#1076;&#1083;&#1103; &#1095;&#1090;&#1077;&#1085;&#1080;&#1103;';
$lang['copy_dest_dn_blank']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; &#1087;&#1091;&#1089;&#1090;&#1086;&#1075;&#1086; DN';
$lang['copy_dest_already_exists']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; &#1091;&#1078;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1102;&#1097;&#1077;&#1077;';
$lang['copy_dest_container_does_not_exist']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1074; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1077; &#1085;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
$lang['copy_source_dest_dn_same']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1089; &#1080;&#1089;&#1093;&#1086;&#1076;&#1085;&#1086;&#1075;&#1086; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1103; &#1074; &#1090;&#1086;&#1090; &#1078;&#1077; DN ';
$lang['copy_copying']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
$lang['copy_recursive_copy_progress']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1087;&#1088;&#1086;&#1094;&#1077;&#1089; &#1088;&#1077;&#1082;&#1091;&#1088;&#1089;&#1080;&#1074;&#1085;&#1086;&#1075;&#1086; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;';
$lang['copy_building_snapshot']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1082;&#1072;&#1076;&#1088;&#1072; &#1087;&#1086;&#1089;&#1090;&#1088;&#1086;&#1077;&#1085;&#1080;&#1077;';
$lang['copy_successful_like_to']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1091;&#1089;&#1087;&#1077;&#1096;&#1085;&#1086; &#1087;&#1086;&#1076;&#1086;&#1073;&#1085;&#1086; &#1076;&#1086; ';
$lang['copy_view_new_entry']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088; &#1085;&#1086;&#1074;&#1099;&#1093; &#1079;&#1072;&#1087;&#1080;&#1089;&#1077;&#1081;';
$lang['copy_failed']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1085;&#1077;&#1091;&#1076;&#1072;&#1095;&#1085;&#1086;';
$lang['missing_template_file']='&#1085;&#1077;&#1090; &#1074;&#1088;&#1077;&#1084;&#1077;&#1085;&#1086;&#1075;&#1086; &#1092;&#1072;&#1081;&#1083;&#1072;';
$lang['using_default']='&#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1090;&#1100; &#1087;&#1086; &#1091;&#1084;&#1086;&#1083;&#1095;&#1072;&#1085;&#1080;&#1102;';
$lang['copyf_title_copy']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1079;&#1072;&#1075;&#1086;&#1083;&#1086;&#1074;&#1086;&#1082; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100;';
$lang['copyf_to_new_object']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1085;&#1086;&#1074;&#1099;&#1081; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;';
$lang['copyf_dest_dn']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; DN';
$lang['copyf_dest_dn_tooltip']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; DN toolip';
$lang['copyf_dest_server']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1088;&#1072;&#1089;&#1087;&#1086;&#1083;&#1086;&#1078;&#1077;&#1085;&#1080;&#1077; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';
$lang['copyf_note']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1079;&#1072;&#1087;&#1080;&#1089;&#1082;&#1091;';
$lang['copyf_recursive_copy']='&#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077; &#1088;&#1077;&#1082;&#1091;&#1088;&#1089;&#1080;&#1074;&#1085;&#1086;&#1077; &#1082;&#1086;&#1087;&#1080;&#1088;&#1086;&#1074;&#1072;&#1085;&#1080;&#1077;';
$lang['create_required_attribute']='&#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1085;&#1077;&#1086;&#1073;&#1093;&#1086;&#1076;&#1080;&#1084;&#1099;&#1081; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;';
$lang['create_redirecting']='&#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1087;&#1077;&#1088;&#1077;&#1085;&#1072;&#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';
$lang['create_here']='&#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1089;&#1076;&#1077;&#1089;&#1100;';
$lang['create_could_not_add']='&#1089;&#1086;&#1079;&#1076;&#1072;&#1085;&#1080;&#1077; &#1085;&#1077; &#1084;&#1086;&#1078;&#1077;&#1090; &#1076;&#1086;&#1073;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077;';
$lang['createf_create_object']='&#1089;&#1086;&#1079;&#1076;&#1072;&#1090;&#1100; &#1086;&#1073;&#1098;&#1077;&#1082;&#1090;';
$lang['createf_choose_temp']='&#1074;&#1099;&#1073;&#1088;&#1072;&#1090;&#1100; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
$lang['createf_select_temp']='&#1074;&#1099;&#1073;&#1088;&#1072;&#1090;&#1100; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;';
$lang['createf_proceed']='&#1086;&#1073;&#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1085;&#1099;&#1081;';
$lang['ctemplate_on_server']='&#1085;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;';
$lang['ctemplate_no_template']='&#1085;&#1077;&#1090; &#1096;&#1072;&#1073;&#1083;&#1086;&#1085;&#1072;';
$lang['ctemplate_config_handler']='&#1089;&#1082;&#1086;&#1092;&#1080;&#1075;&#1091;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1090;&#1100; &#1080;&#1085;&#1089;&#1090;&#1088;&#1091;&#1082;&#1090;&#1086;&#1088;&#1072;';
$lang['ctemplate_handler_does_not_exist']='&#1082;&#1086;&#1085;&#1089;&#1090;&#1088;&#1091;&#1082;&#1090;&#1086;&#1088; &#1085;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
$lang['you_have_not_logged_into_server']='&#1042;&#1099; &#1085;&#1077; &#1079;&#1072;&#1088;&#1077;&#1075;&#1077;&#1089;&#1090;&#1088;&#1080;&#1088;&#1086;&#1074;&#1072;&#1083;&#1080;&#1089;&#1100; &#1085;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1077;';
$lang['click_to_go_to_login_form']='&#1085;&#1072;&#1078;&#1084;&#1080;&#1090;&#1077; &#1076;&#1083;&#1103; &#1088;&#1077;&#1075;&#1080;&#1089;&#1090;&#1088;&#1072;&#1094;&#1080;&#1080;';
$lang['unrecognized_criteria_option']='&#1085;&#1077;&#1080;&#1079;&#1074;&#1077;&#1089;&#1085;&#1072; &#1086;&#1087;&#1094;&#1080;&#1103; &#1082;&#1088;&#1080;&#1090;&#1077;&#1088;&#1080;&#1103;';
$lang['if_you_want_to_add_criteria']='&#1077;&#1089;&#1083;&#1080; &#1042;&#1099; &#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1076;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100; &#1082;&#1088;&#1080;&#1090;&#1077;&#1088;&#1080;&#1081;';
$lang['entries_found']='&#1079;&#1072;&#1087;&#1080;&#1089;&#1080; &#1085;&#1072;&#1081;&#1076;&#1077;&#1085;&#1099;';
$lang['filter_performed']='&#1092;&#1080;&#1083;&#1100;&#1090;&#1077;&#1088; &#1074;&#1099;&#1087;&#1086;&#1083;&#1085;&#1077;&#1085;';
$lang['search_duration']='&#1087;&#1086;&#1080;&#1089;&#1082; &#1076;&#1083;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1081;';
$lang['seconds']='&#1089;&#1077;&#1082;&#1091;&#1085;&#1076;&#1099;';
$lang['scope_in_which_to_search']='&#1074; &#1082;&#1086;&#1090;&#1086;&#1088;&#1086;&#1081; &#1080;&#1089;&#1082;&#1072;&#1090;&#1100;';
$lang['scope_sub']='&#1087;&#1086;&#1076;';
$lang['scope_one']='&#1086;&#1076;&#1085;&#1072; &#1086;&#1073;&#1083;&#1072;&#1089;&#1090;&#1100;';
$lang['scope_base']='&#1073;&#1072;&#1079;&#1072;';
$lang['standard_ldap_search_filter']='&#1089;&#1090;&#1072;&#1085;&#1076;&#1072;&#1088;&#1090;&#1085;&#1099;&#1081; ldap &#1087;&#1086;&#1080;&#1089;&#1082;&#1086;&#1074;&#1099;&#1081; &#1092;&#1080;&#1083;&#1100;&#1090;&#1077;&#1088;';
$lang['search_filter']='&#1092;&#1080;&#1083;&#1100;&#1090;&#1077;&#1088; &#1087;&#1086;&#1080;&#1089;&#1082;&#1072;';
$lang['list_of_attrs_to_display_in_results']='&#1089;&#1087;&#1080;&#1089;&#1086;&#1082; &#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;&#1086;&#1074; &#1087;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1074; &#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;&#1077;';
$lang['starts with']='&#1085;&#1072;&#1095;&#1080;&#1085;&#1072;&#1090;&#1100; &#1089;';
$lang['ends with']='&#1079;&#1072;&#1082;&#1072;&#1085;&#1095;&#1080;&#1074;&#1072;&#1090;&#1100; &#1089;';
$lang['sounds like']='&#1079;&#1074;&#1091;&#1095;&#1080;&#1090; &#1087;&#1086;&#1076;&#1086;&#1073;&#1085;&#1086;';
$lang['could_not_fetch_server_info']='&#1085;&#1077; &#1084;&#1086;&#1075;&#1091; &#1087;&#1086;&#1083;&#1091;&#1095;&#1080;&#1090;&#1100; &#1080;&#1085;&#1092;&#1086;&#1088;&#1084;&#1072;&#1094;&#1080;&#1102; &#1089; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072;';
$lang['server_info_for']='&#1080;&#1085;&#1092;&#1072; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &#1076;&#1083;&#1103;';
$lang['server_reports_following']='&#1086;&#1090;&#1095;&#1077;&#1090; &#1089;&#1077;&#1088;&#1074;&#1077;&#1088;&#1072; &#1089;&#1083;&#1077;&#1076;&#1091;&#1077;&#1090;';
$lang['nothing_to_report']='&#1085;&#1077;&#1095;&#1077;&#1075;&#1086; &#1087;&#1086;&#1082;&#1072;&#1079;&#1072;&#1090;&#1100; &#1076;&#1083;&#1103; &#1086;&#1090;&#1095;&#1077;&#1090;&#1072;';
$lang['update_array_malformed']='update_array_malformed';
$lang['could_not_perform_ldap_modify']='&#1085;&#1077;&#1083;&#1100;&#1079;&#1103; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1080;&#1090;&#1100; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1077; ldap';
$lang['do_you_want_to_make_these_changes']='&#1093;&#1086;&#1090;&#1080;&#1090;&#1077; &#1089;&#1076;&#1077;&#1083;&#1072;&#1090;&#1100; &#1101;&#1090;&#1080; &#1080;&#1079;&#1084;&#1077;&#1085;&#1077;&#1085;&#1080;&#1103;';
$lang['attribute']='&#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090;';
$lang['old_value']='&#1089;&#1090;&#1072;&#1088;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';
$lang['new_value']='&#1085;&#1086;&#1074;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';
$lang['attr_deleted']='&#1072;&#1090;&#1088;&#1080;&#1073;&#1091;&#1090; &#1091;&#1076;&#1072;&#1083;&#1077;&#1085;';
$lang['commit']='&#1087;&#1086;&#1076;&#1090;&#1074;&#1077;&#1088;&#1076;&#1080;&#1090;&#1100;';
$lang['cancel']='&#1086;&#1090;&#1084;&#1077;&#1085;&#1080;&#1090;&#1100;';
$lang['you_made_no_changes']='&#1042;&#1099; &#1085;&#1080;&#1095;&#1077;&#1075;&#1086; &#1085;&#1077; &#1080;&#1079;&#1084;&#1077;&#1085;&#1080;&#1083;&#1080; ';
$lang['go_back']='&#1085;&#1072;&#1079;&#1072;&#1076;';
$lang['welcome_note']='&#1087;&#1088;&#1080;&#1075;&#1072;&#1089;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1072;&#1103; &#1079;&#1072;&#1087;&#1080;&#1089;&#1100;';
$lang['unsafe_file_name']='&#1085;&#1077;&#1085;&#1072;&#1076;&#1077;&#1078;&#1085;&#1086;&#1077; &#1080;&#1084;&#1103; &#1092;&#1072;&#1081;&#1083;&#1072;';
$lang['no_such_file']='&#1085;&#1077;&#1090; &#1090;&#1072;&#1082;&#1086;&#1075;&#1086; &#1092;&#1072;&#1081;&#1083;&#1072;';
$lang['auto_update_not_setup']='&#1072;&#1074;&#1090;&#1086;-&#1086;&#1073;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1077; &#1091;&#1089;&#1090;&#1072;&#1085;&#1072;&#1074;&#1083;&#1080;&#1074;&#1072;&#1090;&#1100;';
$lang['uidpool_not_set']='uidpool &#1085;&#1077; &#1091;&#1082;&#1072;&#1079;&#1072;&#1085;';
$lang['uidpool_not_exist']='uidpool &#1085;&#1077; &#1089;&#1091;&#1097;&#1077;&#1089;&#1090;&#1074;&#1091;&#1077;&#1090;';
$lang['specified_uidpool']='&#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1080;&#1090;&#1077; uidpool';
$lang['auto_uid_invalid_value']='auto uid &#1085;&#1077;&#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1086;&#1077; &#1079;&#1085;&#1072;&#1095;&#1077;&#1085;&#1080;&#1077;';
$lang['error_auth_type_config']='error_auth_type_config';
$lang['php_install_not_supports_tls']='&#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1083;&#1077;&#1085;&#1099;&#1081; PHP &#1085;&#1077; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090; tls';
$lang['could_not_start_tls']='&#1085;&#1077;&#1083;&#1100;&#1079;&#1103; &#1085;&#1072;&#1095;&#1072;&#1090;&#1100; tls';
$lang['auth_type_not_valid']='&#1090;&#1080;&#1087; &#1072;&#1074;&#1090;&#1086;&#1088;&#1080;&#1079;&#1072;&#1094;&#1080;&#1080; &#1085;&#1077; &#1087;&#1088;&#1072;&#1074;&#1080;&#1083;&#1100;&#1085;&#1099;&#1081;';
$lang['ldap_said']='ldap &#1089;&#1082;&#1072;&#1079;&#1072;&#1083;';
$lang['ferror_error']='&#1086;&#1096;&#1080;&#1073;&#1082;&#1072;';
$lang['fbrowse']='&#1087;&#1088;&#1086;&#1089;&#1084;&#1086;&#1090;&#1088;&#1077;&#1090;&#1100;';
$lang['delete_photo']='&#1091;&#1076;&#1072;&#1083;&#1080;&#1090;&#1100; &#1092;&#1086;&#1090;&#1086;';
$lang['install_not_support_blowfish']='&#1091;&#1089;&#1090;&#1072;&#1085;&#1086;&#1074;&#1082;&#1072; &#1085;&#1077; &#1087;&#1086;&#1076;&#1076;&#1077;&#1088;&#1078;&#1080;&#1074;&#1072;&#1077;&#1090; blowfish';
$lang['install_no_mash']='install_no_mash';
$lang['jpeg_contains_errors']='jpeg &#1089;&#1086;&#1076;&#1077;&#1088;&#1078;&#1080;&#1090; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080;';
$lang['ferror_number']='&#1085;&#1086;&#1084;&#1077;&#1088; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080;';
$lang['ferror_discription']='&#1086;&#1096;&#1080;&#1073;&#1082;&#1072; &#1086;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1103;';
$lang['ferror_number_short']='&#1095;&#1080;&#1089;&#1083;&#1086; &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1086;&#1077;';
$lang['ferror_discription_short']='&#1086;&#1087;&#1080;&#1089;&#1072;&#1085;&#1080;&#1077; &#1082;&#1086;&#1088;&#1086;&#1090;&#1082;&#1086;&#1077;';
$lang['ferror_submit_bug']='&#1087;&#1086;&#1076;&#1090;&#1074;&#1077;&#1088;&#1076;&#1080;&#1090;&#1077; &#1073;&#1072;&#1075;';
$lang['ferror_unrecognized_num']='&#1085;&#1077;&#1080;&#1074;&#1077;&#1089;&#1085;&#1099;&#1081; &#1085;&#1086;&#1084;&#1077;&#1088; &#1086;&#1096;&#1080;&#1073;&#1082;&#1080; ';
$lang['ferror_nonfatil_bug']='&#1085;&#1077; &#1092;&#1072;&#1090;&#1072;&#1083;&#1100;&#1085;&#1072;&#1103; &#1086;&#1096;&#1080;&#1073;&#1082;&#1072;';
$lang['ferror_congrats_found_bug']='&#1087;&#1086;&#1079;&#1076;&#1088;&#1072;&#1074;&#1083;&#1077;&#1085;&#1080;&#1077; &#1085;&#1072;&#1096;&#1077;&#1076;&#1096;&#1080;&#1084; &#1073;&#1072;&#1075;';
?>

259
lang/ru.php Normal file
View File

@ -0,0 +1,259 @@
<?php
// Translate to russian Dmitry Gorpinenko dima at uz.energy.gov.ua
$lang = array();
// Search form
$lang['simple_search_form_str'] = 'Простая форма поиска';
$lang['advanced_search_form_str'] = 'Разширеная форма поиска';
$lang['server'] = 'Сервер';
$lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Основной DN (Base DN)'; // 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['search_ filter'] = 'Поисковый фильтр';//'Search Filter';
$lang['show_attributes'] = 'Показать атрибуты';//'Show Attributtes';
$lang['Search'] = 'Поиск';//'Search';
$lang['equals'] = 'ровно';//'equals';
$lang['starts_with'] = 'запускать с';//'starts with';
$lang['contains'] = 'содержит';//'contains';
$lang['ends_with'] = 'заканчивать с';//'ends with';
$lang['sounds_like'] = 'звучит подобно';//'sounds like';
// Tree browser
$lang['request_new_feature'] = 'Попросить новую возможность';//'Request a new feature';
$lang['see_open_requests'] = 'посмотреть запрошеные возможности';//'see open requests';
$lang['report_bug'] = 'Сообщить об ошибках ';//'Report a bug';
$lang['see_open_bugs'] = 'просмотреть текущее ошибки';//'see open bugs';
$lang['schema'] = 'схема';//'schema';
$lang['search'] = 'поиск';//'search';
$lang['refresh'] = 'обновить';//'refresh';
$lang['create'] = 'создать';//'create';
$lang['info'] = 'инфа';//'info';
$lang['import'] = 'импорт';//'import';
$lang['logout'] = 'выйти';//'logout';
$lang['create_new'] = 'Создать новую';//'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_server_info'] = 'Просмотреть информацию о возможностях сервера';//'View server-supplied information';
$lang['import_from_ldif'] = 'Импорт записей из LDIF файла';//'Import entries from an LDIF file';
$lang['logout_of_this_server'] = 'Отключиться от этого сервера';//'Logout of this server';
$lang['logged_in_as'] = 'Поключен как:';//'Logged in as: ';
$lang['read_only'] = 'только для чтения';//'read only';
$lang['could_not_determine_root'] = 'Не могу определить корень Вашего LDAP дерева';//'Could not determin the root of your LDAP tree.';
$lang['ldap_refuses_to_give_root'] = 'It appears that the LDAP server has been configured to not reveal its root.';
$lang['please_specify_in_config'] = 'Пожалуста определите это в config.php';//'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Создайте новую запись в';//'Create a new entry in';
// 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_tooltip'] = 'Скопировать этот обьект в другое место, новый DN, или другой сервер';//'Copy this object to another location, a new DN, or another server';
$lang['export_to_ldif'] = 'Экспорт в LDIF';//'Export to LDIF';
$lang['export_to_ldif_tooltip'] = 'Сохранить дамп LDIF этого обьекта';//'Save an LDIF dump of this object';
$lang['export_subtree_to_ldif_tooltip'] = 'Save an LDIF dump of this object and all of its children';
$lang['export_subtree_to_ldif'] = 'Экспорт поддерева в LDIF';//'Export subtree to LDIF';
$lang['export_to_ldif_mac'] = 'Конец строки в стиле Macintosh';//'Macintosh style line ends';
$lang['export_to_ldif_win'] = 'Конец строки в стиле Windows';
$lang['export_to_ldif_unix'] = 'Конец строки в стиле Windows';//'Unix style line ends';
$lang['create_a_child_entry'] = 'Создать запись-потомок';//'Create a child entry';
$lang['add_a_jpeg_photo'] = 'Добавить jpeg-фото';//'Add a jpegPhoto';
$lang['rename_entry'] = 'Переимеовать запись';//'Rename Entry';
$lang['rename'] = 'Переименовать';//'Rename';
$lang['login_link'] = 'Login...';
$lang['add'] = 'Добавить';//'Add';
$lang['view'] = 'Просмотреть';//'View';
$lang['add_new_attribute'] = 'Довавить новый атрибут';//'Add New Attribute';
$lang['add_new_attribute_tooltip'] = 'Добавить новый атрибут/значение в эту запись';//'Add a new attribute/value to this entry';
$lang['internal_attributes'] = 'Внешний атрибуты';//'Internal Attributes';
$lang['hide_internal_attrs'] = 'Скрыть внешний атрибуты';//'Hide internal attributes';
$lang['show_internal_attrs'] = 'Показать внешний атрибуты';//'Show internal attributes';
$lang['internal_attrs_tooltip'] = 'Атрибуты устанавливаються автоматически системой';//'Attributes set automatically by the system';
$lang['entry_attributes'] = 'Атрибуты записи';//'Entry Attributes';
$lang['click_to_display'] = 'нажать для просмотра';//'click to display';
$lang['hidden'] = 'скрытый';//'hidden';
$lang['none'] = 'нет';//'none';
$lang['save_changes'] = 'Сохранить изменение';//'Save Changes';
$lang['add_value'] = 'добавить значение';//'add value';
$lang['add_value_tooltip'] = 'Добавить дополнительные значение к этому атрибуту';//'Add an additional value to this attribute';
$lang['refresh'] = 'обновить';//'refresh';
$lang['refresh_this_entry'] = 'Обновить эту запись';//'Refresh this entry';
$lang['delete_hint'] = 'Совет: <b>Удалить атрибут</b>, очистите текстовое поле и нажмите сохрнить.';//'Hint: <b>To delete an attribute</b>, empty the text field and click save.';
$lang['viewing_read_only'] = 'Просмотреть запись в режиме только для чтения';//'Viewing entry in read-only mode.';
$lang['change_entry_rdn'] = 'Change this entry\'s RDN';
$lang['no_new_attrs_available'] = 'нет новых атрибутов для этой записи';//'no new attributes available for this entry';
$lang['binary_value'] = 'Бинарное значение';//'Binary value';
$lang['add_new_binary_attr'] = 'Добавить новый бинарный атрибут';//'Add New Binary Attribute';
$lang['add_new_binary_attr_tooltip'] = 'Добавить новый бинарный атрибут/значение с файла';//'Add a new binary attribute/value from a file';
$lang['alias_for'] = 'Алиас для';//'Alias for';
$lang['download_value'] = 'загрузить значение';//'download value';
$lang['delete_attribute'] = 'удалить атрибут';//'delete attribute';
$lang['true'] = 'да';//'true';
$lang['false'] = 'нет';//'false';
$lang['none_remove_value'] = 'нет, удалите значение';//'none, remove value';
$lang['really_delete_attribute'] = 'Really delete attribute';
// Schema browser
$lang['the_following_objectclasses'] = 'Следующий <b>objectClasses</b> поддерживаеться этим LDAP сервером.';;//'The following <b>objectClasses</b> are supported by this LDAP server.';
$lang['the_following_attributes'] = 'Следующий <b>attributeTypes</b> поддерживаеться этим LDAP севером.';//The following <b>attributeTypes</b> are supported by this LDAP server.';
$lang['the_following_matching'] = 'Следующий <b>matching rules</b> поддерживаеться этим LDAP севером.';//'The following <b>matching rules</b> are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'Следующий <b>syntaxes</b> поддерживаеться этим LDAP сервером.';//'The following <b>syntaxes</b> are supported by this LDAP server.';
$lang['jump_to_objectclass'] = 'Перейти к objectClass';//'Jump to an objectClass';
$lang['jump_to_attr'] = 'Перейти к атрибутам';//'Jump to an attribute';
$lang['schema_for_server'] = 'Схема для сервера';//'Schema for server';
$lang['required_attrs'] = 'Запрошеные атрибуты';//'Required Attributes';
$lang['optional_attrs'] = 'Оптимальные отрибуты';//'Optional Attributes';
$lang['OID'] = 'OID';
$lang['desc'] = 'Описание';//'Description';
$lang['is_obsolete'] = 'Этот objectClass есть <b>obsolete</b>';//'This objectClass is <b>obsolete</b>';
$lang['inherits'] = 'Наследование';
$lang['jump_to_this_oclass'] = 'Перейти к этому objectClass описанию';//'Jump to this objectClass definition';
$lang['matching_rule_oid'] = 'Matching Rule OID';
$lang['syntax_oid'] = 'Syntax OID';
// Adding objectClass form
$lang['new_required_attrs'] = 'Новые запрошеные параметры';// 'New Required Attributes';
$lang['requires_to_add'] = 'Это действие запрошено вами к добавлению';//'This action requires you to add';
$lang['new_attributes'] = 'новые атрибуты';//'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['add_oclass_and_attrs'] = 'И ObjectClass и Attributes';//'Add ObjectClass and Attributes';
// 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['bad_server_id'] = 'Плохой сервера id';//'Bad server id';
$lang['not_enough_login_info'] = 'Не достаточно информации для подключения к серверу. Пожалуста проверте Вашу конфигулацию.';//'Not enough information to login to server. Please check your configuration.';
$lang['could_not_connect'] = 'Не могу подключиться к LDAP сервером';//'Could not connect to LDAP server.';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
// Add value form
$lang['add_new'] = 'Добавить новый';//'Add new';
$lang['value_to'] = 'Значение к';//'value to';
$lang['server'] = 'Сервер';//'Server';
$lang['distinguished_name'] = 'Distinguished Name';
$lang['current_list_of'] = 'Текущий список';//'Current list of';
$lang['values_for_attribute'] = 'значение для атрибута';//'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not<br />' .
'setup an <tt>EQUALITY</tt> rule on your LDAP server for this attribute.';
$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<br />that this objectClass requires.';
$lang['syntax'] = 'Синтаксис';//'Syntax';
// Incomplete or Erroneous Language Files
$lang['attr_name_tooltip'] = 'attr_name_tooltip';
$lang['refresh_entry']= 'обновить запись';
$lang['attr_schema_hint']='атрибут схемы подсказки';
$lang['attrs_modified']='атрибуты изменены';
$lang['attr_modified']='атрибут изменен';
$lang['name']='имя';
$lang['not_applicable']='не применимый';
$lang['not_specified']='не орпеделенный';
$lang['entry_deleted_successfully']='запись удалена успешно';
$lang['you_must_specify_a_dn']='вы должны определить DN';
$lang['could_not_delete_entry']='не возможно удалить запись';
$lang['bad_server_id_underline']='неверный id сервера подчеркивать';
$lang['success']='успешно';
$lang['server_colon_pare']='вырезать двоеточие севера';
$lang['look_in']='рассматривать';
$lang['missing_server_id_in_query_string']='отсутсвует id сервера в строке запроса';
$lang['missing_dn_in_query_string']='отсутсвует dn в строке запроса';
$lang['back_up_p']='back up p';
$lang['no_entries']='нет записей';
$lang['not_logged_in']='не зарагестрирован в';
$lang['could_not_det_base_dn']='не возможно определить Base DN';
$lang['copy_server_read_only']='корировать сервер только для чтения';
$lang['copy_dest_dn_blank']='копировать в расположение пустого DN';
$lang['copy_dest_already_exists']='копировать в расположение уже существующее';
$lang['copy_dest_container_does_not_exist']='копировать в расположение которое не существует';
$lang['copy_source_dest_dn_same']='копировать с исходного расположения в тот же DN ';
$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']='копирование неудачно';
$lang['missing_template_file']='нет временого файла';
$lang['using_default']='использовать по умолчанию';
$lang['copyf_title_copy']='копировать заголовок копировать';
$lang['copyf_to_new_object']='копировать новый объект';
$lang['copyf_dest_dn']='копировать расположение DN';
$lang['copyf_dest_dn_tooltip']='копировать расположение DN toolip';
$lang['copyf_dest_server']='копировать расположение сервера';
$lang['copyf_note']='копировать записку';
$lang['copyf_recursive_copy']='копирование рекурсивное копирование';
$lang['create_required_attribute']='создать необходимый атрибут';
$lang['create_redirecting']='создать переназначение';
$lang['create_here']='создать сдесь';
$lang['create_could_not_add']='создание не может добавление';
$lang['createf_create_object']='создать объект';
$lang['createf_choose_temp']='выбрать шаблон';
$lang['createf_select_temp']='выбрать шаблон';
$lang['createf_proceed']='обработаный';
$lang['ctemplate_on_server']='на сервер';
$lang['ctemplate_no_template']='нет шаблона';
$lang['ctemplate_config_handler']='скофигурировать инструктора';
$lang['ctemplate_handler_does_not_exist']='конструктор не существует';
$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']='если Вы хотите добавить критерий';
$lang['entries_found']='записи найдены';
$lang['filter_performed']='фильтер выполнен';
$lang['search_duration']='поиск длительный';
$lang['seconds']='секунды';
$lang['scope_in_which_to_search']='в которой искать';
$lang['scope_sub']='под';
$lang['scope_one']='одна область';
$lang['scope_base']='база';
$lang['standard_ldap_search_filter']='стандартный ldap поисковый фильтер';
$lang['search_filter']='фильтер поиска';
$lang['list_of_attrs_to_display_in_results']='список атрибутов показать в результате';
$lang['starts with']='начинать с';
$lang['ends with']='заканчивать с';
$lang['sounds like']='звучит подобно';
$lang['could_not_fetch_server_info']='не могу получить информацию с сервера';
$lang['server_info_for']='инфа сервера для';
$lang['server_reports_following']='отчет сервера следует';
$lang['nothing_to_report']='нечего показать для отчета';
$lang['update_array_malformed']='update_array_malformed';
$lang['could_not_perform_ldap_modify']='нельзя разрешить изменение ldap';
$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']='назад';
$lang['welcome_note']='пригасительная запись';
$lang['unsafe_file_name']='ненадежное имя файла';
$lang['no_such_file']='нет такого файла';
$lang['auto_update_not_setup']='авто-обновление не устанавливать';
$lang['uidpool_not_set']='uidpool не указан';
$lang['uidpool_not_exist']='uidpool не существует';
$lang['specified_uidpool']='определите uidpool';
$lang['auto_uid_invalid_value']='auto uid неправильное значение';
$lang['error_auth_type_config']='error_auth_type_config';
$lang['php_install_not_supports_tls']='установленый PHP не поддерживает tls';
$lang['could_not_start_tls']='нельзя начать tls';
$lang['auth_type_not_valid']='тип авторизации не правильный';
$lang['ldap_said']='ldap сказал';
$lang['ferror_error']='ошибка';
$lang['fbrowse']='просмотреть';
$lang['delete_photo']='удалить фото';
$lang['install_not_support_blowfish']='установка не поддерживает blowfish';
$lang['install_no_mash']='install_no_mash';
$lang['jpeg_contains_errors']='jpeg содержит ошибки';
$lang['ferror_number']='номер ошибки';
$lang['ferror_discription']='ошибка описания';
$lang['ferror_number_short']='число короткое';
$lang['ferror_discription_short']='описание короткое';
$lang['ferror_submit_bug']='подтвердите баг';
$lang['ferror_unrecognized_num']='неивесный номер ошибки ';
$lang['ferror_nonfatil_bug']='не фатальная ошибка';
$lang['ferror_congrats_found_bug']='поздравление нашедшим баг';
?>

View File

@ -13,9 +13,9 @@
require 'common.php'; require 'common.php';
$dn = rawurldecode( $_GET['dn'] ); $dn = $_GET['dn'];
$server_id = $_GET['server_id']; $server_id = $_GET['server_id'];
$format = $_GET['format']; $format = isset( $_GET['format'] ) ? $_GET['format'] : null;
$scope = $_GET['scope'] ? $_GET['scope'] : 'base'; $scope = $_GET['scope'] ? $_GET['scope'] : 'base';
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );

File diff suppressed because it is too large Load Diff

View File

@ -38,56 +38,78 @@ include 'header.php'; ?>
<br /> <br />
<br /> <br />
<center><i>This is an experimental and untested feature. Proceed at your own risk.</i><br />
<i>The add and delete operations are the only operations currently supported.</i>
</center>
<br />
<?php <?php
include("ldif_functions.php"); include("ldif_functions.php");
@set_time_limit( 0 ); @set_time_limit( 0 );
ldif_open_file($file);
// String associated to the operation on the ldap server
$actionString = array();
$actionString['add'] = $lang['add_action'];
$actionString['delete'] = $lang['delete_action'];
$actionString['modrdn'] = $lang['rename_action'];
$actionString['moddn'] = $lang['rename_action'];
$actionString['modify'] = $lang['modify_action'];
// String associated with error
$actionErrorMsg =array();
$actionErrorMsg['add'] = $lang['ldif_could_not_add_object'];
$actionErrorMsg['delete']= $lang['ldif_could_not_delete_object'];
$actionErrorMsg['modrdn']= $lang['ldif_could_not_rename_object'];
$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 ) or pla_error( "Could not connect to LDAP server" ); $ds = pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server" );
if(!ldif_check_version()){
display_warning(ldif_warning_message()); //instantiate the reader
$ldifReader = new LdifReader($file);
//instantiate the writer
$ldapWriter = new LdapWriter($ds);
// if ldif file has no version number, just display a warning
if(!$ldifReader->hasVersionNumber()){
display_warning($ldifReader->getWarningMessage());
} }
while($dn_entry= ldif_fetch_dn_entry() ){
$action = ldif_get_action();
if($action=="add"){ //while we have a valid entry,
echo "Adding dn:".utf8_decode($dn_entry) ."... "; while($entry = $ldifReader->readEntry()){
flush(); $changeType = $entry->getChangeType();
if($attributes = ldif_fetch_attributes_for_entry()){
if(@ldap_add($ds,$dn_entry,$attributes)){ echo "<small>".$actionString[$changeType]." ".$entry->dn;
echo "<span style=\"color:green;\">Success</span><br>"; if($ldapWriter->ldapModify($entry)){
} echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>";
else{
echo "<span style=\"color:red;\">failed</span><br><br>";
pla_error( "Could not add object: " . htmlspecialchars( utf8_decode( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) );
}
}
else{
echo "<span style=\"color:red;\">failed</span><br><br>";
echo "<div style=\"color:red\">".display_error_message(ldif_error_message())."</div>";
flush();
}
}
elseif($action=="delete"){
echo "Deleting dn: ".$dn_entry." ";
if(@ldap_delete($ds,$dn_entry)){
echo "<span style=\"color:green;\">Success</span><br>";
flush(); flush();
} }
else{ else{
echo "<span style=\"color:red;\">Failed</span><br><br>"; echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br><br>";
flush(); reload_left_frame();
pla_error( "Could not delete object: " . htmlspecialchars( utf8_decode( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( utf8_decode( $entry->dn ) ), ldap_error( $ds ), ldap_errno( $ds ) );
}
} }
}
// close the file
$ldifReader->done();
} //close the ldap connection
$ldapWriter->ldapClose();
// 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();
if($currentEntry->dn !=""){
echo "<small>".$actionString[$currentEntry->getChangeType()]." ".$currentEntry->dn." <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
}
//get the exception wich was raised
$exception = $ldifReader->getLdapLdifReaderException();
echo "<br />";
echo "<br />";
display_pla_parse_error($exception,$currentEntry);
}
reload_left_frame(); reload_left_frame();
@ -101,18 +123,45 @@ function reload_left_frame(){
} }
function display_error_message($error_message){ function display_error_message($error_message){
echo "<div style=\"color:red;\">".$error_message."</div>"; echo "<div style=\"color:red;\"><small>".$error_message."</small></div>";
} }
function display_warning($warning){ function display_warning($warning){
echo "<div style=\"color:orange\">".$warning."</div>"; echo "<div style=\"color:orange\"><small>".$warning."</small></div>";
}
function display_pla_parse_error($exception,$faultyEntry){
global $lang;
global $actionErrorMsg;
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
print("<center>");
print("<table class=\"error\"><tr><td class=\"img\"><img src=\"images/warning.png\" /></td>");
print("<td><center><h2>".$lang['ldif_parse_error']."</h2></center>");
print("<br />");
print($errorMessage." ". $faultyEntry->dn);
print("<p>");
print("<b>".$lang['desc']."</b>: ".$exception->message);
print("</p>");
print("<p>");
print("<b>".$lang['ldif_line']."</b>: ".$exception->currentLine);
print("</p>");
print("<p>");
print("<b>".$lang['ldif_line_number']."</b>: ".$exception->lineNumber);
print("</p>");
print("<br />");
print("<p>\r\n");
print("<center>");
print("<small>");
print(sprintf($lang['ferror_submit_bug'] , get_href( 'add_bug' )));
print("</small></center></p>");
print("<td>");
print("</tr>");
print("<center>");
} }
?> ?>
</script>
</body> </body>
</html> </html>

View File

@ -21,27 +21,20 @@ include 'header.php'; ?>
<body> <body>
<h3 class="title">Import LDIF File</h3> <h3 class="title"><?php echo $lang['import_ldif_file_title']?></h3>
<h3 class="subtitle">Server: <b><?php echo htmlspecialchars( $server_name ); ?></b></h3> <h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $server_name ); ?></b></h3>
<br />
<br />
<center><i>This is an experimental and untested feature. Proceed at your own risk.</i>
<br />
<i>The add operation is the only operation currently supported.</i>
</center>
<br /> <br />
<br /> <br />
Select an LDIF file:<br /> <?php echo $lang['select_ldif_file']?><br />
<br /> <br />
<form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data"> <form action="ldif_import.php" method="post" class="new_value" enctype="multipart/form-data">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="file" name="ldif_file" /><br /> <input type="file" name="ldif_file" /><br />
<br /> <br />
<input type="submit" value="Proceed &gt;&gt;" /> <input type="submit" value="<?php echo $lang['select_ldif_file_proceed']?>" />
</form> </form>
</body> </body>

View File

@ -18,11 +18,11 @@
require 'common.php'; require 'common.php';
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$dn = $_POST['login_dn']; $dn = isset( $_POST['login_dn'] ) ? $_POST['login_dn'] : null;
$uid = $_POST['uid']; $uid = isset( $_POST['uid'] ) ? $_POST['uid'] : null;
$pass = $_POST['login_pass']; $pass = isset( $_POST['login_pass'] ) ? $_POST['login_pass'] : null;
$redirect = rawurldecode( $_POST['redirect'] ); $redirect = isset( $_POST['redirect'] ) ? rawurldecode( $_POST['redirect'] ) : null;
$anon_bind = $_POST['anonymous_bind'] == 'on' ? true : false; $anon_bind = isset( $_POST['anonymous_bind'] ) && $_POST['anonymous_bind'] == 'on' ? true : false;
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
if( ! $anon_bind ) { if( ! $anon_bind ) {
@ -44,6 +44,7 @@ if ( isset( $servers[$server_id]['login_attr'] ) &&
// search for the "uid" first // search for the "uid" first
$ds = ldap_connect ( $host, $port ); $ds = ldap_connect ( $host, $port );
$ds or pla_error( "Could not contact '" . htmlspecialchars( $host ) . "' on port '" . htmlentities( $port ) . "'" ); $ds or pla_error( "Could not contact '" . htmlspecialchars( $host ) . "' on port '" . htmlentities( $port ) . "'" );
@ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 );
@ldap_bind ($ds) or pla_error( "Could not bind anonymously to server. " . @ldap_bind ($ds) or pla_error( "Could not bind anonymously to server. " .
"Unless your server accepts anonymous binds, " . "Unless your server accepts anonymous binds, " .
"the login_attr feature will not work properly."); "the login_attr feature will not work properly.");
@ -57,7 +58,7 @@ if ( isset( $servers[$server_id]['login_attr'] ) &&
$ds = @ldap_connect( $host, $port ); $ds = @ldap_connect( $host, $port );
$ds or pla_error( "Could not connect to '" . htmlspecialchars( $host ) . "' on port '" . htmlentities( $port ) . "'" ); $ds or pla_error( "Could not connect to '" . htmlspecialchars( $host ) . "' on port '" . htmlentities( $port ) . "'" );
// go with LDAP version 3 if possible (needed for renaming and Novell schema fetching) // go with LDAP version 3 if possible
@ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 ); @ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 );
$bind_result = @ldap_bind( $ds, $dn, $pass ); $bind_result = @ldap_bind( $ds, $dn, $pass );
@ -65,19 +66,18 @@ $bind_result = @ldap_bind( $ds, $dn, $pass );
if( ! $bind_result ) if( ! $bind_result )
pla_error( "Bad username/password. Try again" ); pla_error( "Bad username/password. Try again" );
if( ! isset( $cookie_time ) ) set_cookie_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( "Could not set cookie!" );
$cookie_time = 0;
$expire = $cookie_time == 0 ? null : time()+$cookie_time; // Clear out any pre-existing tree data in the session for this server
if( $anon_bind ) { session_start();
// we set the cookie val to 0 for anonymous binds. if( session_is_registered( 'tree' ) )
$res1 = setcookie( "pla_login_dn_$server_id", '0', $expire, dirname( $_SERVER['PHP_SELF'] ) ); if( isset( $_SESSION['tree'][$server_id] ) )
$res2 = setcookie( "pla_pass_$server_id", '0', $expire, dirname( $_SERVER['PHP_SELF'] ) ); unset( $_SESSION['tree'][$server_id] );
} else { if( session_is_registered( 'tree_icons' ) )
$res1 = setcookie( "pla_login_dn_$server_id", $dn, $expire, dirname( $_SERVER['PHP_SELF'] ) ); if( isset( $_SESSION['tree_icons'][$server_id] ) )
$res2 = setcookie( "pla_pass_$server_id", $pass, $expire, dirname( $_SERVER['PHP_SELF'] ) ); unset( $_SESSION['tree_icons'][$server_id] );
} session_write_close();
if( ! $res1 || ! $res2 )
pla_error( "Could not set cookie!" );
?> ?>
<html> <html>
@ -108,14 +108,12 @@ if( ! $res1 || ! $res2 )
<center> <center>
<br /> <br />
<br /> <br />
Logged in to <b><?php echo htmlspecialchars($servers[$server_id]['name']); ?></b><br /> <br />
Successfully logged in to server <b><?php echo htmlspecialchars($servers[$server_id]['name']); ?></b><br />
<?php if( $anon_bind ) { ?> <?php if( $anon_bind ) { ?>
(anonymous bind) (anonymous bind)
<?php } ?> <?php } ?>
<br /> <br />
<br />
<br />
Click <a href="search.php?server_id=<?php echo $server_id?>">here</a> to go to the search form.
</center> </center>
<?php } ?> <?php } ?>

View File

@ -16,9 +16,8 @@ $server = $servers[$server_id];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
<script language="javascript"> <script language="javascript">
@ -43,7 +42,7 @@ check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars
<?php if( $_SERVER['SERVER_PORT'] != 443 ) { ?> <?php if( $_SERVER['SERVER_PORT'] != 443 ) { ?>
<center> <center>
<span style="color:red">Warning: This web connection is <acronym title="Your login and password will be transmitted in clear text">unencrypted</acronym> (not https).<br /> <span style="color:red">Warning: This web connection is <acronym title="You are not using 'https'. Web browlser will transmit login information in clear text">unencrypted</acronym>.<br />
</span> </span>
<?php } ?> <?php } ?>
@ -52,7 +51,7 @@ check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars
<form action="login.php" method="post" name="login_form"> <form action="login.php" method="post" name="login_form">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<?php if( $_GET['redirect'] ) { ?> <?php if( isset( $_GET['redirect'] ) ) { ?>
<input type="hidden" name="redirect" value="<?php echo rawurlencode( $_GET['redirect'] ) ?>" /> <input type="hidden" name="redirect" value="<?php echo rawurlencode( $_GET['redirect'] ) ?>" />
<?php } ?> <?php } ?>
<center> <center>
@ -63,10 +62,6 @@ check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars
<td colspan="2"><small>Anonymous Bind</small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" /></td> <td colspan="2"><small>Anonymous Bind</small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" /></td>
</tr> </tr>
<tr> <tr>
<!--
<td><small>Login <acronym title="Distinguished Name">DN</acronym></small></td>
<td><input type="text" name="login_dn" size="40" value="<?php echo $servers[$server_id]['login_dn']; ?>" name="login_dn" /></td>
-->
<td><small>Login <?php if ( $servers[$server_id]['login_attr'] == "dn" || $servers[$server_id]['login_attr'] == "") { echo '<acronym title="Distinguished Name">DN</acronym>';} ?></small></td> <td><small>Login <?php if ( $servers[$server_id]['login_attr'] == "dn" || $servers[$server_id]['login_attr'] == "") { echo '<acronym title="Distinguished Name">DN</acronym>';} ?></small></td>
<td><input type="text" name="<?php if ( $servers[$server_id]['login_attr'] == "dn" || $servers[$server_id]['login_attr'] == "" ) {echo 'login_dn';} else {echo 'uid';} ?>" size="40" value="<?php echo $servers[$server_id]['login_dn']; ?>" /></td> <td><input type="text" name="<?php if ( $servers[$server_id]['login_attr'] == "dn" || $servers[$server_id]['login_attr'] == "" ) {echo 'login_dn';} else {echo 'uid';} ?>" size="40" value="<?php echo $servers[$server_id]['login_dn']; ?>" /></td>
</tr> </tr>

View File

@ -9,27 +9,16 @@
* - server_id * - server_id
*/ */
require 'common.php'; require realpath( 'common.php' );
$server_id = $_GET['server_id']; $server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "No one is logged in to that server." ); have_auth_info( $server_id ) or pla_error( "No one is logged in to that server." );
$logged_in_dn = get_logged_in_dn( $server_id ); unset_cookie_login_dn( $server_id ) or pla_error( "Could not delete cookie!" );
$logged_in_pass = get_logged_in_pass( $server_id );
$anon_bind = $logged_in_dn == 'Anonymous' ? true : false;
$expire = time()-3600; include realpath( 'header.php' );
if( $anon_bind ) {
$res1 = setcookie( "pla_login_dn_$server_id", '0', $expire, dirname( $_SERVER['PHP_SELF'] ) );
$res2 = setcookie( "pla_pass_$server_id", '0', $expire, dirname( $_SERVER['PHP_SELF'] ) );
} else {
$res1 = setcookie( "pla_login_dn_$server_id", $logged_in_dn, $expire, dirname( $_SERVER['PHP_SELF'] ) );
$res2 = setcookie( "pla_pass_$server_id", $logged_in_pass, $expire, dirname( $_SERVER['PHP_SELF'] ) );
}
if( ! $res1 || ! $res2 )
pla_error( "Could not delete cookie!" );
?> ?>
<html> <html>

154
mass_delete.php Normal file
View File

@ -0,0 +1,154 @@
<?php
/*
* mass_delete.php
*
* Enables user to mass delete multiple entries using checkboxes.
*
* Variables that come in as GET vars:
* - mass_delete - an array of DNs to delete in this form:
* Array (
* [o=myorg,dc=example,dc=com] => on
* [cn=bob,dc=example,dc=com] => on
* etc.
* - server_id
*/
require realpath( 'common.php' );
$server_id = $_POST['server_id'];
check_server_id( $server_id ) or
pla_error( $lang['bad_server_id'] );
if( is_server_read_only( $server_id ) )
pla_error( "Deletes not allowed in read only mode." );
have_auth_info( $server_id ) or
pla_error( $lang['no_enough_login_info'] );
pla_ldap_connect( $server_id ) or
pla_error( $lang['could_not_connect'] );
$confirmed = isset( $_POST['confirmed'] ) ? true : false;
isset( $_POST['mass_delete'] ) or
pla_error( "Error in calling mass_delete.php. Missing mass_delete in POST vars." );
$mass_delete = $_POST['mass_delete'];
is_array( $mass_delete ) or
pla_error( "mass_delete variable is not an array in POST vars!" );
$ds = pla_ldap_connect( $server_id );
mass_delete_enabled( $server_id ) or
pla_error( "Mass deletion is not enabled. Please enable it in config.php before proceeding. " );
$server_name = $servers[ $server_id ][ 'name' ];
session_start();
require realpath( 'header.php' );
echo "<body>\n";
echo "<h3 class=\"title\">Mass Deleting</h3>\n";
if( $confirmed == true ) {
echo "<h3 class=\"subtitle\">Deletion progress on server '$server_name'</h3>\n";
echo "<blockquote>";
echo "<small>\n";
$successfully_delete_dns = array();
$failed_dns = array();
if( ! is_array( $mass_delete ) )
pla_error( "Malformed mass_delete array" );
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>You did not select any entries to delete.</center>";
die();
}
foreach( $mass_delete as $dn => $junk ) {
echo "Deleting <b>" . htmlspecialchars($dn) . "</b>... ";
flush();
if( true === preEntryDelete( $server_id, $dn ) ) {
$success = @ldap_delete( $ds, $dn );
if( $success ) {
postEntryDelete( $server_id, $dn );
echo "<span style=\"color:green\">success</span>.<br />\n";
$successfully_delete_dns[] = $dn;
}
else {
echo "<span style=\"color:red\">failed</span>.\n";
echo "(" . ldap_error( $ds ) . ")<br />\n";
$failed_dns[] = $dn;
}
}
flush();
}
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 "$failed_count of $total_count entries failed to be deleted.</span>\n";
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo "All entries deleted successfully!</span>\n";
}
// kill the deleted DNs from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( session_is_registered( 'tree' ) )
{
$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] );
}
$_SESSION['tree'] = $tree;
session_write_close();
?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php
}
} else {
$n = count( $mass_delete );
echo "<h3 class=\"subtitle\">Confirm mass delete of $n entries on server '$server_name'</h3>\n";
?>
<center>
Do you really want to delete
<?php echo ($n==1?'this':'these') . ' ' . $n . ' ' . ($n==1?'entry':'entries'); ?>?
<form action="mass_delete.php" method="post">
<input type="hidden" name="confirmed" value="true" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<table><tr><td>
<ol>
<?php foreach( $mass_delete as $dn => $foo ) {
echo "<input type=\"hidden\" name=\"mass_delete[" . htmlspecialchars($dn) . "]\" value=\"on\" />\n";
echo "<li>" . htmlspecialchars( $dn ) . "</li>\n";
} ?>
</ol>
</td></tr></table>
<input class="scary" type="submit" value=" Yes, delete! " /></center>
</form>
<?php
}
?>

View File

@ -5,7 +5,7 @@
* Adds an attribute/value pair to an object * Adds an attribute/value pair to an object
* *
* Variables that come in as POST vars: * Variables that come in as POST vars:
* - dn (rawurlencoded) * - dn
* - server_id * - server_id
* - attr * - attr
* - val * - val
@ -14,11 +14,12 @@
require 'common.php'; require 'common.php';
$dn = rawurldecode( $_POST['dn'] );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$attr = $_POST['attr']; $attr = $_POST['attr'];
$val = $_POST['val']; $val = isset( $_POST['val'] ) ? $_POST['val'] : false;;
$val = utf8_encode( $val ); $val = utf8_encode( $val );
$dn = $_POST['dn'] ;
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr ); $encoded_attr = rawurlencode( $attr );
$is_binary_val = isset( $_POST['binary'] ) ? true : false; $is_binary_val = isset( $_POST['binary'] ) ? true : false;
@ -47,10 +48,11 @@ if( $is_binary_val ) {
// chosen in config.php. // chosen in config.php.
if( 0 == strcasecmp( $attr, 'userpassword' ) ) if( 0 == strcasecmp( $attr, 'userpassword' ) )
{ {
if( $servers[$server_id]['default_hash'] != '' ) { if( isset( $servers[$server_id]['default_hash'] ) &&
$servers[$server_id]['default_hash'] != '' )
{
$enc_type = $servers[$server_id]['default_hash']; $enc_type = $servers[$server_id]['default_hash'];
$new_val = password_hash( $new_val, $enc_type ); $val = password_hash( $val, $enc_type );
$val = $new_val;
} }
} }
@ -60,6 +62,6 @@ $new_entry = array( $attr => $val );
$result = @ldap_mod_add( $ds, $dn, $new_entry ); $result = @ldap_mod_add( $ds, $dn, $new_entry );
if( $result ) if( $result )
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&updated_attr=$encoded_attr" ); header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
else else
pla_error( "Failed to add the attribute.", ldap_error( $ds ) , ldap_errno( $ds ) ); pla_error( "Failed to add the attribute.", ldap_error( $ds ) , ldap_errno( $ds ) );

View File

@ -9,10 +9,10 @@
* - server_id * - server_id
*/ */
require 'common.php'; require realpath( 'common.php' );
$encoded_dn = $_POST['dn']; $dn = $_POST['dn'];
$dn = rawurldecode( $encoded_dn ); $encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
if( ! $dn ) if( ! $dn )
@ -74,7 +74,7 @@ if( $del_result )
} else { } else {
pla_error( "Could not delete the object: " . htmlspecialchars( utf8_decode( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( "Could not delete the object: " . htmlspecialchars( $dn ), ldap_error( $ds ), ldap_errno( $ds ) );
} }
@ -90,11 +90,13 @@ function pla_rdelete( $server_id, $dn )
if( ! is_array( $children ) || count( $children ) == 0 ) { if( ! is_array( $children ) || count( $children ) == 0 ) {
echo "<nobr>Deleting " . htmlspecialchars( $dn ) . "..."; echo "<nobr>Deleting " . htmlspecialchars( $dn ) . "...";
flush(); flush();
if( ldap_delete( $ds, $dn ) ) { if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">Success</span></nobr><br />\n"; echo " <span style=\"color:green\">Success</span></nobr><br />\n";
return true; return true;
} else { } else {
pla_error( "Failed to delete dn: " . htmlspecialchars( utf8_decode( $dn ) ), pla_error( "Failed to delete dn: " . htmlspecialchars( $dn ),
ldap_error( $ds ), ldap_errno( $ds ) ); ldap_error( $ds ), ldap_errno( $ds ) );
} }
} else { } else {
@ -103,11 +105,13 @@ function pla_rdelete( $server_id, $dn )
} }
echo "<nobr>Deleting " . htmlspecialchars( $dn ) . "..."; echo "<nobr>Deleting " . htmlspecialchars( $dn ) . "...";
flush(); flush();
if( ldap_delete( $ds, $dn ) ) { if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">Success</span></nobr><br />\n"; echo " <span style=\"color:green\">Success</span></nobr><br />\n";
return true; return true;
} else { } else {
pla_errror( "Failed to delete dn: " . htmlspecialchars( utf8_decode( $dn ) ), pla_error( "Failed to delete dn: " . htmlspecialchars( ( $dn ) ),
ldap_error( $ds ), ldap_errno( $ds ) ); ldap_error( $ds ), ldap_errno( $ds ) );
} }
} }

View File

@ -28,15 +28,17 @@ $base_dn = $servers[ $server_id ][ 'base' ];
$tree_icons[$server_id][ $base_dn ] = get_icon( $server_id, $base_dn ); $tree_icons[$server_id][ $base_dn ] = get_icon( $server_id, $base_dn );
// get all the icons and container contents for all expanded entries // get all the icons and container contents for all expanded entries
if( $tree[$server_id] && is_array( $tree[$server_id] ) ) if( isset($tree[$server_id]) && is_array( $tree[$server_id] ) )
{ {
foreach( $tree[$server_id] as $dn => $children ) foreach( $tree[$server_id] as $dn => $children )
{ {
$tree[$server_id][$dn] = get_container_contents( $server_id, $dn ); $tree[$server_id][$dn] = get_container_contents( $server_id, $dn );
if( is_array( $tree[$server_id][$dn] ) ) {
foreach( $tree[$server_id][$dn] as $child_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( $server_id, $child_dn );
sort( $tree[ $server_id ][ $dn ] ); sort( $tree[ $server_id ][ $dn ] );
} }
}
} }
else else
{ {

View File

@ -10,12 +10,12 @@
* - new_rdn * - new_rdn
*/ */
require 'common.php'; require realpath( 'common.php' );
$dn = rawurldecode( $_POST['dn'] ); $dn = ( $_POST['dn'] );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$new_rdn = $_POST['new_rdn']; $new_rdn = ( $_POST['new_rdn'] );
$new_rdn = utf8_encode($new_rdn);
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( "You cannot perform updates while server is in read-only mode" );
@ -23,6 +23,11 @@ if( is_server_read_only( $server_id ) )
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( "You cannot perform updates while server is in read-only mode" );
$children = get_container_contents( $server_id, $dn, 1 );
if( count( $children ) > 0 )
pla_error( "You cannot rename an entry which has children entries
(eg, the rename operation is not allowed on non-leaf entries)" );
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -33,23 +38,48 @@ $old_rdn = pla_explode_dn( $dn );
$container = $old_rdn[ 1 ]; $container = $old_rdn[ 1 ];
for( $i=2; $i<count($old_rdn)-1; $i++ ) for( $i=2; $i<count($old_rdn)-1; $i++ )
$container .= ',' . $old_rdn[$i]; $container .= ',' . $old_rdn[$i];
if( ! $container ) if( ! $container )
pla_error( "Error: Container is null!" ); pla_error( "Container is null!" );
if( ! ldap_rename( $ds, $dn, $new_rdn, $container, false ) ) $new_dn = $new_rdn . ',' . $container;
if( $new_dn == $dn )
pla_error( "You did not change the RDN" );
$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 );
$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( "Error: Could not rename the object.", ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( "Could not rename the object.", ldap_error( $ds ), ldap_errno( $ds ), false );
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ds, $dn, $add_new_dn_attr );
} }
else 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 );
// update the session tree to reflect the name change // update the session tree to reflect the name change
session_start(); session_start();
if( session_is_registered( 'tree' ) ) if( session_is_registered( 'tree' ) )
{ {
$tree = $_SESSION['tree']; $tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons']; $tree_icons = $_SESSION['tree_icons'];
$new_dn = $new_rdn . ',' . $container;
$old_dn = $dn; $old_dn = $dn;
// gotta search the whole tree for the entry (must be a leaf node since RDN changes // gotta search the whole tree for the entry (must be a leaf node since RDN changes

View File

@ -76,10 +76,10 @@ if( $view == 'syntaxes' ) {
$counter=1; $counter=1;
$schema_syntaxes = get_schema_syntaxes( $server_id ); $schema_syntaxes = get_schema_syntaxes( $server_id );
if( ! $schema_syntaxes ) pla_error( $schema_error_str ); if( ! $schema_syntaxes ) pla_error( $schema_error_str );
foreach( $schema_syntaxes as $oid => $desc ) { foreach( $schema_syntaxes as $syntax ) {
$counter++; $counter++;
$oid = htmlspecialchars( $oid ); $oid = htmlspecialchars( $syntax->getOID() );
$desc = htmlspecialchars( $desc['description'] ); $desc = htmlspecialchars( $syntax->getDescription() );
if( $highlight_oid && $highlight_oid == $oid ) if( $highlight_oid && $highlight_oid == $oid )
echo "<tr class=\"highlight\">"; echo "<tr class=\"highlight\">";
else else
@ -98,18 +98,18 @@ if( $view == 'syntaxes' ) {
// do a reverse-mapping to add in which objectClasses each attributeType is used // do a reverse-mapping to add in which objectClasses each attributeType is used
foreach( $schema_object_classes as $object_class ) { foreach( $schema_object_classes as $object_class ) {
if( isset( $object_class['must_attrs'] ) && is_array( $object_class['must_attrs'] ) ) $must_attrs = $object_class->getMustAttrNames($schema_object_classes);
$must_attrs = $object_class['must_attrs']; $may_attrs = $object_class->getMayAttrNames($schema_object_classes);
else $oclass_attrs = array_unique( array_merge( $must_attrs, $may_attrs ) );
$must_attrs = array(); foreach( $oclass_attrs as $attr_name ) {
if( isset( $object_class['may_attrs'] ) && is_array( $object_class['may_attrs'] ) ) if( isset( $schema_attrs[ strtolower( $attr_name ) ] ) ) {
$may_attrs = $object_class['may_attrs']; $schema_attrs[ strtolower( $attr_name ) ]->addUsedInObjectClass(
else $object_class->getName() );
$may_attrs = array(); } else {
$attrs = array_unique( array_merge( $must_attrs, $may_attrs ) ); //echo "Warning, attr not set: $attr_name<br />";
foreach( $attrs as $attr_name ) }
if( isset( $schema_attrs[ strtolower( $attr_name ) ] ) ) }
$schema_attrs[ strtolower( $attr_name ) ]->addUsedInObjectClass( $object_class['name'] );
} }
//echo "<pre>"; //echo "<pre>";
@ -129,6 +129,7 @@ if( $view == 'syntaxes' ) {
<br /> <br />
<table class="schema_attr" width="100%"> <table class="schema_attr" width="100%">
<?php foreach( $schema_attrs as $attr ) { <?php foreach( $schema_attrs as $attr ) {
flush();
echo "<tr><th colspan=\"2\"><a name=\"" . strtolower( $attr->getName() ) . "\">"; echo "<tr><th colspan=\"2\"><a name=\"" . strtolower( $attr->getName() ) . "\">";
echo $attr->getName() . "</a></th></tr>\n\n"; echo $attr->getName() . "</a></th></tr>\n\n";
$counter = 0; $counter = 0;
@ -150,7 +151,12 @@ if( $view == 'syntaxes' ) {
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n"; echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>Inherits</td>\n"; echo "<td>Inherits</td>\n";
echo "<td>" . ( $attr->getSupAttribute()==null? '(none)' : $attr->getSupAttribute() ) . "</td>\n"; echo "<td>";
if( $attr->getSupAttribute()==null )
echo '(none)';
else
echo "<a href=\"#" . strtolower( $attr->getSupAttribute() ) . "\">" .
$attr->getSupAttribute() . "</a></td>\n";
echo "</tr>\n\n"; echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n"; echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
@ -238,16 +244,33 @@ if( $view == 'syntaxes' ) {
} elseif( $view == 'matching_rules' ) { } elseif( $view == 'matching_rules' ) {
echo "<center>" . $lang['the_following_matching'] . "</center><br />\n\n"; echo "<center>" . $lang['the_following_matching'] . "</center><br />\n\n";
echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n"; echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
echo "<tr><th>" . $lang['matching_rule_oid'] . "</th><th>" . $lang['desc'] . "</th></tr>\n"; echo "<tr><th>" . $lang['matching_rule_oid'] . "</th><th>" . $lang['name'] . "</th><th>Used by Attributes</th></tr>\n";
flush(); flush();
$counter=1; $counter=1;
$schema_matching_rules = get_schema_matching_rules( $server_id ); $schema_matching_rules = get_schema_matching_rules( $server_id );
if( ! $schema_matching_rules ) pla_error( $schema_error_str ); if( ! $schema_matching_rules ) pla_error( $schema_error_str );
foreach( $schema_matching_rules as $oid => $attr ) { foreach( $schema_matching_rules as $rule ) {
$counter++; $counter++;
$oid = htmlspecialchars( $oid ); $oid = htmlspecialchars( $rule->getOID() );
$desc = htmlspecialchars( $attr ); $desc = htmlspecialchars( $rule->getName() );
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\"><td>$oid</td><td>$attr</td></tr>\n";
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</small></td>";
echo "<td>$desc</small></td>";
echo "<td>";
if( count( $rule->getUsedByAttrs() ) == 0 ) {
echo "<center><small>(" . $lang['none'] . ")</small></center><br /><br />\n";
} else {
echo "<center><select style=\"width:150px; color:black; background-color: #eee\" size=\"3\">\n";
foreach( $rule->getUsedByAttrs() as $attr )
echo "<option>$attr</option>\n";
echo "</select></center>\n";
}
echo "</td></tr>\n";
} }
echo "</table>\n"; echo "</table>\n";
@ -260,32 +283,32 @@ if( $view == 'syntaxes' ) {
<small><?php echo $lang['jump_to_objectclass']; ?>:</small> <small><?php echo $lang['jump_to_objectclass']; ?>:</small>
<select name="oclass_jumper" <select name="oclass_jumper"
onChange="window.location.href='schema.php?server_id=<?php echo $server_id; ?>#'+this.value"> onChange="window.location.href='schema.php?server_id=<?php echo $server_id; ?>#'+this.value">
<?php foreach( $schema_oclasses as $oclass => $desc ) { ?> <?php foreach( $schema_oclasses as $name => $oclass ) { ?>
<option value="<?php echo $oclass; ?>"><?php echo $desc['name']; ?></option> <option value="<?php echo $name; ?>"><?php echo $oclass->getName(); ?></option>
<?php } ?> <?php } ?>
</select> </select>
<br /> <br />
<?php foreach( $schema_oclasses as $oclass => $attrs ) { ?> <?php foreach( $schema_oclasses as $name => $oclass ) { ?>
<!--<small>[<a name="<?php echo $oclass; ?>" href="#" title="Head on up to the top.">top</a>]</small>--> <!--<small>[<a name="<?php echo $name; ?>" href="#" title="Head on up to the top.">top</a>]</small>-->
<h4 class="oclass"><a name="<?php echo $oclass; ?>"><?php echo $attrs['name']; ?></a></h4> <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 $attrs['oid']; ?></b></h4> <h4 class="oclass_sub"><?php echo $lang['OID']; ?>: <b><?php echo $oclass->getOID(); ?></b></h4>
<?php if( $attrs['description'] ) { ?> <?php if( $oclass->getDescription() ) { ?>
<h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $attrs['description']; ?></b></h4> <h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $oclass->getDescription(); ?></b></h4>
<?php } ?> <?php } ?>
<h4 class="oclass_sub">Type: <b><?php echo $attrs['type']; ?></b></h4> <h4 class="oclass_sub">Type: <b><?php echo $oclass->getType(); ?></b></h4>
<?php if( isset( $attrs['is_obsolete'] ) && $attrs['is_obsolete'] == true ) { ?> <?php if( /*isset( $oclass->getIsObsolete() ) && */$oclass->getIsObsolete() == true ) { ?>
<h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4> <h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4>
<?php } ?> <?php } ?>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b><?php <h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b><?php
if( count( $attrs['sup'] ) == 0 ) if( count( $oclass->getSupClasses() ) == 0 )
echo "(" . $lang['none'] . ")"; echo "(" . $lang['none'] . ")";
else else
foreach( $attrs['sup'] as $i => $object_class ) { foreach( $oclass->getSupClasses() as $i => $object_class ) {
echo '<a title="' . $lang['jump_to_this_oclass'] . ' " echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
href="#' . strtolower( htmlspecialchars( $object_class ) ); href="#' . strtolower( htmlspecialchars( $object_class ) );
echo '">' . htmlspecialchars( $object_class ) . '</a>'; echo '">' . htmlspecialchars( $object_class ) . '</a>';
if( $i < count( $attrs['sup'] ) - 1 ) if( $i < count( $oclass->getSupClasses() ) - 1 )
echo ', '; echo ', ';
} }
?></b></h4> ?></b></h4>
@ -297,11 +320,20 @@ if( $view == 'syntaxes' ) {
</tr> </tr>
<tr> <tr>
<td> <td>
<?php if( count( $attrs['must_attrs'] ) > 0 ) { <?php if( count( $oclass->getMustAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">'; echo '<ul class="schema">';
foreach( $attrs['must_attrs'] as $attr ) foreach( $oclass->getMustAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"schema.php?server_id=$server_id&amp;view=attributes#" . echo "<li><a href=\"schema.php?server_id=$server_id&amp;view=attributes#";
strtolower( rawurlencode( $attr ) ). "\">" . htmlspecialchars($attr) . "</a></li>\n"; echo strtolower( rawurlencode( $attr->getName() ) ). "\">" . htmlspecialchars($attr->getName());
echo "</a>";
if( $attr->getSource() != $oclass->getName() )
{
echo "<br /><small>&nbsp;&nbsp; (inherited from ";
echo "<a href=\"#" . strtolower( $attr->getSource() ) . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
}
echo "</li>\n";
}
} else } else
echo "<center>(" . $lang['none'] . ")</center>\n"; echo "<center>(" . $lang['none'] . ")</center>\n";
?> ?>
@ -309,11 +341,20 @@ if( $view == 'syntaxes' ) {
</td> </td>
<td width="50%"> <td width="50%">
<?php <?php
if( count( $attrs['may_attrs'] ) > 0 ) { if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">'; echo '<ul class="schema">';
foreach( $attrs['may_attrs'] as $attr ) foreach( $oclass->getMayAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"schema.php?server_id=$server_id&amp;view=attributes#" . echo "<li><a href=\"schema.php?server_id=$server_id&amp;view=attributes#";
strtolower( rawurlencode( $attr ) ) . "\">" . htmlspecialchars($attr) . "</a></li>\n"; echo strtolower( rawurlencode( $attr->getName() ) ) . "\">" . htmlspecialchars($attr->getName() );
echo "</a>\n";
if( $attr->getSource() != $oclass->getName() )
{
echo "<br /><small>&nbsp;&nbsp; (inherited from ";
echo "<a href=\"#" . strtolower( $attr->getSource() ) . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
}
echo "</li>";
}
} }
else else
echo "<center>(" . $lang['none'] . ")</center>\n"; echo "<center>(" . $lang['none'] . ")</center>\n";

File diff suppressed because it is too large Load Diff

View File

@ -15,21 +15,18 @@
require 'common.php'; require 'common.php';
$server_id = $_GET['server_id'];
// try to get an available server_id if one is not provided // try to get an available server_id if one is not provided
if( ! isset( $server_id ) ) if( ! isset( $_GET['server_id'] ) )
{
$server_id = get_avail_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'] );
} }
else
{
check_server_id( $server_id ) or pla_error( "Bad server_id: " . var_dump( htmlspecialchars( $server_id ) ) );
}
$js_on_change_string =''; $js_on_change_string ='';
if( $_GET['form'] == 'advanced' ) { 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()"'; $js_on_change_string =
} 'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].getBaseDn()"';
// build the server drop-down html and JavaScript array (for base_dns) // build the server drop-down html and JavaScript array (for base_dns)
$server_menu_html = '<select name="server_id" '.$js_on_change_string.'>'; $server_menu_html = '<select name="server_id" '.$js_on_change_string.'>';
@ -50,9 +47,9 @@ foreach( $servers as $id => $server ) {
$server_menu_html .= '</select>'; $server_menu_html .= '</select>';
$filter = $_GET['filter']; $filter = isset( $_GET['filter'] ) ? $_GET['filter'] : null;
$filter = utf8_encode($filter); $filter = $filter;
$attr = $_GET['attribute']; $attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null;
// grab the base dn for the search // grab the base dn for the search
if( isset( $_GET['base_dn'] ) ) if( isset( $_GET['base_dn'] ) )
@ -62,13 +59,12 @@ elseif( '' != $servers[$server_id]['base'] )
else else
$base_dn = try_to_get_root_dn( $server_id ); $base_dn = try_to_get_root_dn( $server_id );
$criterion = $_GET['criterion']; $criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null;
$form = $_GET['form']; $form = isset( $_GET['form'] ) ? $_GET['form'] : null;
$scope = $_GET['scope'] ? $_GET['scope'] : 'sub'; $scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
//echo "<PRE>";print_r( $_GET );echo "</pre>";
?> include 'header.php'; ?>
<?php include 'header.php'; ?>
<body> <body>
<center> <center>
@ -90,13 +86,15 @@ $scope = $_GET['scope'] ? $_GET['scope'] : 'sub';
<?php <?php
if( $_GET['search'] ) if( isset( $_GET['search'] ) )
{ {
if( $form == 'advanced' ) { if( $form == 'advanced' ) {
$search_result_attributes = isset( $_GET['display_attrs'] ) ? $search_result_attributes = isset( $_GET['display_attrs'] ) ?
$_GET['display_attrs'] : rawurldecode( $_GET['display_attrs'] ) :
$search_result_attributes; ( isset( $search_result_attributes ) ?
$search_result_attributes :
"dn, cn" );
process_config(); process_config();
} }
@ -107,14 +105,16 @@ if( $_GET['search'] )
?> ?>
<center> <center>
<br /> <br />
You haven't logged into server <b><?php echo htmlspecialchars( $servers[$server_id]['name'] ); ?></b> <?php echo $lang['you_have_not_logged_into_server']; ?><br />
yet. Go to the <a href="<?php echo $login_url; ?>">login form</a> to do so. <a href="<?php echo $login_url; ?>"><?php echo $lang['click_to_go_to_login_form']; ?></a>.
</center> </center>
<?php <?php
exit; exit;
} }
pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server." ); $ds = pla_ldap_connect( $server_id );
if( ! $ds )
pla_error( $lang['could_not_connect'] );
if( $filter ) if( $filter )
{ {
@ -149,65 +149,164 @@ if( $_GET['search'] )
$filter = "($attr~=$filter)"; $filter = "($attr~=$filter)";
break; break;
default: default:
pla_error( "Unrecognized criteria option: " . htmlspecialchars( $criterion ) . pla_error( $lang['unrecognized_criteria_option'] .
"If you want to add your own criteria to the list. Be sure to edit " . htmlspecialchars( $criterion ) .
"search.php to handle them. Quitting." ); $lang['if_you_want_to_add_criteria'] );
} }
} }
echo "<center>Searching...</center>\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
// grab the time limit set in config.php
$size_limit = isset ( $search_result_size_limit ) && is_numeric( $search_result_size_limit ) ?
$search_result_size_limit :
0;
$time_start = utime(); $time_start = utime();
$results = pla_ldap_search( $server_id, $filter, $base_dn, $search_result_attributes, $scope ); if( $scope == 'base' )
$results = @ldap_read( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, LDAP_DEREF_ALWAYS );
elseif( $scope == 'one' )
$results = @ldap_list( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, LDAP_DEREF_ALWAYS );
else // scope == 'sub'
$results = @ldap_search( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, LDAP_DEREF_ALWAYS );
$errno = @ldap_errno( $ds );
$time_end = utime(); $time_end = utime();
$time_elapsed = round( $time_end - $time_start, 2 ); $time_elapsed = round( $time_end - $time_start, 2 );
$count = count( $results ); $count = @ldap_count_entries( $ds, $results );
?> ?>
<br /> <center>
<center>Found <b><?php echo $count; ?></b> <?php echo $count==1?'entry':'entries'; ?>. <?php echo $lang['entries_found'] . ' ' . number_format( $count ) ?>
(in <?php echo $time_elapsed; ?> seconds).
<?php
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><small>Notice, search size limit exceeded.</small><br />\n";
}
if( $size_limit > 0 && $count > $size_limit ) {
echo "<br /><small>Showing first <b>$size_limit</b> results.</small><br />\n";
}
?>
<?php if( $form == 'simple' ) { ?> <?php if( $form == 'simple' ) { ?>
<center><small>Filter performed: <?php echo htmlspecialchars( $filter ); ?></small></center> <center><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></center>
<?php } ?> <?php } ?>
</center> </center>
<?php flush(); ?> <?php flush(); ?>
<?php if( $results ) foreach( $results as $dn => $attrs ) { ?> <?php
<?php $encoded_dn = rawurlencode( $dn ); ?> if( ! $results ) {
<?php $rdn = utf8_decode( get_rdn( $dn ) ); ?> pla_error( 'Encountered an error while performing search.', ldap_error( $ds ), ldap_errno( $ds ) );
<div class="search_result"> }
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>">
<?php echo htmlspecialchars($rdn); ?>
</a>
</div>
<table class="attrs">
<?php foreach( $attrs as $attr => $values ) { ?>
$friendly_attrs = process_friendly_attr_table();
$entry_id = ldap_first_entry( $ds, $results );
// Iterate over each entry
$i = 0;
while( $entry_id ) {
$i++;
// Only display the first $size_limit entries
if( $size_limit != 0 && $i > $size_limit ) {
break;
}
$dn = ldap_get_dn( $ds, $entry_id );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
?>
<div class="search_result">
<table>
<tr> <tr>
<td class="attr" valign="top"><?php echo htmlspecialchars( $attr ); ?></td> <td><img src="images/<?php echo get_icon_use_cache( $server_id, $dn ); ?>" /></td>
<td class="val"> <td><a href="edit.php?server_id=<?php
<?php if( is_array( $values ) ) { ?> echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo htmlspecialchars($rdn); ?></a>
<?php foreach( $values as $value ) { ?>
<?php echo str_replace( ' ', '&nbsp;',
htmlspecialchars( utf8_decode( $value ) ) ); ?><br />
<?php } ?>
<?php } else { ?>
<?php echo str_replace( ' ', '&nbsp;',
htmlspecialchars( utf8_decode( $values ) ) ); ?>
<?php } ?>
</td> </td>
</tr> </tr>
</table>
</div>
<table class="attrs">
<?php
$attrs = ldap_get_attributes( $ds, $entry_id );
$attr = ldap_first_attribute( $ds, $entry_id, $attrs );
// 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";
// Iterate over each attribute for this entry
while( $attr ) {
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'] );
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
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 )
?>
<?php } ?>
</table> </table>
<?php } ?> <?php
$entry_id = ldap_next_entry( $ds, $entry_id );
// flush every 5th entry (sppeds things up a bit)
if( 0 == $i % 5 )
flush();
} // end while( $entry_id )
?>
<br /><br /> <br /><br />
<div class="search_result"><center><span style="font-weight:normal;font-size:75%;">Search happily performed by phpLDAPadmin in <div class="search_result"><center><span style="font-weight:normal;font-size:75%;">
<b><?php echo $time_elapsed; ?></b> seconds.</small></center></div> <?php echo $lang['search_duration']; ?>
<b><?php echo $time_elapsed; ?></b> <?php echo $lang['seconds'];?>.</small></center></div>
<?php <?php
} }
} }
@ -217,14 +316,3 @@ if( $_GET['search'] )
</body> </body>
</html> </html>
<?php
function utime ()
{
$time = explode( " ", microtime());
$usec = (double)$time[0];
$sec = (double)$time[1];
return $sec + $usec;
}
?>

View File

@ -19,41 +19,49 @@ for($i=0;$i<$num_server;$i++){
<table> <table>
<tr> <tr>
<td><small>Server</small></td> <td><small><?php echo $lang['server']; ?></small></td>
<td><?php echo $server_menu_html; ?></td> <td><?php echo $server_menu_html; ?></td>
</tr> </tr>
<tr> <tr>
<td><small>Base <acronym title="Distinguished Name">DN</acronym></small></td> <td><small><?php echo $lang['base_dn']; ?></small></td>
<td><input type="text" name="base_dn" value="<?php echo htmlspecialchars($base_dn); ?>" size="30" id="base_dn" /></td> <td><input type="text" name="base_dn" value="<?php echo htmlspecialchars($base_dn); ?>" size="30" id="base_dn" /></td>
</tr> </tr>
<tr> <tr>
<td><small><acronym title="The scope in which to search">Search Scope</acronym></small></td> <td><small><acronym title="<?php echo $lang['scope_in_which_to_search']; ?>"><?php echo $lang['search_scope']; ?></acronym></small></td>
<td> <td>
<select name="scope"> <select name="scope">
<option<?php echo $scope=='sub'?' selected':''; ?> value="sub">Sub (entire subtree)</option> <option<?php echo $scope=='sub'?' selected':''; ?> value="sub">
<option<?php echo $scope=='one'?' selected':''; ?> value="one">One (one level beneath base)</option> <?php echo $lang['scope_sub']; ?>
<option<?php echo $scope=='base'?' selected':''; ?> value="base">Base (base dn only)</option> </option>
<option<?php echo $scope=='one'?' selected':''; ?> value="one">
<?php echo $lang['scope_one']; ?>
</option>
<option<?php echo $scope=='base'?' selected':''; ?> value="base">
<?php echo $lang['scope_base']; ?>
</option>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td><small><acronym title="Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))"> <td><small><acronym title="<?php echo $lang['standard_ldap_search_filter']; ?>">
Search Filter</acronym></small></td> <?php echo $lang['search_filter']; ?></acronym></small></td>
<td><input type="text" name="filter" size="30" value="<?php echo $filter ? htmlspecialchars(utf8_decode($filter)) : 'objectClass=*'; ?>" /></td> <td><input type="text" name="filter" size="30" value="<?php echo $filter ? htmlspecialchars($filter) : 'objectClass=*'; ?>" /></td>
</tr> </tr>
<tr> <tr>
<td><small><acronym title="A list of attributes to display in the results (comma-separated)"> <td><small><acronym title="<?php echo $lang['list_of_attrs_to_display_in_results']; ?>">
Show Attributes</acronym></small></td> <?php echo $lang['show_attributes']; ?></acronym></small></td>
<td><input type="text" name="display_attrs" size="30" value="<?php <td><input type="text" name="display_attrs" size="30" value="<?php
echo isset( $_GET['display_attrs'] ) ? $_GET['display_attrs'] : $search_result_attributes; ?>" /> echo isset( $_GET['display_attrs'] ) ?
htmlspecialchars( $_GET['display_attrs'] ) :
$search_result_attributes; ?>" />
<tr> <tr>
<td colspan="2"><br /><center><input type="submit" value="Search" /></center></td> <td colspan="2"><br /><center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center></td>
</tr> </tr>
</table> </table>
</form> </form>

View File

@ -10,9 +10,9 @@
<br /> <br />
</center> </center>
<small>Server</small><br /> <?php echo $server_menu_html; ?><br /> <small><?php echo $lang['server']; ?></small><br /> <?php echo $server_menu_html; ?><br />
<br /> <br />
<small>Search for entries whose:</small><br /> <small><?php echo $lang['search_for_entries_whose']; ?></small><br />
<nobr> <nobr>
<select name="attribute"> <select name="attribute">
@ -30,15 +30,15 @@
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" ); $search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
foreach( $search_criteria_options as $c ) { ?> foreach( $search_criteria_options as $c ) { ?>
<option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected':''; ?>> <option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected':''; ?>>
<?php echo htmlspecialchars($c); ?> <?php echo htmlspecialchars( $lang[$c] ); ?>
</option> </option>
<?php } ?> <?php } ?>
</select> </select>
<input type="text" name="filter" size="20" value="<?php echo htmlspecialchars(utf8_decode($filter)); ?>" /><br /> <input type="text" name="filter" size="20" value="<?php echo htmlspecialchars($filter); ?>" /><br />
<br /> <br />
<center><input type="submit" value="Search" /></center> <center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</nobr> </nobr>
</td> </td>
</table> </table>

View File

@ -10,26 +10,48 @@
require 'common.php'; 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',
'+' );
$server_id = $_GET['server_id']; $server_id = $_GET['server_id'];
$server_name = $servers[$server_id]['name']; $server_name = $servers[$server_id]['name'];
$ds = pla_ldap_connect( $server_id ) or pla_error( "Could not connect or authenticate to LDAP server" ); $ds = pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
$r = @ldap_read( $ds, '', 'objectClass=*', array( '+' ) ); $r = @ldap_read( $ds, '', 'objectClass=*', $root_dse_attributes );
if( ! $r ) if( ! $r )
pla_error( "Could not fetch any information from the server" ); pla_error( $lang['could_not_fetch_server_info'] );
$entry = @ldap_first_entry( $ds, $r ); $entry = @ldap_first_entry( $ds, $r );
$attrs = @ldap_get_attributes( $ds, $entry ); $attrs = @ldap_get_attributes( $ds, $entry );
$count = @ldap_count_entries( $ds, $r ); $count = @ldap_count_entries( $ds, $r );
//echo "<pre>"; print_r( $attrs ); echo "</pre>";
include 'header.php'; include 'header.php';
?> ?>
<h3 class="title">Server info for <?php echo htmlspecialchars( $server_name ); ?></h3> <h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars( $server_name ); ?></h3>
<h3 class="subtitle">Server reports the following information about itself</h3> <h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3>
<?php if( $count == 0 || $attrs['count'] == 0 ) { ?> <?php if( $count == 0 || $attrs['count'] == 0 ) { ?>
<br /><br /><center>This server has nothing to report.</center> <br /><br /><center><?php echo $lang['nothing_to_report']; ?></center>
<?php exit; ?> <?php exit; ?>
<?php } ?> <?php } ?>
@ -38,11 +60,25 @@ include 'header.php';
<?php <?php
for( $i=0; $i<$attrs['count']; $i++ ) { for( $i=0; $i<$attrs['count']; $i++ ) {
$attr = $attrs[$i]; $attr = $attrs[$i];
echo "<tr class=\"row" . ($i%2!=0?"1":"2") . "\"><td class=\"attr\"><b>"; $schema_href = "schema.php?server_id=$server_id&amp;view=attributes#" . strtolower($attr);
echo htmlspecialchars($attr) . "</b></td><td class=\"val\">"; ?>
for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ )
echo htmlspecialchars( $attrs[ $attr ][ $j ] ) . "<br />\n"; <tr class="row<?php echo ($i%2!=0?"1":"2"); ?>">
<td class="attr">
<b>
<a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars( $attr ); ?>
</b>
</td>
<td class="val">
<?php for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ )
echo htmlspecialchars( $attrs[ $attr ][ $j ] ) . "<br />\n"; ?>
</td>
</tr>
<?php
} }
?> ?>
</table> </table>

View File

@ -39,11 +39,24 @@ table.schema_attr tr.highlight{
font-weight: Bold; font-weight: Bold;
} }
table.notice tr td {
font-size: 9pt;
padding: 2px;
margin: 0px;
background-color: #eee;
}
table.error { table.error {
width: 500px; width: 500px;
border: 2px solid black; border: 2px solid black;
} }
table.error tr td table.bug tr td{
padding: 6px;
margin: 0px;
background-color: #eee;
}
table.error tr td { table.error tr td {
vertical-align: top; vertical-align: top;
text-align: left; text-align: left;
@ -257,9 +270,20 @@ table.edit_dn tr td.heading {
font-weight: bold; font-weight: bold;
} }
table.edit_dn tr td.attr a {
text-decoration: none;
color: black;
}
table.edit_dn tr td.attr a:hover {
text-decoration: underline;
color: #016;
}
table.edit_dn tr td.val { table.edit_dn tr td.val {
text-align: right; text-align: right;
vertical-align: center; vertical-align: center;
padding-bottom: 15px;
} }
/* When an attr is updated, it is displayed in light blue to indicate such */ /* When an attr is updated, it is displayed in light blue to indicate such */
@ -331,10 +355,22 @@ h4.oclass_sub {
ul.schema { ul.schema {
margin: 5px; margin: 5px;
margin-left: 0px;
padding-left: 20px;
} }
ul.schema li { ul.schema li {
margin-left: 10px; margin-left: 0px;
padding-left: 0px;
}
ul.schema li small {
font-size: 75%;
color: #777;
}
ul.schema li small a {
color: #77c;
} }
ul.current_values { ul.current_values {
@ -427,3 +463,8 @@ table.create td.heading {
vertical-align: top; vertical-align: top;
padding: 10px; padding: 10px;
} }
div.add_value {
font-size: 10pt;
margin: 0px;
}

View File

@ -25,7 +25,7 @@ if( $step == 1 )
<form action="creation_template.php" method="post" name="creation_form"> <form action="creation_template.php" method="post" name="creation_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<table class="create"> <table class="create">
<tr> <tr>
@ -41,14 +41,27 @@ if( $step == 1 )
<td class="heading">ObjectClass(es):</td> <td class="heading">ObjectClass(es):</td>
<td> <td>
<select name="object_classes[]" multiple size="15"> <select name="object_classes[]" multiple size="15">
<?php foreach( $oclasses as $oclass => $attrs ) { ?> <?php foreach( $oclasses as $name => $oclass ) { ?>
<option value="<?php echo htmlspecialchars($oclass); ?>"> <option value="<?php echo htmlspecialchars($name); ?>">
<?php echo htmlspecialchars($attrs['name']); ?> <?php echo htmlspecialchars($oclass->getName()); ?>
</option> </option>
<?php } ?> <?php } ?>
</select> </select>
</td> </td>
</tr> </tr>
<?php if( show_hints() ) { ?>
<tr>
<td></td>
<td>
<small>
<img src="images/light.png" />Hint: You must choose at least one <b>structural</b> objectClass
</small>
<br />
</td>
</tr>
<?php } ?>
<tr> <tr>
<td></td> <td></td>
<td><input type="submit" value="Proceed >>" /></td> <td><input type="submit" value="Proceed >>" /></td>
@ -74,14 +87,16 @@ if( $step == 2 )
// build a list of required attributes: // build a list of required attributes:
$dn = $rdn . ',' . $container; $dn = $rdn . ',' . $container;
//$attrs = get_schema_attributes( $server_id );
$schema_oclasses = get_schema_objectclasses( $server_id ); $schema_oclasses = get_schema_objectclasses( $server_id );
$required_attrs = array(); $required_attrs = array();
$all_attrs = array(); $all_attrs = array();
foreach( $oclasses as $oclass ) { foreach( $oclasses as $oclass_name ) {
$required_attrs = array_merge( $required_attrs, $schema_oclasses[strtolower($oclass)]['must_attrs'] ); if( isset( $schema_oclasses[ strtolower( $oclass_name ) ] ) )
$all_attrs = array_merge( $all_attrs, $schema_oclasses[strtolower($oclass)]['must_attrs'], $oclass = $schema_oclasses[ strtolower( $oclass_name ) ];
$schema_oclasses[strtolower($oclass)]['may_attrs'] ); else
continue;
$required_attrs = array_merge( $required_attrs, $oclass->getMustAttrNames( $oclasses ) );
$all_attrs = array_merge( $oclass->getMustAttrNames(), $oclass->getMayAttrNames( $oclasses ) );
} }
$required_attrs = array_unique( $required_attrs ); $required_attrs = array_unique( $required_attrs );
@ -111,7 +126,7 @@ if( $step == 2 )
$attr_select_html .= "<option value=\"$a\">$attr_display</option>\n"; $attr_select_html .= "<option value=\"$a\">$attr_display</option>\n";
} }
$binary_select_html = ""; $binary_attr_select_html = "";
if( count( $binary_attrs ) > 0 ) { if( count( $binary_attrs ) > 0 ) {
foreach( $binary_attrs as $a ) { foreach( $binary_attrs as $a ) {
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) { if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
@ -200,8 +215,8 @@ if( $step == 2 )
<?php if( count( $binary_attrs ) > 0 ) { ?> <?php if( count( $binary_attrs ) > 0 ) { ?>
<tr><th colspan="2">Optional Binary Attributes</th></tr> <tr><th colspan="2">Optional Binary Attributes</th></tr>
<?php for( $k=$i; $k<$i+count($binary_attrs); $k++ ) { $attr = $binary_attrs[$k]; ?> <?php for( $k=$i; $k<$i+count($binary_attrs); $k++ ) { $attr = $binary_attrs[$k-$i]; ?>
<?php if( $i % 2 == 0 ) { ?> <?php if( $k % 2 == 0 ) { ?>
<tr class="row1"> <tr class="row1">
<?php } else { ?> <?php } else { ?>
<tr class="row2"> <tr class="row2">

View File

@ -10,9 +10,7 @@ $container = $_POST['container'];
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
// Unique to this template // Unique to this template
$step = $_POST['step']; $step = isset( $_POST['step'] ) ? $_POST['step'] : 1;
if( ! $step )
$step = 1;
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -56,7 +54,7 @@ function autoFillCommonName( form )
<form action="creation_template.php" method="post" id="address_form" name="address_form"> <form action="creation_template.php" method="post" id="address_form" name="address_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">

View File

@ -7,9 +7,9 @@ $container = $_POST['container'];
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
// Unique to this template // Unique to this template
$step = $_POST['step']; $step = 1;
if( ! $step ) if( isset($_POST['step']) )
$step = 1; $step = $_POST['step'];
check_server_id( $server_id ) or die( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or die( "Bad server_id: " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or die( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or die( "Not enough information to login to server. Please check your configuration." );
@ -23,7 +23,7 @@ if( ! $step )
<form action="creation_template.php" method="post" name="dns_form"> <form action="creation_template.php" method="post" name="dns_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">

View File

@ -8,9 +8,9 @@ $server_id = $_POST['server_id'];
// Unique to this template // Unique to this template
$step = $_POST['step']; $step = 1;
if( ! $step ) if( isset($_POST['step']) )
$step = 1; $step = $_POST['step'];
// A little config for this template // A little config for this template
$default_gid_number = 30000; $default_gid_number = 30000;
@ -30,7 +30,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
<form action="creation_template.php" method="post" name="machine_form"> <form action="creation_template.php" method="post" name="machine_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">

View File

@ -7,9 +7,9 @@ $container = $_POST['container'];
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
// Unique to this template // Unique to this template
$step = $_POST['step']; $step = 1;
if( ! $step ) if( isset($_POST['step']) )
$step = 1; $step = $_POST['step'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -23,7 +23,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
<form action="creation_template.php" method="post" name="ou_form"> <form action="creation_template.php" method="post" name="ou_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">

View File

@ -9,9 +9,9 @@ $server_id = $_POST['server_id'];
// Change this to suit your needs // Change this to suit your needs
$default_number_of_users = 10; $default_number_of_users = 10;
$step = $_POST['step']; $step = 1;
if( ! $step ) if( isset($_POST['step']) )
$step = 1; $step = $_POST['step'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -88,7 +88,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
<!-- The array of attributes/values --> <!-- The array of attributes/values -->
<input type="hidden" name="attrs[]" value="cn" /> <input type="hidden" name="attrs[]" value="cn" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($posix_group_name);?>" /> <input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($group_name);?>" />
<input type="hidden" name="attrs[]" value="gidNumber" /> <input type="hidden" name="attrs[]" value="gidNumber" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($gid_number);?>" /> <input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($gid_number);?>" />
<?php foreach( $member_uids as $uid ) { ?> <?php foreach( $member_uids as $uid ) { ?>

View File

@ -10,10 +10,9 @@
// Common to all templates // Common to all templates
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
// Unique to this template
$step = $_POST['step'];
if( ! $step )
$step = 1; $step = 1;
if( isset($_POST['step']) )
$step = $_POST['step'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -68,7 +67,7 @@
<form action="creation_template.php" method="post" id="user_form" name="user_form"> <form action="creation_template.php" method="post" id="user_form" name="user_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">
@ -174,17 +173,17 @@
<?php } elseif( $step == 2 ) { <?php } elseif( $step == 2 ) {
$user_name = trim( stripslashes( $_POST['user_name'] ) ); $user_name = trim( $_POST['user_name'] );
$first_name = trim( stripslashes( $_POST['first_name'] ) ); $first_name = trim( $_POST['first_name'] );
$last_name = trim( stripslashes( $_POST['last_name'] ) ); $last_name = trim( $_POST['last_name'] );
$password1 = stripslashes( $_POST['user_pass1'] ); $password1 = $_POST['user_pass1'];
$password2 = stripslashes( $_POST['user_pass2'] ); $password2 = $_POST['user_pass2'];
$encryption = stripslashes( $_POST['encryption'] ); $encryption = $_POST['encryption'];
$login_shell = trim( stripslashes( $_POST['login_shell'] ) ); $login_shell = trim( $_POST['login_shell'] );
$uid_number = trim( stripslashes( $_POST['uid_number'] ) ); $uid_number = trim( $_POST['uid_number'] );
$gid_number = trim( stripslashes( $_POST['group'] ) ); $gid_number = trim( $_POST['group'] );
$container = trim( stripslashes( $_POST['container'] ) ); $container = trim( $_POST['container'] );
$home_dir = trim( stripslashes( $_POST['home_dir'] ) ); $home_dir = trim( $_POST['home_dir'] );
$samba_sid = trim( stripslashes( $_POST['samba_sid'] ) ); $samba_sid = trim( stripslashes( $_POST['samba_sid'] ) );

View File

@ -2,17 +2,37 @@
require 'common.php'; require 'common.php';
/*
* TODO Add a check: If the server is configured to use auto_uid_numbers AND the
* mechanism is uidpool, update the uidpool when creating the entry. This may
* need to be added to create.php (scary). Perahsp this could be a candidate
* for the post-update event handler.
*/
// customize this to your needs // customize this to your needs
$default_container = "ou=People"; $default_container = "ou=People";
// Common to all templates // Common to all templates
$container = $_POST['container']; $container = isset( $_POST['container'] ) ? $_POST['container'] : null;
$server_id = $_POST['server_id']; $server_id = isset( $_POST['server_id'] ) ? $_POST['server_id'] : false;
// Modify this array and add/remove the corresponding attributes below
$object_classes = array( 'top', 'person', 'posixAccount', 'shadowAccount' );
// A list of default attributes/values to create with this new user
$default_attributes = array(
'shadowMin' => -1,
'shadowMax' => 999999,
'shadowWarning' => 7,
'shadowInactive' => -1,
'shadowExpire' => -1,
'shadowFlag' => 0
);
// Unique to this template // Unique to this template
$step = $_POST['step']; $step = 1;
if( ! $step ) if( isset($_POST['step']) )
$step = 1; $step = $_POST['step'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); 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." ); have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
@ -46,7 +66,7 @@ function autoFillUserName( form )
} }
/* /*
* Pipulates the home directory field based on the username provided * Populates the home directory field based on the username provided
*/ */
function autoFillHomeDir( form ) function autoFillHomeDir( form )
{ {
@ -65,14 +85,20 @@ function autoFillHomeDir( form )
--> -->
</script> </script>
<center><h2>New User Account</h2></center> <center>
<h2 style="margin:0px">New User Account</h2>
<?php if( show_hints() ) { ?>
<small><img src="images/light.png" />Hint: To customize this template, edit the file templates/creation/new_user_template.php<br />
<?php } ?>
<br />
</center>
<?php if( $step == 1 ) { ?> <?php if( $step == 1 ) { ?>
<form action="creation_template.php" method="post" id="user_form" name="user_form"> <form action="creation_template.php" method="post" id="user_form" name="user_form">
<input type="hidden" name="step" value="2" /> <input type="hidden" name="step" value="2" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="template" value="<?php echo $_POST['template']; ?>" /> <input type="hidden" name="template" value="<?php echo htmlspecialchars( $_POST['template'] ); ?>" />
<center> <center>
<table class="confirm"> <table class="confirm">
@ -110,8 +136,10 @@ function autoFillHomeDir( form )
<td><select name="encryption"> <td><select name="encryption">
<option>clear</option> <option>clear</option>
<option>md5</option> <option>md5</option>
<option>smd5</option>
<option>crypt</option> <option>crypt</option>
<option>sha</option> <option>sha</option>
<option>ssha</option>
</select></td> </select></td>
</tr> </tr>
<tr class="spacer"><td colspan="3"></tr> <tr class="spacer"><td colspan="3"></tr>
@ -141,10 +169,18 @@ function autoFillHomeDir( form )
<?php draw_chooser_link( 'user_form.container' ); ?></td> <?php draw_chooser_link( 'user_form.container' ); ?></td>
</td> </td>
</tr> </tr>
<?php
// determining the next available uidNumber may take a moment.
// give them something to look at in the mean time
flush();
?>
<tr> <tr>
<td></td> <td></td>
<td class="heading">UID Number:</td> <td class="heading">UID Number:</td>
<td><input type="text" name="uid_number" value="" /></td> <?php $next_uid_number = get_next_uid_number( $server_id ); ?>
<td><input type="text" name="uid_number" value="<?php echo $next_uid_number ?>" />
<?php if( false !== $next_uid_number ) echo "<small>(automatically determined)</small>"; ?>
</td>
</tr> </tr>
<tr> <tr>
<td></td> <td></td>
@ -162,24 +198,24 @@ function autoFillHomeDir( form )
<td><input type="text" name="home_dir" value="/home/" id="home_dir" /></td> <td><input type="text" name="home_dir" value="/home/" id="home_dir" /></td>
</tr> </tr>
<tr> <tr>
<td colspan="3"><center><br /><input type="submit" value="Proceed &gt;&gt;" /></td> <td colspan="3"><center><br /><input type="submit" value="Proceed" /></td>
</tr> </tr>
</table> </table>
</center> </center>
<?php } elseif( $step == 2 ) { <?php } elseif( $step == 2 ) {
$user_name = trim( stripslashes( $_POST['user_name'] ) ); $user_name = trim( $_POST['user_name'] );
$first_name = trim( stripslashes( $_POST['first_name'] ) ); $first_name = trim( $_POST['first_name'] );
$last_name = trim( stripslashes( $_POST['last_name'] ) ); $last_name = trim( $_POST['last_name'] );
$password1 = stripslashes( $_POST['user_pass1'] ); $password1 = $_POST['user_pass1'];
$password2 = stripslashes( $_POST['user_pass2'] ); $password2 = $_POST['user_pass2'];
$encryption = stripslashes( $_POST['encryption'] ); $encryption = $_POST['encryption'];
$login_shell = trim( stripslashes( $_POST['login_shell'] ) ); $login_shell = trim( $_POST['login_shell'] );
$uid_number = trim( stripslashes( $_POST['uid_number'] ) ); $uid_number = trim( $_POST['uid_number'] );
$gid_number = trim( stripslashes( $_POST['group'] ) ); $gid_number = trim( $_POST['group'] );
$container = trim( stripslashes( $_POST['container'] ) ); $container = trim( $_POST['container'] );
$home_dir = trim( stripslashes( $_POST['home_dir'] ) ); $home_dir = trim( $_POST['home_dir'] );
/* Critical assertions */ /* Critical assertions */
$password1 == $password2 or $password1 == $password2 or
@ -202,7 +238,7 @@ function autoFillHomeDir( form )
<input type="hidden" name="new_dn" value="<?php echo htmlspecialchars( 'uid=' . $user_name . ',' . $container ); ?>" /> <input type="hidden" name="new_dn" value="<?php echo htmlspecialchars( 'uid=' . $user_name . ',' . $container ); ?>" />
<!-- ObjectClasses --> <!-- ObjectClasses -->
<?php $object_classes = rawurlencode( serialize( array( 'top', 'person', 'posixAccount' ) ) ); ?> <?php $object_classes = rawurlencode( serialize( $object_classes ) ); ?>
<input type="hidden" name="object_classes" value="<?php echo $object_classes; ?>" /> <input type="hidden" name="object_classes" value="<?php echo $object_classes; ?>" />
@ -224,6 +260,14 @@ function autoFillHomeDir( form )
<input type="hidden" name="attrs[]" value="homeDirectory" /> <input type="hidden" name="attrs[]" value="homeDirectory" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($home_dir);?>" /> <input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($home_dir);?>" />
<?php foreach( $default_attributes as $default_attr => $default_val ) { ?>
<!-- default attribute, auto-added based on $default_attributes array specified in new_user_template.php -->
<input type="hidden" name="attrs[]" value="<?php echo htmlspecialchars($default_attr); ?>" />
<input type="hidden" name="vals[]" value="<?php echo htmlspecialchars($default_val);?>" />
<?php } ?>
<center> <center>
<table class="confirm"> <table class="confirm">
<tr class="even"><td class="heading">User name:</td><td><b><?php echo htmlspecialchars( $user_name ); ?></b></td></tr> <tr class="even"><td class="heading">User name:</td><td><b><?php echo htmlspecialchars( $user_name ); ?></b></td></tr>

View File

@ -0,0 +1,677 @@
<?php
/*
* edit.php
* Displays the specified dn from the specified server for editing
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
* - modified_attrs (optional) an array of attributes to highlight as
* they were changed by the last operation
*/
/** If an entry has more children than this, stop searching and display this amount with a '+' */
$max_children = 100;
$dn= $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$modified_attrs = isset( $_GET['modified_attrs'] ) ? $_GET['modified_attrs'] : false;
$server_id = $_GET['server_id'];
$show_internal_attrs = isset( $_GET['show_internal_attrs'] ) ? true : false;
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
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." );
pla_ldap_connect( $server_id ) or pla_error( "Coult not connect to LDAP server." );
$friendly_attrs = process_friendly_attr_table();
$attrs = get_object_attrs( $server_id, $dn );
pla_ldap_connect( $server_id ) or pla_error( "Could not connect to LDAP server" );
$system_attrs = get_entry_system_attrs( $server_id, $dn );
if( ! $attrs )
pla_error( "No such dn, " . htmlspecialchars( ( $dn ) ) );
$server_name = $servers[$server_id]['name'];
// build a list of attributes available for this object based on its objectClasses
$oclasses = get_object_attr( $server_id, $dn, 'objectClass' );
if( ! is_array( $oclasses ) )
$oclasses = array( $oclasses );
$avail_attrs = array();
if( ! is_server_read_only( $server_id ) ) {
$schema_oclasses = get_schema_objectclasses( $server_id, $dn );
foreach( $oclasses as $oclass ) {
$schema_oclass = get_schema_objectclass( $server_id, $oclass, $dn );
if( $schema_oclass && 'objectclass' == get_class( $schema_oclass ) )
$avail_attrs = array_merge( $schema_oclass->getMustAttrNames( $schema_oclasses ),
$schema_oclass->getMayAttrNames( $schema_oclasses ),
$avail_attrs );
}
$avail_attrs = array_unique( $avail_attrs );
$avail_attrs = array_filter( $avail_attrs, "not_an_attr" );
sort( $avail_attrs );
$avail_binary_attrs = array();
foreach( $avail_attrs as $i => $attr ) {
if( is_attr_binary( $server_id, $attr ) ) {
$avail_binary_attrs[] = $attr;
unset( $avail_attrs[ $i ] );
}
}
}
include 'header.php'; ?>
<body>
<h3 class="title"><?php echo htmlspecialchars( ( $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 htmlspecialchars( ( $dn ) ); ?></b></h3>
<table class="edit_dn_menu">
<tr>
<?php $time = gettimeofday(); $random_junk = md5( strtotime( 'now' ) . $time['usec'] ); ?>
<td><img src="images/refresh.png" /></td>
<td><a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>&amp;random=<?php
echo $random_junk; ?>"
title="<?php echo $lang['refresh_this_entry']; ?>"><?php echo $lang['refresh_entry']; ?></a></td>
</tr>
<?php if( ! is_server_read_only( $server_id ) && 0 != strcasecmp( $dn, $servers[$server_id]['base'] ) ) { ?>
<?php /* We won't allow them to delete the base dn of the server */ ?>
<tr>
<td><img src="images/trash.png" /></td>
<td><a href="delete_form.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"
title="<?php echo $lang['delete_this_entry_tooltip']; ?>"><?php echo $lang['delete_this_entry']; ?></a></td>
</tr>
<?php } ?>
<?php if( show_hints() && ! is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<td><?php echo $lang['delete_hint']; ?></td>
</tr>
<?php } ?>
<tr>
<td><img src="images/cut.png" /></td>
<td><a href="copy_form.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn?>"
title="<?php echo $lang['copy_this_entry_tooltip']; ?>"><?php echo $lang['copy_this_entry']; ?></a></td>
</tr>
<tr>
<td><img src="images/save.png" /></td>
<?php $ldif_url = "ldif_export.php?server_id=$server_id&amp;dn=$encoded_dn&amp;scope=base"; ?>
<td><a href="<?php echo $ldif_url; ?>" title="<?php echo $lang['export_to_ldif_tooltip']; ?>"><?php echo $lang['export_to_ldif']; ?></a>
(<a href="<?php echo $ldif_url; ?>&amp;format=mac"
title="<?php echo $lang['export_to_ldif_mac']; ?>">mac</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=win"
title="<?php echo $lang['export_to_ldif_win']; ?>">win</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=unix"
title="<?php echo $lang['export_to_ldif_unix']; ?>">unix</a>)
</td>
</tr>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/star.png" /></td>
<td><a href="<?php echo "create_form.php?server_id=$server_id&amp;container=$encoded_dn"; ?>"><?php echo $lang['create_a_child_entry']; ?></a></td>
</tr>
<?php } ?>
<?php flush(); ?>
<?php $children = get_container_contents( $server_id, $dn, $max_children );
if( ($children_count = count( $children ) ) > 0 ) {
if( $children_count == $max_children )
$children_count = $children_count . '+';
?>
<tr>
<td><img src="images/children.png" /></td>
<td><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=one"><?php echo $lang['view']; ?> <?php echo $children_count; ?> <?php echo ($children_count==1?'child':'children');?></a></td>
</tr>
<?php } ?>
<?php if( $children_count > 0 ) { ?>
<tr>
<td><img src="images/save.png" /></td>
<?php $ldif_url = "ldif_export.php?server_id=$server_id&amp;dn=$encoded_dn&amp;scope=sub"; ?>
<td><a href="<?php echo $ldif_url; ?>"
title="<?php echo $lang['export_subtree_to_ldif_tooltip']; ?>"><?php echo $lang['export_subtree_to_ldif']; ?></a>
(<a href="<?php echo $ldif_url; ?>&amp;format=mac" title="<?php echo $lang['export_to_ldif_mac'];?>">mac</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=win" title="<?php echo $lang['export_to_ldif_win'];?>">win</a>)
(<a href="<?php echo $ldif_url; ?>&amp;format=unix" title="<?php echo $lang['export_to_ldif_unix'];?>">unix</a>)
</td>
</tr>
<?php } ?>
<?php if( show_hints() ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<td><?php echo $lang['attr_schema_hint']; ?></td>
</tr>
<?php } ?>
<?php if( is_server_read_only( $server_id ) ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<td><?php echo $lang['viewing_read_only']; ?></td>
</tr>
<?php } ?>
<?php if( $modified_attrs ) { ?>
<tr>
<td><img src="images/light.png" /></td>
<?php if( count( $modified_attrs ) > 1 ) { ?>
<td><?php echo sprintf( $lang['attrs_modified'], implode( ', ', $modified_attrs ) ); ?></td>
<?php } else { ?>
<td><?php echo sprintf( $lang['attr_modified'], implode( '', $modified_attrs ) ); ?></td>
<?php } ?>
</tr>
<?php } ?>
</table>
<br />
<?php flush(); ?>
<table class="edit_dn" cellspacing="0">
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<!-- Form to rename this entry -->
<tr class="row1">
<td class="heading"><acronym title="<?php echo $lang['change_entry_rdn']; ?> "><?php echo $lang['rename_entry']; ?></acronym></td>
<td class="heading" align="right">
<nobr>
<form action="rename.php" method="post" class="edit_dn" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="text" name="new_rdn" size="30" value="<?php echo htmlspecialchars( ( $rdn ) ); ?>" />
<input class="update_dn" type="submit" value="<?php echo $lang['rename']; ?>" />
</form>
</nobr>
</td>
<?php } ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<!-- Form to add a new attribute to this entry -->
<tr class="spacer"><td colspan="2"></td></tr>
<form action="new_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<tr class="row1">
<td class="heading">
<nobr>
<acronym title="<?php echo $lang['add_new_attribute_tooltip']; ?>"><?php echo $lang['add_new_attribute']; ?></acronym>
</nobr>
</td>
<td class="heading" align="right"><nobr>
<?php if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<select name="attr">
<?php
$attr_select_html = '';
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" />
<?php } else { ?>
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<?php } ?>
</nobr></td>
</form>
</tr>
<?php } ?>
<?php flush(); ?>
<?php if( ! is_server_read_only( $server_id ) && count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry -->
<tr class="spacer"><td colspan="2"></td></tr>
<form action="new_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" />
<tr class="row1">
<td class="heading">
<nobr>
<acronym title="<?php echo $lang['add_new_binary_attr_tooltip']; ?>">
<?php echo $lang['add_new_binary_attr']; ?></acronym>
</nobr>
</td>
<td class="heading" align="right"><nobr>
<select name="attr">
<?php
$attr_select_html = '';
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>";
} ?>
</select>
<input type="file" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</nobr></td>
</form>
</tr>
<?php } ?>
<tr class="spacer"><td colspan="2"></td></tr>
<tr class="row1">
<td class="heading" colspan="2">
<nobr>
<?php if( $show_internal_attrs ) { ?>
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"
><img src="images/minus.png" title="<?php echo $lang['hide_internal_attrs']; ?>" /></a>
<acronym title="<?php echo $lang['internal_attrs_tooltip'];?>"><?php echo $lang['internal_attributes']; ?></acronym>
<?php } else { ?>
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>&amp;show_internal_attrs=true">
<img src="images/plus.png" title="<?php echo $lang['show_internal_attrs']; ?>" /></a>
<acronym title="<?php echo $lang['internal_attrs_tooltip']; ?> (<?php echo $lang['click_to_display']; ?>)"><?php echo $lang['internal_attributes']; ?></acronym>
<small>(<?php echo $lang['hidden']; ?>)</small>
<?php } ?>
</nobr>
</td>
</tr>
<?php
if( $show_internal_attrs ) {
$counter = 0;
foreach( get_entry_system_attrs( $server_id, $dn ) as $attr => $vals ) {
$counter++;
$schema_href = "schema.php?server_id=$server_id&amp;view=attributes#" . strtolower(real_attr_name($attr));
?>
<tr class="<?php echo ($counter%2==0?'row1':'row2');?>">
<td class="attr"><b><a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars( $attr ); ?></b></td>
<td class="val">
<?php foreach( $vals as $v ) {?>
<?php echo htmlspecialchars( $v ); ?><br />
<?php } ?>
</td>
</tr>
<?php }
if( $counter == 0 )
echo "<tr class=\"row2\"><td colspan=\"2\"><center>(" . $lang['none'] . ")</center></td></tr>\n";
}
?>
<?php flush(); ?>
<tr class="spacer"><td colspan="2"></td></tr>
<!-- Table of attributes/values to edit -->
<tr class="row1">
<td class="heading" colspan="2">
<nobr><?php echo $lang['entry_attributes']; ?></nobr>
</td>
</tr>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<form action="update_confirm.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<?php } ?>
<?php $counter=0; ?>
<?php /* Prepare the hidden_attrs array by lower-casing it (hidden_attrs comes from config.php). */
if( isset( $hidden_attrs ) && is_array( $hidden_attrs ) && count( $hidden_attrs ) > 0 )
foreach( $hidden_attrs as $i => $attr_name )
$hidden_attrs[$i] = strtolower( $attr_name );
else
$hidden_attrs = array();
?>
<?php foreach( $attrs as $attr => $vals ) {
flush();
if( ! is_server_read_only( $server_id ) ) {
$schema_attr = get_schema_attribute( $server_id, $attr, $dn );
if( $schema_attr )
$attr_syntax = $schema_attr->getSyntaxOID();
else
$attr_syntax = null;
}
if( 0 == strcasecmp( $attr, 'dn' ) )
continue;
// has the config.php specified that this attribute is to be hidden?
if( in_array( strtolower( $attr ), $hidden_attrs ) )
continue;
// 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;
}
?>
<?php if( is_array( $modified_attrs ) && in_array( $attr, $modified_attrs ) ) { ?>
<tr class="updated_attr">
<?php } else { ?>
<?php if( $counter++ % 2 == 0 ) { ?>
<tr class="row2">
<?php } else { ?>
<tr class="row1">
<?php } ?>
<?php } ?>
<td class="attr">
<?php $schema_href="schema.php?server_id=$server_id&amp;view=attributes#" . strtolower(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>
<sup><small><?php echo $attr_note; ?></small></sup>
<br />
</td>
<td class="val">
<?php
/*
* Is this attribute a jpegPhoto?
*/
if( is_jpeg_photo( $server_id, $attr ) ) {
// Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet)
if( is_server_read_only( $server_id ) )
draw_jpeg_photos( $server_id, $dn, false );
else
draw_jpeg_photos( $server_id, $dn, true );
// proceed to the next attribute
continue;
}
/*
* Is this attribute binary?
*/
if( is_attr_binary( $server_id, $attr ) ) {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr";
?>
<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 } ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<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 we are in read-only mode, simply draw the attribute values and continue.
*/
if( is_server_read_only( $server_id ) ) {
if( is_array( $vals ) ) {
foreach( $vals as $i => $val ) {
$val = ( $val );
if( $val == "" )
echo "<span style=\"color:red\">[empty]</span><br />\n";
else
echo $val . "<br />";
}
} else {
echo ( $vals ) . "<br />";
}
continue;
}
/*
* Is this a userPassword attribute?
*/
if( 0 == strcasecmp( $attr, 'userpassword' ) ) {
$user_password = $vals[0];
/* Capture the stuff in the { } to determine if this is crypt, md5, etc. */
if( preg_match( "/{([^}]+)}/", $user_password, $enc_type) )
$enc_type = strtolower($enc_type[1]);
else
$enc_type = null;
// Set the default hashing type if the password is blank (must be newly created)
if( $val == '' ) {
$enc_type = $servers[$server_id]['default_hash'];
} ?>
<?php /* handle crypt types */
if($enc_type == "crypt") {
if( preg_match( "/{[^}]+}\\$(.)\\$/", $user_password, $salt) )
$salt = $salt[1];
else
$salt = null;
switch( $salt ) {
case '': // CRYPT_STD_DES
$enc_type = "crypt";
break;
case '1': // CRYPT_MD5
$enc_type = "md5crypt";
break;
case '2': // CRYPT_BLOWFISH
$enc_type = "blowfish";
break;
default:
$enc_type = "crypt";
}
} ?>
<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); ?>" />
<input size="38"
type="text"
name="new_values[userpassword]"
value="<?php echo htmlspecialchars($user_password); ?>" />
<select name="enc_type">
<option>clear</option>
<option<?php echo $enc_type=='crypt'?' selected':''; ?>>crypt</option>
<option<?php echo $enc_type=='md5'?' selected':''; ?>>md5</option>
<option<?php echo $enc_type=='smd5'?' selected':''; ?>>smd5</option>
<option<?php echo $enc_type=='md5crypt'?' selected':''; ?>>md5crypt</option>
<option<?php echo $enc_type=='blowfish'?' selected':''; ?>>blowfish</option>
<option<?php echo $enc_type=='sha'?' selected':''; ?>>sha</option>
<option<?php echo $enc_type=='ssha'?' selected':''; ?>>ssha</option>
</select>
<?php continue;
}
/*
* Is this a boolean attribute?
*/
$type = ( $schema_attr = get_schema_attribute( $server_id, $attr, $dn ) ) ?
$schema_attr->getType() :
null;
if( 0 == strcasecmp( 'boolean', $type ) ) {
$val = $vals[0];
?>
<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
continue;
}
/*
* End of special case attributes.
*/
/*
* This is a normal attribute, to be displayed and edited in plain text.
*/
foreach( $vals as $i => $val ) {
$val = ( $val ); ?>
<nobr>
<!-- 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 if( $attr_syntax == '1.3.6.1.4.1.1466.115.121.1.40' ) { ?>
<textarea
cols="37" rows="3"
name="new_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]"
><?php echo htmlspecialchars($val); ?></textarea><br />
<?php } else { ?>
<input type="text"
size="50"
name="new_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]"
value="<?php echo htmlspecialchars($val); ?>" /></nobr><br />
<?php } ?>
<?php } /* end foreach value */ ?>
<?php
/* Draw the "add value" link under the list of values for this attributes */
if( ! is_server_read_only( $server_id ) &&
( $schema_attr = get_schema_attribute( $server_id, $attr, $dn ) ) &&
! $schema_attr->getIsSingleValue() )
{
$add_href = "add_value_form.php?server_id=$server_id&amp;" .
"dn=$encoded_dn&amp;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";
}
?>
</td>
</tr>
<?php
flush();
} /* End foreach( $attrs as $attr => $vals ) */ ?>
<?php if( ! is_server_read_only( $server_id ) ) { ?>
<tr><td colspan="2"><center><input type="submit" value="<?php echo $lang['save_changes']; ?>" /></center></form></td></tr>
<?php } ?>
<?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 $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />
</form>
<?php
/**
* Given an attribute $x, this returns true if it is NOT already specified
* in the current entry, returns false otherwise.
*/
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

@ -0,0 +1,39 @@
<?php
/*
* User modification template. All phpLDAPadmin templates can assume that the following
* variables are defined externally for them:
* $server_id
* $dn
* Other variables will need to be manually extracted from the $_GET or $_POST arrays.
* It may also be assumed that all functions in functions.php and schema_functions.php
* are available for use.
*/
$rdn = get_rdn( $dn );
$user_name = explode( '=', $rdn );
$user_name = $user_name[1];
$encoded_dn = rawurlencode( $dn );
$server_name = $servers[$server_id]['name'];
include 'header.php';
?>
<body>
<h3 class="title">Editing User: <b><?php echo htmlspecialchars( utf8_decode( $user_name ) ); ?></b></h3>
<h3 class="subtitle">
Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp;
LDAP <acronym title="Distinguished Name">DN</acronym>:
<b><?php echo htmlspecialchars( utf8_decode( $dn ) ); ?></b>
</h3>
<?php $default_href = "edit.php?server_id=$server_id&amp;dn=$encoded_dn&amp;use_default_template=true"; ?>
<center><small>
Using the <b>user</b> template.
You may switch to the <a href="<?php echo $default_href; ?>">default template</a>
</small></center>
<center><h1><tt>TODO: FinishMe</tt></h1></center>

View File

@ -24,7 +24,7 @@ header("Pragma: no-cache");
session_start(); session_start();
// do we not have a tree yet? Build a new one. // do we not have a tree yet? Build a new one.
if( ! session_is_registered( 'tree' ) ) { if( ! session_is_registered( 'tree' ) || ! isset( $_SESSION['tree'] ) ) {
session_register( 'tree' ); session_register( 'tree' );
$_SESSION['tree'] = build_initial_tree(); $_SESSION['tree'] = build_initial_tree();
session_register( 'tree_icons' ); session_register( 'tree_icons' );
@ -34,9 +34,8 @@ if( ! session_is_registered( 'tree' ) ) {
// grab the tree out of the session variable // grab the tree out of the session variable
$tree = $_SESSION['tree']; $tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons']; $tree_icons = $_SESSION['tree_icons'];
?>
<?php include 'header.php'; ?> include 'header.php'; ?>
<body> <body>
@ -69,6 +68,12 @@ foreach( $servers as $server_id => $server_tree ) {
if( $servers[$server_id]['host'] != '' ) { if( $servers[$server_id]['host'] != '' ) {
// Does this server want mass deletion availble?
if( mass_delete_enabled( $server_id ) ) {
echo "<form action=\"mass_delete.php\" method=\"post\" target=\"right_frame\">\n";
echo "<input type=\"hidden\" name=\"server_id\" value=\"$server_id\" />\n";
}
$server_name = $servers[$server_id]['name']; $server_name = $servers[$server_id]['name'];
echo '<tr class="server">'; echo '<tr class="server">';
echo '<td class="icon"><img src="images/server.png" alt="server"/></td>'; echo '<td class="icon"><img src="images/server.png" alt="server"/></td>';
@ -78,8 +83,9 @@ foreach( $servers as $server_id => $server_tree ) {
// do we have what it takes to authenticate here, or do we need to // do we have what it takes to authenticate here, or do we need to
// present the user with a login link (for 'form' auth_types)? // present the user with a login link (for 'form' auth_types)?
if( have_auth_info( $server_id ) ) if( have_auth_info( $server_id ) ) {
{
if( pla_ldap_connect( $server_id ) ) {
$schema_href = 'schema.php?server_id=' . $server_id . '" target="right_frame'; $schema_href = 'schema.php?server_id=' . $server_id . '" target="right_frame';
$search_href= 'search.php?server_id=' . $server_id . '" target="right_frame'; $search_href= 'search.php?server_id=' . $server_id . '" target="right_frame';
$refresh_href = 'refresh.php?server_id=' . $server_id; $refresh_href = 'refresh.php?server_id=' . $server_id;
@ -101,7 +107,7 @@ foreach( $servers as $server_id => $server_tree ) {
echo '<a title="' . $lang['refresh_expanded_containers'] . ' ' . $server_name . '"'. echo '<a title="' . $lang['refresh_expanded_containers'] . ' ' . $server_name . '"'.
' href="' . $refresh_href . '">' . $lang['refresh'] . '</a> | '; ' href="' . $refresh_href . '">' . $lang['refresh'] . '</a> | ';
echo '<a title="' . $lang['create_new_entry_on'] . ' ' . $server_name . '"'. echo '<a title="' . $lang['create_new_entry_on'] . ' ' . $server_name . '"'.
' href="' . $create_href . '" target="right_frame">create</a> | '; ' href="' . $create_href . '" target="right_frame">' . $lang['create'] . '</a> | ';
echo '<a title="' . $lang['view_server_info'] . '" target="right_frame"'. echo '<a title="' . $lang['view_server_info'] . '" target="right_frame"'.
'href="' . $info_href . '">' . $lang['info'] . '</a> | '; 'href="' . $info_href . '">' . $lang['info'] . '</a> | ';
echo '<a title="' . $lang['import_from_ldif'] . '" target="right_frame"' . echo '<a title="' . $lang['import_from_ldif'] . '" target="right_frame"' .
@ -129,6 +135,9 @@ foreach( $servers as $server_id => $server_tree ) {
// Did we get a base_dn for this server somehow? // Did we get a base_dn for this server somehow?
if( $base_dn ) { if( $base_dn ) {
echo "\n\n<!-- base DN row -->\n<tr>\n";
// is the root of the tree expanded already? // is the root of the tree expanded already?
if( isset( $tree[$server_id][$base_dn] ) ) { if( isset( $tree[$server_id][$base_dn] ) ) {
$expand_href = "collapse.php?server_id=$server_id&amp;" . $expand_href = "collapse.php?server_id=$server_id&amp;" .
@ -142,15 +151,25 @@ foreach( $servers as $server_id => $server_tree ) {
$edit_href = "edit.php?server_id=$server_id&amp;dn=" . rawurlencode( $base_dn ); $edit_href = "edit.php?server_id=$server_id&amp;dn=" . rawurlencode( $base_dn );
$icon = get_icon( $server_id, $base_dn ); $icon = isset( $tree_icons[ $server_id ][ $base_dn ] ) ?
echo "<td class=\"expander\" style=\"text-align: right\">"; $tree_icons[ $server_id ][ $base_dn ] :
get_icon( $server_id, $base_dn );
// Shall we draw the "mass-delete" checkbox?
if( mass_delete_enabled( $server_id ) ) {
echo "<td><input type=\"checkbox\" name=\"mass_delete[" . htmlspecialchars($base_dn) . "]\" /></td>\n";
}
echo "<td class=\"expander\">";
echo "<a href=\"$expand_href\"><img src=\"$expand_img\" /></td>"; echo "<a href=\"$expand_href\"><img src=\"$expand_img\" /></td>";
echo "<td class=\"icon\"><a href=\"$edit_href\" target=\"right_frame\">"; echo "<td class=\"icon\"><a href=\"$edit_href\" target=\"right_frame\">";
echo "<img src=\"images/$icon\" /></a></td>\n"; echo "<img src=\"images/$icon\" /></a></td>\n";
echo "<td class=\"rdn\" colspan=\"98\"><nobr><a href=\"$edit_href\" "; echo "<td class=\"rdn\" colspan=\"98\"><nobr><a href=\"$edit_href\" ";
echo " target=\"right_frame\">$base_dn</nobr></td>\n"; echo " target=\"right_frame\">$base_dn</nobr></td>\n";
echo "</tr>\n"; echo "</tr>\n<!-- end of base DN row -->";
} else {
} else { // end if( $base_dn )
if( "" === $base_dn || null === $base_dn ) { if( "" === $base_dn || null === $base_dn ) {
// The server refuses to give out the base dn // The server refuses to give out the base dn
echo "<tr><td class=\"spacer\"></td><td colspan=\"98\"><small><nobr>"; echo "<tr><td class=\"spacer\"></td><td colspan=\"98\"><small><nobr>";
@ -177,7 +196,7 @@ foreach( $servers as $server_id => $server_tree ) {
flush(); flush();
// Is the root of the tree expanded already? // Is the root of the tree expanded already?
if( isset( $tree[$server_id][$base_dn] ) ) { if( isset( $tree[$server_id][$base_dn] ) && is_array( $tree[$server_id][$base_dn] ) ) {
foreach( $tree[ $server_id ][ $base_dn ] as $child_dn ) foreach( $tree[ $server_id ][ $base_dn ] as $child_dn )
draw_tree_html( $child_dn, $server_id, 0 ); draw_tree_html( $child_dn, $server_id, 0 );
if( ! is_server_read_only( $server_id ) ) { if( ! is_server_read_only( $server_id ) ) {
@ -189,18 +208,48 @@ foreach( $servers as $server_id => $server_tree ) {
$base_dn.'">' . $lang['create_new'] . '</a></td></tr>'; $base_dn.'">' . $lang['create_new'] . '</a></td></tr>';
} }
} }
} else { // end if( pla_ldap_connect( $ds ) )
// could not connect to LDAP server
echo "<tr>\n";
echo "<td class=\"spacer\"></td>\n";
echo "<td><img src=\"images/warning_small.png\" /></td>\n";
echo "<td colspan=\"99\"><small><span style=\"color:red\">" . $lang['could_not_connect'] . "</span></small></td>\n";
echo "</tr>\n";
if( $servers[ $server_id ][ 'auth_type' ] == 'form' ) {
$logout_href = 'logout.php?server_id=' . $server_id;
echo "<tr>\n";
echo "<td class=\"spacer\"></td>\n";
echo "<td class=\"spacer\"></td>\n";
echo "<td colspan=\"99\"><small>";
echo "<a target=\"right_frame\" href=\"$logout_href\">" . $lang['logout'] . "</a></small></td>\n";
echo "</tr>\n";
} }
else // have_auth_info() returned false.
{
// Proceed to the next server in the list. We cannot do anything mroe here.
continue;
}
} else { // end if have_auth_info( $server_id )
// We don't have enough information to login to this server // We don't have enough information to login to this server
// Draw the "login..." link // Draw the "login..." link
$login_href = "login_form.php?server_id=$server_id"; $login_href = "login_form.php?server_id=$server_id";
echo '<tr class="login"><td colspan="100">'; echo '<tr class="login">';
echo '&nbsp;&nbsp;&nbsp;<a href="' . $login_href . '" target="right_frame">'; echo '<td class="spacer"></td>';
echo '<img src="images/uid.png" align="top" alt="login"/></a> '; echo '<td><a href="' . $login_href . '" target="right_frame">';
echo '<a href="' . $login_href . '" target="right_frame">login...</a>'; echo '<img src="images/uid.png" align="top" alt="login"/></a></td>';
echo '<td colspan="99"><a href="' . $login_href . '" target="right_frame">' . $lang['login_link'] . '</a>';
echo '</td></tr>'; echo '</td></tr>';
} }
if( mass_delete_enabled( $server_id ) ) {
echo "<tr><td colspan=\"99\"><input type=\"submit\" value=\"Delete Checked Entries\" \></td></tr>\n";
echo "<!-- The end of the mass deletion form -->\n";
echo "</form>\n";
}
} }
} }
@ -237,6 +286,7 @@ function draw_tree_html( $dn, $server_id, $level=0 )
$img_src = 'images/' . $tree_icons[ $server_id ][ $dn ]; $img_src = 'images/' . $tree_icons[ $server_id ][ $dn ];
$rdn = pla_explode_dn( $dn ); $rdn = pla_explode_dn( $dn );
if( isset( $rdn[0] ) )
$rdn = $rdn[0]; $rdn = $rdn[0];
echo '<tr>'; echo '<tr>';
@ -245,6 +295,15 @@ function draw_tree_html( $dn, $server_id, $level=0 )
echo '<td class="spacer"></td>' . "\n"; echo '<td class="spacer"></td>' . "\n";
} }
// Shall we draw the "mass-delete" checkbox?
if( mass_delete_enabled( $server_id ) ) {
echo "<td>
<input
type=\"checkbox\"
name=\"mass_delete[" . htmlspecialchars($dn) . "]\" />
</td>\n";
}
// is this node expanded? (deciding whether to draw "+" or "-") // is this node expanded? (deciding whether to draw "+" or "-")
if( isset( $tree[$server_id][$dn] ) ) { ?> if( isset( $tree[$server_id][$dn] ) ) { ?>
<td class="expander"> <td class="expander">
@ -270,7 +329,7 @@ function draw_tree_html( $dn, $server_id, $level=0 )
<td class="rdn" colspan="<?php echo (97-$level); ?>"> <td class="rdn" colspan="<?php echo (97-$level); ?>">
<nobr> <nobr>
<a href="<?php echo $edit_href; ?>" <a href="<?php echo $edit_href; ?>"
target="right_frame"><?php echo htmlspecialchars( utf8_decode( $rdn ) ); ?></a> target="right_frame"><?php echo ( $rdn ); ?></a>
<?php echo $object_count; ?> <?php echo $object_count; ?>
</nobr> </nobr>
</td> </td>

14
unit_test.php Normal file
View File

@ -0,0 +1,14 @@
<?php
require_once realpath( 'functions.php' );
$dns1 = array( 'cn=joe,dc=example,dc=com', 'cn=joe,dc=example,dc=com', 'cn = bob, dc= example,dc =com' );
$dns2 = array( 'cn=joe,dc=example,dc=com', 'CN =joe,dc=Example,dc =com', 'cn= bob, dc= example,dc =com' );
echo "<pre>";
for( $i=0; $i<count($dns1); $i++ ) {
var_dump( pla_compare_dns( $dns1[$i], $dns2[$i] ) );
echo "\n";
}

View File

@ -22,19 +22,22 @@
* On failure, echo an error. * On failure, echo an error.
*/ */
require 'common.php'; require realpath( 'common.php' );
if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" );
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$dn = rawurldecode( $_POST['dn'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn ); $encoded_dn = rawurlencode( $dn );
$update_array = $_POST['update_array']; $update_array = $_POST['update_array'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." ); have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
is_array( $update_array ) or pla_error( "update_array is malformed. This might be a phpLDAPadmin bug. Please report it." ); is_array( $update_array ) or pla_error( $lang['update_array_malformed'] );
pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
// check for delete attributes (indicated by the attribute entry appearing like this: attr => '' // check for delete attributes (indicated by the attribute entry appearing like this: attr => ''
foreach( $update_array as $attr => $val ) foreach( $update_array as $attr => $val )
@ -47,10 +50,55 @@ foreach( $update_array as $attr => $val )
foreach( $val as $i => $v ) foreach( $val as $i => $v )
$update_array[ $attr ][ $i ] = $v; $update_array[ $attr ][ $i ] = $v;
// Call the custom callback for each attribute modification
// and verify that it should be modified.
foreach( $update_array as $attr_name => $val )
if( true !== preAttrModify( $server_id, $dn, $attr_name, $val ) )
unset( $update_array[ $attr_name ] );
$ds = pla_ldap_connect( $server_id ); $ds = pla_ldap_connect( $server_id );
$res = @ldap_modify( $ds, $dn, $update_array ); $res = @ldap_modify( $ds, $dn, $update_array );
if( $res ) if( $res )
{ {
// Fire the post modification event to the user's custom
// callback function.
foreach( $update_array as $attr_name => $val ) {
postAttrModify( $server_id, $dn, $attr_name, $val );
// Was this a user's password modification who is currently
// logged in? If so, they need to logout and log back in
// with the new password.
if( 0 === strcasecmp( $attr_name, 'userPassword' ) &&
check_server_id( $server_id ) &&
isset( $servers[ $server_id ][ 'auth_type' ] ) &&
$servers[ $server_id ][ 'auth_type' ] == 'form' &&
0 === pla_compare_dns( get_logged_in_dn( $server_id ), $dn ) )
{
unset_cookie_login_dn( $server_id );
include realpath( 'header.php' );
?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<br />
<center>
<b>Modification successful!</b><br />
<br />
Since you changed your password, you must <br />
now <a href="login_form.php?server_id=<?php echo $server_id; ?>">login again</a> with your new password.
</center>
</body>
</html>
<?php
exit;
}
}
$redirect_url = "edit.php?server_id=$server_id&dn=$encoded_dn"; $redirect_url = "edit.php?server_id=$server_id&dn=$encoded_dn";
foreach( $update_array as $attr => $junk ) foreach( $update_array as $attr => $junk )
$redirect_url .= "&modified_attrs[]=$attr"; $redirect_url .= "&modified_attrs[]=$attr";
@ -58,7 +106,7 @@ if( $res )
} }
else else
{ {
pla_error( "Could not perform ldap_modify operation.", ldap_error( $ds ), ldap_errno( $ds ) ); pla_error( $lang['could_not_perform_ldap_modify'], ldap_error( $ds ), ldap_errno( $ds ) );
} }
?> ?>

View File

@ -15,22 +15,42 @@ require 'common.php';
include 'header.php'; include 'header.php';
$server_id = $_POST['server_id']; $server_id = $_POST['server_id'];
$encoded_dn = $_POST['dn'];
$dn = rawurldecode( $encoded_dn ); check_server_id( $server_id ) or die( $lang['bad_server_id'] );
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn ); $rdn = get_rdn( $dn );
$old_values = $_POST['old_values']; $old_values = $_POST['old_values'];
$new_values = $_POST['new_values']; $new_values = $_POST['new_values'];
$update_array = array(); $server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) ) if( is_server_read_only( $server_id ) )
pla_error( "You cannot perform updates while server is in read-only mode" ); pla_error( $lang['no_updates_in_read_only_mode'] );
// utf8_decode all the incoming new_values and old_values as they were input
// from a utf8 page.
foreach( $old_values as $attr => $vals )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$old_values[ $attr ][ $i ] = utf8_decode( $v );
else
$old_values[ $attr ] = utf8_decode( $vals );
foreach( $new_values as $attr => $vals )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$new_values[ $attr ][ $i ] = utf8_decode( $v );
else
$new_values[ $attr ] = utf8_decode( $vals );
?> ?>
<body> <body>
<h3 class="title"><?php echo htmlspecialchars( utf8_decode( $rdn ) ); ?></h3> <h3 class="title"><?php echo htmlspecialchars( ( $rdn ) ); ?></h3>
<h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; Distinguished Name: <b><?php echo htmlspecialchars( utf8_decode( $dn ) ); ?></b></h3> <h3 class="subtitle">Server: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php <?php
$update_array = array();
foreach( $new_values as $attr => $new_val ) foreach( $new_values as $attr => $new_val )
{ {
// did the user change the field? // did the user change the field?
@ -39,13 +59,16 @@ foreach( $new_values as $attr => $new_val )
// special case for userPassword attributes // special case for userPassword attributes
if( 0 == strcasecmp( $attr, 'userPassword' ) && $new_val != '' ) if( 0 == strcasecmp( $attr, 'userPassword' ) && $new_val != '' )
$new_val = password_hash( $new_val, $_POST['enc_type'] ); $new_val = password_hash( $new_val, $_POST['enc_type'] );
$update_array[ $attr ] = $new_val; $update_array[ $attr ] = $new_val;
} }
} }
// special case check for a new enc_type for userPassword (not otherwise detected) // special case check for a new enc_type for userPassword (not otherwise detected)
if( $_POST['enc_type'] != $_POST['old_enc_type'] && $_POST['new_values']['userpassword'] != '' ) { if( isset( $_POST['enc_type'] ) &&
$_POST['enc_type'] != $_POST['old_enc_type'] &&
$_POST['enc_type'] != 'clear' &&
$_POST['new_values']['userpassword'] != '' ) {
$new_password = password_hash( $_POST['new_values']['userpassword'], $_POST['enc_type'] ); $new_password = password_hash( $_POST['new_values']['userpassword'], $_POST['enc_type'] );
$update_array[ 'userpassword' ] = $new_password; $update_array[ 'userpassword' ] = $new_password;
} }
@ -74,12 +97,17 @@ foreach( $update_array as $attr => $val ) {
<br /> <br />
<center> <center>
Do you want to make these changes? <?php echo $lang['do_you_want_to_make_these_changes']; ?>
<br /> <br />
<br /> <br />
<table class="confirm"> <table class="confirm">
<tr><th>Attribute</th><th>Old Value</th><th>New Value</th></tr> <tr>
<th><?php echo $lang['attribute']; ?></th>
<th><?php echo $lang['old_value']; ?></th>
<th><?php echo $lang['new_value']; ?></th>
</tr>
<?php $counter=0; foreach( $update_array as $attr => $new_val ) { $counter++ ?> <?php $counter=0; foreach( $update_array as $attr => $new_val ) { $counter++ ?>
<tr class="<?php echo $counter%2 ? 'even' : 'odd'; ?>"> <tr class="<?php echo $counter%2 ? 'even' : 'odd'; ?>">
@ -110,14 +138,14 @@ foreach( $update_array as $attr => $val ) {
// expectations // expectations
if( $update_array[ $attr ] == array( 0 => '' ) || $update_array[ $attr ] == array() ) { if( $update_array[ $attr ] == array( 0 => '' ) || $update_array[ $attr ] == array() ) {
$update_array[ $attr ] = ''; $update_array[ $attr ] = '';
echo '<span style="color: red">[attribute deleted]</span>'; echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>';
} }
} }
else else
if( $new_val != '' ) if( $new_val != '' )
echo htmlspecialchars( $new_val ) . "<br />"; echo htmlspecialchars( $new_val ) . "<br />";
else else
echo '<span style="color: red">[attribute deleted]</span>'; echo '<span style="color: red">' . $lang['attr_deleted'] . '</span>';
echo "</nobr></td></tr>\n\n"; echo "</nobr></td></tr>\n\n";
} }
@ -132,29 +160,31 @@ foreach( $update_array as $attr => $val ) {
<!-- Commit button and acompanying form --> <!-- Commit button and acompanying form -->
<form action="update.php" method="post"> <form action="update.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <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="dn" value="<?php echo $dn; ?>" />
<?php foreach( $update_array as $attr => $val ) { ?> <?php foreach( $update_array as $attr => $val ) { ?>
<?php if( is_array( $val ) ) { ?> <?php if( is_array( $val ) ) { ?>
<?php foreach( $val as $i => $v ) { ?> <?php foreach( $val as $i => $v ) { ?>
<input type="hidden" <input type="hidden"
name="update_array[<?php echo htmlspecialchars( utf8_encode( $attr ) ); ?>][<?php echo $i; ?>]" name="update_array[<?php echo htmlspecialchars( utf8_encode( $attr ) ); ?>][<?php echo $i; ?>]"
value="<?php echo htmlspecialchars( utf8_encode( $v ) ); ?>" /> value="<?php echo htmlspecialchars( utf8_encode( $v ) ); ?>" />
<?php } ?> <?php } ?>
<?php } else { ?> <?php } else { ?>
<input type="hidden" <input type="hidden"
name="update_array[<?php echo htmlspecialchars( utf8_encode( $attr ) ); ?>]" name="update_array[<?php echo htmlspecialchars( utf8_encode( $attr ) ); ?>]"
value="<?php echo htmlspecialchars( utf8_encode( $val ) ); ?>" /> value="<?php echo htmlspecialchars( utf8_encode( $val ) ); ?>" />
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
<input type="submit" value="Commit" class="happy" /> <input type="submit" value="<?php echo $lang['commit']; ?>" class="happy" />
</form> </form>
</td> </td>
<td> <td>
<!-- Cancel button --> <!-- Cancel button -->
<form action="edit.php" method="get"> <form action="edit.php" method="get">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" /> <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="dn" value="<?php echo $dn; ?>" />
<input type="submit" value="Cancel" class="scary" /> <input type="submit" value="<?php echo $lang['cancel']; ?>" class="scary" />
</form> </form>
</td> </td>
</tr> </tr>
@ -167,8 +197,8 @@ foreach( $update_array as $attr => $val ) {
} else { ?> } else { ?>
<center> <center>
You made no changes. <?php echo $lang['you_made_no_changes']; ?>
<a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>">Go back</a>. <a href="edit.php?server_id=<?php echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo $lang['go_back']; ?></a>.
</center> </center>
<?php } ?> <?php } ?>

View File

@ -6,11 +6,11 @@ $file = $_GET['file'];
// Security check (we don't want anyone tryting to get at /etc/passwd or something) // Security check (we don't want anyone tryting to get at /etc/passwd or something)
preg_match( "/^djp/", $file ) or preg_match( "/^djp/", $file ) or
pla_error( "Unsafe file name: " . htmlspecialchars( $file ) ); pla_error( $lang['unsafe_file_name'] . htmlspecialchars( $file ) );
$file = $jpeg_temp_dir . '/' . $file; $file = $jpeg_temp_dir . '/' . $file;
file_exists( $file ) or file_exists( $file ) or
pla_error( "No such file: " . htmlspecialchars( $file ) ); pla_error( $lang['no_such_file'] . htmlspecialchars( $file ) );
// little security measure here (prevents users from accessing // little security measure here (prevents users from accessing
// files, like /etc/passwd for example) // files, like /etc/passwd for example)

View File

@ -1,4 +1,7 @@
<?php include 'header.php'; ?> <?php
include 'common.php';
include 'header.php';
?>
<center> <center>
<br /> <br />
@ -6,5 +9,9 @@
<br /> <br />
<img src="images/logo.jpg" /><br /> <img src="images/logo.jpg" /><br />
<br /> <br />
Use the menu to the left to navigate. <?php echo $lang['welcome_note']; ?>
</center> </center>
</body>
</html>