diff --git a/VERSION b/VERSION index 2003b63..965065d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.9.2 +0.9.3 diff --git a/check_lang_files.php b/check_lang_files.php index 367143b..28aab12 100644 --- a/check_lang_files.php +++ b/check_lang_files.php @@ -1,6 +1,9 @@ -

Incomplete or Erroneous Language Files

\n\n"; +phpldapadmin - check of translation"; +echo "

Incomplete or Erroneous Language Files

\n\n"; include realpath( 'lang/en.php' ); $english_lang = $lang; @@ -11,7 +14,9 @@ $dir = opendir( $lang_dir ); while( ( $file = readdir( $dir ) ) !== false ) { if( ! preg_match( "/\.php$/", $file ) ) continue; - if( $file == 'en.php' ) + if( $file == 'en.php' // is the mother of all language-files + || $file == 'auto.php' // and ignore auto.php + ) continue; echo "

$file

"; echo "
    "; @@ -36,6 +41,6 @@ while( ( $file = readdir( $dir ) ) !== false ) { - +echo ""; ?> diff --git a/common.php b/common.php index ce92ce4..2ad025d 100644 --- a/common.php +++ b/common.php @@ -11,28 +11,37 @@ 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' ); +@define( 'HTTPS_PORT', 443 ); // 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' ) ) ) { + ob_start(); is_readable( realpath( 'config.php' ) ) or pla_error( "Could not read config.php, its permissions are too strict." ); require realpath( 'config.php' ); + ob_end_clean(); } // 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." ); +ob_start(); require_once realpath( 'functions.php' ); +ob_end_clean(); // 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." ); +ob_start(); require_once realpath( 'schema_functions.php' ); +ob_end_clean(); // Functions that can be defined by the user (preEntryDelete(), postEntryDelete(), etc.) is_readable( realpath( 'custom_functions.php' ) ) or pla_error( "Cannot read the file 'custom_functions.php' its permissions are too strict." ); +ob_start(); require_once realpath( 'custom_functions.php' ); +ob_end_clean(); // Our custom error handler receives all error notices that pass the error_reporting() // level set above. @@ -57,21 +66,26 @@ else // 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; + + // Make sure their browser correctly reports language. If not, skip this. + if( isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ) { + + // 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 { diff --git a/config.php.example b/config.php.example index ee7d2f1..d1e2f5d 100644 --- a/config.php.example +++ b/config.php.example @@ -14,42 +14,44 @@ // Your LDAP servers $i=0; $servers = array(); -$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in - the tree viewer */ -$servers[$i]['host'] = 'ldap.example.com'; /* Examples: 'ldap.example.com', - 'ldaps://ldap.example.com/' - 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. */ -$servers[$i]['port'] = 389; /* The port your LDAP server listens on - (no quotes) */ -$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! */ -$servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com'; /* For anonymous binds, leave the - login_dn and login_pass blank */ -$servers[$i]['login_pass'] = 'secret'; /* Your password (only if you specified 'config' - for 'auth_type' */ -$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. */ -$servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as the auth_type above, - you can optionally specify here an attribute - to use when logging in. If you enter 'uid', - then login as 'dsmith', phpLDAPadmin will - search for uid=dsmith and log in as such. Leave - 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]['name'] = 'My LDAP Server'; /* A convenient name that will appear in + the tree viewer */ +$servers[$i]['host'] = 'ldap.example.com'; /* Examples: 'ldap.example.com', + 'ldaps://ldap.example.com/' + 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. */ +$servers[$i]['port'] = 389; /* The port your LDAP server listens on + (no quotes) */ +$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! */ +$servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com'; + /* For anonymous binds, leave the + login_dn and login_pass blank */ +$servers[$i]['login_pass'] = 'secret'; /* Your password (only if you specified 'config' + for 'auth_type' */ +$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, smd5, blowfish or + leave blank for now default algorithm. */ +$servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as the auth_type above, + you can optionally specify here an attribute + to use when logging in. If you enter 'uid', + then login as 'dsmith', phpLDAPadmin will + search for uid=dsmith and log in as such. Leave + 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' @@ -60,6 +62,10 @@ $servers[$i]['auto_uid_number_mechanism'] = 'search'; $servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com'; /* The DN of the search base when the 'search' mechanism is used above. */ +$servers[$i]['auto_uid_number_min'] = 1000; + /* The minimum number to use when searching for the next + available UID number (only when 'search' is used for + auto_uid_number_mechanism' */ $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. */ @@ -81,6 +87,7 @@ $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_min'] = 1000; $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++;") @@ -141,52 +148,6 @@ $search_attributes_display = "User Name, Common Name, Group ID, Object Class, Ph // The list of attributes to display in each search result entry summary $search_result_attributes = "dn, cn"; -/** **/ -/** Templates for entry creation **/ -/** **/ - -$templates = array(); - -// Fill in this array with templates that you can create to suit your needs. -// Each entry defines a description (to be displayed in the template list) and -// a handler, which is a file that will be executed with certain POST vars set. -// See the templates provided here for examples of how to make your own template. - -$templates[] = - array( 'desc' => 'User Account', - 'icon' => 'images/user.png', - 'handler' => 'new_user_template.php' ); - -$templates[] = - array( 'desc' => 'Address Book Entry (inetOrgPerson)', - 'icon' => 'images/user.png', - 'handler' => 'new_address_template.php' ); - -$templates[] = - array( 'desc' => 'Organizational Unit', - 'icon' => 'images/ou.png', - 'handler' => 'new_ou_template.php' ); - -$templates[] = - array( 'desc' => 'Posix Group', - 'icon' => 'images/ou.png', - 'handler' => 'new_posix_group_template.php' ); - -$templates[] = - array( 'desc' => 'Samba NT Machine', - 'icon' => 'images/nt.png', - 'handler' => 'new_nt_machine.php' ); - -$templates[] = - array( 'desc' => 'Samba User', - 'icon' => 'images/user.png', - 'handler' => 'new_smbuser_template.php' ); - -$templates[] = - array( 'desc' => 'DNS Entry', - 'icon' => 'images/dc.png', - 'handler' => 'new_dns_entry.php' ); - /** **/ /** User-friendly attribute translation **/ /** **/ diff --git a/create.php b/create.php index d4e1abc..b46fa79 100644 --- a/create.php +++ b/create.php @@ -55,7 +55,7 @@ if( isset( $vals ) && is_array( $vals ) ) { $new_entry[ $attr ][] = $val; } } else { - if( trim($val) ) + if( '' !== trim($val) ) $new_entry[ $attr ][] = utf8_encode( $val ); } } diff --git a/create_form.php b/create_form.php index 00f116a..199930c 100644 --- a/create_form.php +++ b/create_form.php @@ -11,6 +11,7 @@ */ require 'common.php'; +require 'templates/template_config.php'; $server_id = $_REQUEST['server_id']; $step = isset( $_REQUEST['step'] ) ? $_REQUEST['step'] : 1; // defaults to 1 @@ -53,18 +54,40 @@ include 'header.php'; ?> - $template ) { ?> - - - - - - + $template ) { + + // Check and see if this template should be shown in the list + $isValid = false; + if (isset($template['regexp'])) { + if (@preg_match("/".$template['regexp']."/i", $container)) { + $isValid = true; + } + } else { + $isValid = true; + } + + if ($isValid) { + ?> + + + + + + +
    + checked + + />
    diff --git a/creation_template.php b/creation_template.php index 516b78b..6a161f9 100644 --- a/creation_template.php +++ b/creation_template.php @@ -11,12 +11,16 @@ */ require 'common.php'; +require 'templates/template_config.php'; +isset( $_POST['template'] ) or pla_error( 'You must choose a template' ); $template = $_POST['template']; -$template = $templates[$template]; +isset( $templates[$template] ) or pla_error( 'Invalid template: ' . htmlspecialchars( $template ) ); +$template = isset( $templates[$template] ) ? $templates[$template] : null; $server_id = $_POST['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( $lang['not_enough_login_info'] ); +pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] ); $server_name = $servers[ $server_id ][ 'name' ]; if( is_server_read_only( $server_id ) ) diff --git a/delete.php b/delete.php index bc17372..fc25945 100644 --- a/delete.php +++ b/delete.php @@ -45,17 +45,19 @@ if( $del_result ) if( session_is_registered( 'tree' ) ) { $tree = $_SESSION['tree']; + if( isset( $tree[$server_id] ) && is_array( $tree[$server_id] ) ) { - // does it have children? (it shouldn't, but hey, you never know) - 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; + // 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(); } diff --git a/doc/CREDITS b/doc/CREDITS index b11ffa9..08f3c9c 100644 --- a/doc/CREDITS +++ b/doc/CREDITS @@ -1,6 +1,3 @@ ---------------------------- -phpLDAPadmin - Contributors ---------------------------- * Project Developers: diff --git a/doc/ChangeLog b/doc/ChangeLog index 9159fae..db68b62 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,7 +1,34 @@ ------------------------- -phpLDAPadmin - ChangeLog ------------------------- +* Version 0.9.3, 2003-12-19 + * Notes: + This release focused almost entirely on finding and fixing bugs. + The schema viewer has also been streamlined to save bandwidth (and several + endangered species), while template configuration has been moved to its + own file located in the templates directory. Over all, phpLDAPadmin has + been made more solid thanks to testing and reporting by hundreds of users. + Thansk for all your reports! Special thanks goes out to Matt Perlman for + the IBM work-around and Uwe Ebel for the enhanced schema viewer. + * Changes: + As this was primarily a bug-fix release, here's the list of significant + fixes: + 862225 an E_NOTICE on delete fixed + 861730 (and many duplicates of it) an E_NOTICE on determining the + language in 'auto' lanuage mode for browsers who don't + set HTTP_ACCEPT_LANGUAGE (like Opera). + 861491 (and many duplicates of it) Anonymous form-based logins + often failed due to several E_NOTICE problems. + 856832 IBM LDAP servers refernece SUP attributes by OID, not name. + A patch was provided to accomodate this circumstance. + 860179 Another anonymous form-based login bug. + 858611 (lots of dups of this one) Fixed the error handler so that + it will not cause a "cannot send header information" message. + 844547 A coulpe E_NOTICE bugs in the posix group creation template. + 841816 An E_NOTICE bug during creation of an entry. + 844340 A sprintf error during login + - Many many more bug fixes. + - The schema viewer was also streamlined. + - Support work-around for IBM LDAP Server was added. + * Version 0.9.2, 2003-11-14 * Notes: diff --git a/doc/ROADMAP b/doc/ROADMAP index ad69408..51dc23b 100644 --- a/doc/ROADMAP +++ b/doc/ROADMAP @@ -1,6 +1,12 @@ phpLDAPadmin roadmap 0.9.3 planned features: + Bugfix release. + This release will focus on fixing bugs, adding minor features, and improving stability. + Samba 3.0 support in samba user and machine creation templates + Move template config to a new config file: template_config.php (or something) + +0.9.4 planned features: Complete i18n. All strings localized. 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) @@ -9,9 +15,8 @@ phpLDAPadmin roadmap user oragnizationalUnit posixGroup (view full DNs and browse buttons) - sambaUser + sambaUser (v 2 and 3) 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. @@ -22,10 +27,11 @@ phpLDAPadmin roadmap 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) + Remove all HTML from language files. -0.9.4 planned features: +0.9.5 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. + Object Oriented migration for server and general configuration (ie, add a class Server) diff --git a/documentation.php b/documentation.php new file mode 100644 index 0000000..e6f5624 --- /dev/null +++ b/documentation.php @@ -0,0 +1,45 @@ +phpLDAPadmin Credits"; + echo "
    ";
    +		echo "";
    +		include 'doc/CREDITS';
    +		echo "";
    +		echo "
    "; + echo ""; + echo ""; + exit; + break; + case 'changelog': + echo "

    phpLDAPadmin ChangeLog

    "; + echo "
    ";
    +		echo "";
    +		include 'doc/ChangeLog';
    +		echo "";
    +		echo "
    "; + echo ""; + echo ""; + exit; + break; +} + +?> + +

    phpLDAPadmin documentation

    +

    Stuff you wish you already knew.

    + +

    Extending phpLDAPadmin

    + +

    Creation Templates

    +

    TODO: Write me.

    + +

    Modification Templates

    +

    TODO: Write me.

    + + diff --git a/edit.php b/edit.php index fffdd61..ff3e6ea 100644 --- a/edit.php +++ b/edit.php @@ -15,6 +15,7 @@ */ require realpath( 'common.php' ); +require realpath( 'templates/template_config.php' ); $dn = isset( $_GET['dn'] ) ? $_GET['dn'] : false; $dn !== false or pla_error( $lang['missing_dn_in_query_string'] ); diff --git a/entry_chooser.php b/entry_chooser.php index 4800777..8ad6851 100644 --- a/entry_chooser.php +++ b/entry_chooser.php @@ -4,7 +4,7 @@ require 'common.php'; $container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false; $server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false; -$return_form_element = htmlspecialchars( $_GET['form_element'] ); +$return_form_element = isset( $_GET['form_element'] ) ? htmlspecialchars( $_GET['form_element'] ) : null; include "header.php"; diff --git a/functions.php b/functions.php index 86dfad4..51ead3a 100644 --- a/functions.php +++ b/functions.php @@ -7,6 +7,40 @@ @include 'config.php'; +function login_attr_enabled( $server_id ) +{ + global $servers; + if( isset( $servers[$server_id]['login_attr'] ) && + 0 != strcasecmp( $servers[$server_id]['login_attr'], "dn" ) && + $servers[$server_id]['login_attr'] != "" ) + return true; + else + return false; +} + +/* + * Returns an HTML-beautified version of a DN. + */ +function pretty_print_dn( $dn ) +{ + $dn = pla_explode_dn( $dn ); + if( isset( $dn['count'] ) ) + unset( $dn['count'] ); + foreach( $dn as $i => $element ) { + $element = htmlspecialchars( $element ); + $element = explode( '=', $element, 2 ); + $element = implode( '=', $element ); + $dn[$i] = $element; + } + $dn = implode( ',', $dn ); + + return $dn; +} + + +/* + * Responsible for setting the cookie to indicate that a user has logged in. + */ function set_cookie_login_dn( $server_id, $dn, $password, $anon_bind ) { // cookie_time comes from config.php @@ -26,6 +60,10 @@ function set_cookie_login_dn( $server_id, $dn, $password, $anon_bind ) return true; } +/* + * PLA-only wrapper for setting cookies, which takes into consideration + * configuration values. + */ function pla_set_cookie( $name, $val, $expire=null, $dir=null ) { if( $expire == null ) { @@ -49,6 +87,9 @@ function pla_set_cookie( $name, $val, $expire=null, $dir=null ) } } +/* + * Responsible for removing a cookie after a user logs out. + */ function unset_cookie_login_dn( $server_id ) { global $_SERVER; @@ -163,43 +204,6 @@ function show_hints() 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 @@ -274,7 +278,11 @@ function get_next_uid_number( $server_id ) foreach( $uids as $uid ) $uid_hash[ $uid ] = 1; // start with the least existing uidNumber and add 1 - $uidNumber = intval( $uids[0] ) + 1; + if (isset($servers[$server_id]['auto_uid_number_min'])) { + $uidNumber = $servers[$server_id]['auto_uid_number_min']; + } else { + $uidNumber = intval( $uids[0] ) + 1; + } // this loop terminates as soon as we encounter the next available uidNumber while( isset( $uid_hash[ $uidNumber ] ) ) $uidNumber++; @@ -395,7 +403,10 @@ function get_icon( $server_id, $dn ) // Is it a samba NT machine (is sambaAccount and ends with '$') if( in_array( 'sambaaccount', $object_classes ) && '$' == $rdn{ strlen($rdn) - 1 } ) - return 'nt.png'; + return 'nt_machine.png'; + // Is it a samba user account? + if( in_array( 'sambaaccount', $object_classes ) ) + return 'nt_user.png'; // Is it a person or some type of account/user? elseif( in_array( 'person', $object_classes ) || in_array( 'organizationalperson', $object_classes ) || @@ -665,12 +676,16 @@ function get_entry_system_attrs( $server_id, $dn ) 'structuralObjectClass', 'entryUUID', 'modifytimestamp', 'subschemaSubentry', 'hasSubordinates', '+' ); $search = @ldap_read( $conn, $dn, '(objectClass=*)', $attrs, 0, 0, 0, LDAP_DEREF_ALWAYS ); - if( ! $search ) return false; - $entry = ldap_first_entry( $conn, $search ); + if( ! $entry) + return false; $attrs = ldap_get_attributes( $conn, $entry ); + if( ! $attrs ) + return false; + if( ! isset( $attrs['count'] ) ) + return false; $count = $attrs['count']; unset( $attrs['count'] ); $return_attrs = array(); @@ -966,7 +981,7 @@ function get_rdn( $dn, $include_attrs=0 ) function get_container( $dn ) { $rdn = pla_explode_dn( $dn ); - $container = $rdn[ 1 ]; + $container = @$rdn[ 1 ]; for( $i=2; $i" ); + // This is a work-around for broken imeplementations of ldap_explode_dn() + // that ships with some versions of PHP. It has been known to seg-fault + // when passed the '<' and the '>' characters. + if( '4.2.2' != phpversion() ) + $dn = addcslashes( $dn, "<>" ); + $result = ldap_explode_dn( $dn, $with_attributes ); + //translate hex code into ascii again foreach( $result as $key => $value ) $result[$key] = preg_replace("/\\\([0-9A-Fa-f]{2})/e", "''.chr(hexdec('\\1')).''", $value); diff --git a/header.php b/header.php index 4ce6083..6112da3 100644 --- a/header.php +++ b/header.php @@ -2,7 +2,7 @@ // 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\"" ); + @header( "Content-type: text/html; charset=\"UTF-8\"" ); // XML version and encoding for well-behaved browsers echo "\n"; diff --git a/images/nt.png b/images/nt_machine.png similarity index 100% rename from images/nt.png rename to images/nt_machine.png diff --git a/images/nt_user.png b/images/nt_user.png new file mode 100644 index 0000000..b69a641 Binary files /dev/null and b/images/nt_user.png differ diff --git a/lang/Makefile b/lang/Makefile index 7e63888..cf31591 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -1,84 +1,92 @@ # -# This Makefile recodes source lang files into HTML Unicode. -# You should add your encodings to this file. You need to have GNU Recode -# installed. +# This Makefile (lang/Makefile) converts the source lang files to UTF8 +# coding. You need iconv installed to use it. +# +# ToDo: detect the encoding in the "source" # -# It is important to fix first and last lines of the file -# using 'awk' +# posible detect of the language +# echo `cat de.php | grep "logged_in_as" | sed s/".*="//g | file - | sed s/".*: "//g | sed s/" .*"//g` +# +# or +# +# maybe like this +# cat LANG.php | sed s/"^\/"//g | sed s/".*= "//g | sed s/";.*"//g | grep -v "<"| file - | sed s/".*: "//g | sed s/" .*"//g # DESTDIR=./recoded -TARGETS=${DESTDIR}/ct.php \ +ICONV=iconv +# php is not on all systems in /usr/bin/php +PHP=php + +TARGETS=${DESTDIR}/auto.php \ + ${DESTDIR}/ca.php \ ${DESTDIR}/de.php \ ${DESTDIR}/en.php \ ${DESTDIR}/es.php \ ${DESTDIR}/fr.php \ ${DESTDIR}/it.php \ ${DESTDIR}/nl.php \ - ${DESTDIR}/ru.php + ${DESTDIR}/ru.php -all: prepare ${TARGETS} syntax +default: + @echo "usage:" + @echo " make iconvlang - to generate the lang coding" + @echo " make iconvclean - to remove the utf8-converted file in ${DESTDIR}" + +iconvlang: 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 +syntax: + @echo "Starting syntax" + @which $(PHP) >/dev/null 2>&1 || ( echo "You must have '$(PHP)' installed to use this Makefile, but I could not find it in your path!" && exit 1 ) + @for i in ${TARGETS}; do ${PHP} -l $$i >/dev/null 2>&1 || ( echo "Syntax errors found in $$i!" && exit 1 ); done + @echo "Ending syntax" 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 ) + @echo "Starting prepare" + @which $(ICONV) >/dev/null 2>&1 || ( echo "You must have GNU '$(ICONV)' 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} +iconvclean: + @echo "deleting files "${TARGETS} + @rm -vf ${TARGETS} + @echo "now use 'make iconvlang' to encode, otherwise you could not use phpldapadmin" -${DESTDIR}/ct.php: ct.php - @echo "Recoding ct.php..." - @cat ct.php | recode iso-8859-1..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/ct.php +${DESTDIR}/auto.php: auto.php + @echo "Fixing encoding auto.php to UTF8 "${DESTDIR}/auto.php + @iconv -f iso8859-1 -t utf8 auto.php > ${DESTDIR}/auto.php + + +${DESTDIR}/ca.php: ca.php + @echo "Fixing encoding ca.php to UTF8 "${DESTDIR}/ca.php + @iconv -f iso8859-1 -t utf8 ca.php > ${DESTDIR}/ca.php ${DESTDIR}/de.php: de.php - @echo "Recoding de.php..." - @cat de.php | recode html..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/de.php + @echo "Fixing encoding de.php to UTF8 "${DESTDIR}/de.php + @iconv -f iso8859-1 -t utf8 de.php > ${DESTDIR}/de.php -${DESTDIR}/en.php: en.php - @echo "Recoding en.php..." - @cat en.php | recode html..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/en.php +${DESTDIR}/en.php: en.php + @echo "Fixing encoding en.php to UTF8 "${DESTDIR}/en.php + @iconv -f iso8859-1 -t utf8 en.php > ${DESTDIR}/en.php -${DESTDIR}/es.php: es.php - @echo "Recoding es.php..." - @cat es.php | recode iso-8859-1..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/es.php +${DESTDIR}/es.php: es.php + @echo "Fixing encoding es.php to UTF8 "${DESTDIR}/es.php + @iconv -f iso8859-1 -t utf8 es.php > ${DESTDIR}/es.php -${DESTDIR}/fr.php: fr.php - @echo "Recoding fr.php..." - @cat fr.php | recode html..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/fr.php +${DESTDIR}/fr.php: fr.php + @echo "Fixing encoding fr.php to UTF8 "${DESTDIR}/fr.php + @iconv -f iso8859-1 -t utf8 fr.php > ${DESTDIR}/fr.php -${DESTDIR}/it.php: it.php - @echo "Recoding it.php..." - @cat it.php | recode latin2..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/it.php +${DESTDIR}/it.php: it.php + @echo "Fixing encoding it.php to UTF8 "${DESTDIR}/it.php + @iconv -f iso8859-1 -t utf8 it.php > ${DESTDIR}/it.php -${DESTDIR}/nl.php: nl.php - @echo "Recoding nl.php..." - @cat nl.php | recode latin1..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/nl.php - -${DESTDIR}/ru.php: ru.php - @echo "Recoding ru.php..." - @cat ru.php | recode utf-8..html | \ - awk '{ gsub(">",">"); gsub("<","<"); print $0}' \ - > ${DESTDIR}/ru.php +${DESTDIR}/nl.php: nl.php + @echo "Fixing encoding nl.php to UTF8 "${DESTDIR}/nl.php + @iconv -f iso8859-1 -t utf8 nl.php > ${DESTDIR}/nl.php +${DESTDIR}/ru.php: ru.php + @echo "Fixing encoding ru.php to UTF8 "${DESTDIR}/ru.php + @iconv -f utf8 -t utf8 ru.php > ${DESTDIR}/ru.php \ No newline at end of file diff --git a/lang/auto.php b/lang/auto.php new file mode 100644 index 0000000..04d8c95 --- /dev/null +++ b/lang/auto.php @@ -0,0 +1,42 @@ +"ca" // catalan + ," ca-"=>"ca" // + ," de "=>"de" // german + ," de-"=>"de" // for de-at, de-ch... + ," German "=>"de" // the browser Moz (1.5)submit German instead of de + ," en "=>"en" // englisch + ," en-"=>"en" // for en-us,en-gb,en-ca,.. + ," es "=>"es" // spainish + ," es-"=>"es" // es-cr, es-co,.... + ," fr "=>"fr" // french + ," fr-"=>"fr" // fr-lu,fr-ca,... + ," it "=>"it" // italien + ," it-"=>"it" // for it-ch (italien swiss).. + ," nl "=>"nl" // dutch + ," nl-"=>"nl" // for ne-be, only one? + ," ru "=>"ru" // russian + ," ru-"=>"ru" // ru- exits? + );// all supported languages in this array +// test + +$aHTTP_ACCEPT_LANGUAGE=" ".$HTTP_ACCEPT_LANGUAGE." "; +$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,","," ");// replace , with " " +$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,";"," ");// replace , with " " +$acceptMaxPos=strlen($aHTTP_ACCEPT_LANGUAGE);// initial value, no fit +//echo $aHTTP_ACCEPT_LANGUAGE."\n"; +foreach ($langSupport as $key=>$value) { + $acceptAktPos=strpos($aHTTP_ACCEPT_LANGUAGE,$key); + if ($acceptAktPos!==false // the test contained the substring + && ($acceptAktPos < $acceptMaxPos) // and is better than the one before + ) { $useLang=$value ; $acceptMaxPos=$acceptAktPos;} + // echo "$key=>$value:$acceptAktPos,$acceptMaxPos\n"; +} +//echo "used:$useLang\n"; +include realpath ("$useLang".".php");// this should include from recode/ position +?> diff --git a/lang/ct.php b/lang/ca.php similarity index 98% rename from lang/ct.php rename to lang/ca.php index 787ae1d..42e4f2f 100644 --- a/lang/ct.php +++ b/lang/ca.php @@ -1,6 +1,8 @@ attributeTypes are sup $lang['the_following_matching'] = 'The following matching rules are supported by this LDAP server.'; $lang['the_following_syntaxes'] = 'The following syntaxes are supported by this LDAP server.'; $lang['jump_to_objectclass'] = 'Jump to an objectClass'; -$lang['jump_to_attr'] = 'Jump to an attribute'; +$lang['jump_to_attr'] = 'Jump to an attribute type'; $lang['schema_for_server'] = 'Schema for server'; $lang['required_attrs'] = 'Required Attributes'; $lang['optional_attrs'] = 'Optional Attributes'; @@ -273,6 +273,9 @@ $lang['go_back'] = 'Go back'; // welcome.php $lang['welcome_note'] = 'Use the menu to the left to navigate'; +$lang['credits'] = 'Credits'; +$lang['changelog'] = 'ChangeLog'; +$lang['documentation'] = 'Documentation'; // view_jpeg_photo.php $lang['unsafe_file_name'] = 'Unsafe file name: '; diff --git a/lang/es.php b/lang/es.php index be76f64..c7e38d8 100644 --- a/lang/es.php +++ b/lang/es.php @@ -72,7 +72,7 @@ $lang['attr_name_tooltip'] = 'Haz click para ver la definicion del esquema para $lang['click_to_display'] = 'Haz click para mostrar'; $lang['hidden'] = 'ocultado'; $lang['none'] = 'ninguno'; -$lang['save_changes'] = 'Guardar los canvios'; +$lang['save_changes'] = 'Guardar los cambios'; $lang['add_value'] = 'agregar valor'; $lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo'; $lang['refresh_entry'] = 'Refrescar'; @@ -242,7 +242,7 @@ $lang['update_array_malformed'] = 'el update_array est $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['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?'; $lang['attribute'] = 'Atributo'; $lang['old_value'] = 'Valor viejo'; $lang['new_value'] = 'Valor nuevo'; @@ -254,6 +254,10 @@ $lang['go_back'] = 'Volver atr // welcome.php $lang['welcome_note'] = 'Usa el menú de la izquierda para navegar'; +$lang['credits'] = "Créditos"; +$lang['changelog'] = "Histórico de canvios"; +$lang['documentation'] = "Documentación"; + // view_jpeg_photo.php $lang['unsafe_file_name'] = 'Nombre de archivo inseguro: '; diff --git a/lang/fr.php b/lang/fr.php index a2461d9..da59de7 100644 --- a/lang/fr.php +++ b/lang/fr.php @@ -1,5 +1,5 @@ Pour effacer un attribut, laissez le champs vide et cliquez pour sauvegarder.'; -$lang['attr_schema_hint'] = 'Note: Pour voir le schéma pour un attribut, cliquer sur le nom de l\'attribut.'; -$lang['attrs_modified'] = 'Certains attributs (%s) ont été mdoifiés et sont mis en évidence ci-dessous.'; -$lang['attr_modified'] = 'Un attribut (%s) a été modifié et est mis en évidence ci-dessous.'; -$lang['viewing_read_only'] = 'Voir une entrée en lecture seule.'; -$lang['change_entry_rdn'] = 'Changer le RDN de cette entrée'; -$lang['no_new_attrs_available'] = 'plus d\'attributs disponibles pour cette entrée'; +$lang['attr_schema_hint'] = 'Note: Pour voir le schéma pour un attribut, cliquer sur le nom de l\'attribut.'; +$lang['attrs_modified'] = 'Certains attributs (%s) ont été mdoifiés et sont mis en évidence ci-dessous.'; +$lang['attr_modified'] = 'Un attribut (%s) a été modifié et est mis en évidence ci-dessous.'; +$lang['viewing_read_only'] = 'Voir une entrée en lecture seule.'; +$lang['change_entry_rdn'] = 'Changer le RDN de cette entrée'; +$lang['no_new_attrs_available'] = 'plus d\'attributs disponibles pour cette entré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 à partir d\'un fichier'; +$lang['add_new_binary_attr_tooltip'] = 'Ajouter un nouvel attribut à partir d\'un fichier'; $lang['alias_for'] = 'Alias pour'; -$lang['download_value'] = 'Télécharger le contenu'; +$lang['download_value'] = 'Télécharger le contenu'; $lang['delete_attribute'] = 'Supprimer l\'attribut'; $lang['true'] = 'vrai'; $lang['false'] = 'faux'; @@ -116,12 +116,12 @@ $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 classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.'; -$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.'; -$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.'; -$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.'; -$lang['jump_to_objectclass'] = 'Aller à une classe d\'objet'; -$lang['jump_to_attr'] = 'Aller à un attribut'; +$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.'; +$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.'; +$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.'; +$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.'; +$lang['jump_to_objectclass'] = 'Aller à une classe d\'objet'; +$lang['jump_to_attr'] = 'Aller à un attribut'; $lang['schema_for_server'] = 'Schema pour le serveur'; $lang['required_attrs'] = 'Attributs obligatoires'; $lang['optional_attrs'] = 'Attributs facultatifs'; @@ -129,43 +129,43 @@ $lang['OID'] = 'OID'; $lang['desc'] = 'Description'; $lang['name'] = 'Nom'; $lang['is_obsolete'] = 'Cette classe d\'objet est obsolete'; -$lang['inherits'] = 'hérite'; -$lang['jump_to_this_oclass'] = 'Aller à la définition de cette classe d\'objet'; -$lang['matching_rule_oid'] = 'OID de l\'opérateur'; +$lang['inherits'] = 'hérite'; +$lang['jump_to_this_oclass'] = 'Aller à la définition de cette classe d\'objet'; +$lang['matching_rule_oid'] = 'OID de l\'opérateur'; $lang['syntax_oid'] = 'OID de la syntaxe'; $lang['not_applicable'] = 'not applicable'; -$lang['not_specified'] = 'non spécifié'; +$lang['not_specified'] = 'non spécifié'; // Deleting entries -$lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.'; -$lang['you_must_specify_a_dn'] = 'Un DN doit être spécifié'; -$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entrée: %s'; +$lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.'; +$lang['you_must_specify_a_dn'] = 'Un DN doit être spécifié'; +$lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entrée: %s'; // Adding objectClass form $lang['new_required_attrs'] = 'Nouveaux Attributs Obligatoires'; -$lang['requires_to_add'] = 'Cette action nécessite d\'ajouter'; +$lang['requires_to_add'] = 'Cette action nécessite d\'ajouter'; $lang['new_attributes'] = 'nouveaux attributs'; -$lang['new_required_attrs_instructions'] = 'Instructions: Afin d\'ajouter cette classe d\'objet, vous devez spécifier'; +$lang['new_required_attrs_instructions'] = 'Instructions: Afin d\'ajouter cette classe d\'objet, vous devez spé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é(DN)'; -$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises à jour si le serveur est en lecture seule'; +$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entré(DN)'; +$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises à jour si le serveur est en lecture seule'; $lang['bad_server_id'] = 'Id de serveur invalide'; -$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaî, vérifier votre configuration.'; +$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaî, vé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ération ldap_mod_add.'; +$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'opération ldap_mod_add.'; $lang['bad_server_id_underline'] = 'serveur_id invalide: '; -$lang['success'] = 'Succès'; +$lang['success'] = 'Succès'; $lang['server_colon_pare'] = 'Serveur: '; $lang['look_in'] = 'Recherche dans: '; -$lang['missing_server_id_in_query_string'] = 'Aucun serveur ID spécifié dans la ligne de requête !'; -$lang['missing_dn_in_query_string'] = 'Aucun DN spécifié dans la ligne de requête !'; +$lang['missing_server_id_in_query_string'] = 'Aucun serveur ID spécifié dans la ligne de requête !'; +$lang['missing_dn_in_query_string'] = 'Aucun DN spécifié dans la ligne de requête !'; $lang['back_up_p'] = 'Retour...'; -$lang['no_entries'] = 'aucune entrée'; -$lang['not_logged_in'] = 'Vous n\'ê pas loggué'; -$lang['could_not_det_base_dn'] = 'Impossible de déterminer le DN de base'; +$lang['no_entries'] = 'aucune entrée'; +$lang['not_logged_in'] = 'Vous n\'êtes pas loggué'; +$lang['could_not_det_base_dn'] = 'Impossible de déterminer le DN de base'; // Add value form $lang['add_new'] = 'Ajout d\'une nouvelle valeur '; @@ -174,102 +174,102 @@ $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
    ' . - 'défini une règle EQUALITY pour cet attribut auprès du serveur LDAP.'; + 'défini une règle EQUALITY pour cet attribut auprè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-être besoin d\'introduire de nouveaux attributs requis pour cette classe d\'objet'; +$lang['new_required_attrs_note'] = 'Note: vous aurez peut-êre besoin d\'introduire de nouveaux attributs requis pour cette classe d\'objet'; $lang['syntax'] = 'Syntaxe'; //Copy.php -$lang['copy_server_read_only'] = 'Des mises à jours ne peuvent pas être effectuées si le serveur est en lecture seule'; -$lang['copy_dest_dn_blank'] = 'Vous avez laissé le DN de destination vide.'; -$lang['copy_dest_already_exists'] = 'L\'entrée de destination (%s) existe déjà.'; +$lang['copy_server_read_only'] = 'Des mises à jours ne peuvent pas être effectuées si le serveur est en lecture seule'; +$lang['copy_dest_dn_blank'] = 'Vous avez laissé le DN de destination vide.'; +$lang['copy_dest_already_exists'] = 'L\'entrée de destination (%s) existe déjà.'; $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écursive'; -$lang['copy_building_snapshot'] = 'Construction de l\'image de l\'arborscence à copier... '; -$lang['copy_successful_like_to'] = 'Copie réussite! Voulez-vous '; -$lang['copy_view_new_entry'] = 'éditer cette nouvelle entrée'; +$lang['copy_recursive_copy_progress'] = 'Progression de la copie récursive'; +$lang['copy_building_snapshot'] = 'Construction de l\'image de l\'arborscence à copier... '; +$lang['copy_successful_like_to'] = 'Copie réussite! Voulez-vous '; +$lang['copy_view_new_entry'] = 'éditer cette nouvelle entrée'; $lang['copy_failed'] = 'Echec lors de la copie de: '; //edit.php -$lang['missing_template_file'] = 'Avertissement: le fichier modèle est manquant, '; -$lang['using_default'] = 'Utilisation du modèle par défaut.'; +$lang['missing_template_file'] = 'Avertissement: le fichier modèle est manquant, '; +$lang['using_default'] = 'Utilisation du modèle par dé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ée à créer lors de la copie de l\'entrée source'; +$lang['copyf_dest_dn_tooltip'] = 'Le DN de la nouvelle entrée à créer lors de la copie de l\'entrée source'; $lang['copyf_dest_server'] = 'Destination Serveur'; -$lang['copyf_note'] = 'Note: La copie entre différents serveurs fonctionne seulement si il n\'y a pas de violation de schéma'; -$lang['copyf_recursive_copy'] = 'Copier récursivement les sous-entrées de cet object.'; +$lang['copyf_note'] = 'Note: La copie entre différents serveurs fonctionne seulement si il n\'y a pas de violation de schéma'; +$lang['copyf_recursive_copy'] = 'Copier récursivement les sous-entrées de cet object.'; //create.php -$lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.'; +$lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.'; $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ée.'; +$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectuée.'; //create_form.php $lang['createf_create_object'] = 'Creation d\'un objet'; -$lang['createf_choose_temp'] = 'Choix d\'un modèle'; -$lang['createf_select_temp'] = 'Selectionner un modèle pour la procédure de création'; +$lang['createf_choose_temp'] = 'Choix d\'un modèle'; +$lang['createf_select_temp'] = 'Selectionner un modèle pour la procédure de création'; $lang['createf_proceed'] = 'Continuer'; //creation_template.php $lang['ctemplate_on_server'] = 'Sur le serveur'; -$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.'; -$lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gestionnaire de'; -$lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.'; +$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.'; +$lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gestionnaire de'; +$lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.'; //search.php -$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore loggé auprès du serveur sélectionné. Vous ne pouvez y effectuer des recherches.'; +$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore loggé auprès du serveur sélectionné. 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ère non reconnu: '; -$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres critère à la liste, soyez cetain d\'éditer search.php afin de pouvoir les gérer.'; -$lang['entries_found'] = 'Entrées trouvée: '; -$lang['filter_performed'] = 'Filtre utilisé: '; -$lang['search_duration'] = 'Recherche effectuée par phpLDAPadmin en'; +$lang['unrecognized_criteria_option'] = 'Critère non reconnu: '; +$lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres critère à la liste, soyez cetain d\'éditer search.php afin de pouvoir les gérer.'; +$lang['entries_found'] = 'Entrées trouvée: '; +$lang['filter_performed'] = 'Filtre utilisé: '; +$lang['search_duration'] = 'Recherche effectuée par phpLDAPadmin en'; $lang['seconds'] = 'secondes'; // search_form_advanced.php -$lang['scope_in_which_to_search'] = 'Portée de la recherche'; +$lang['scope_in_which_to_search'] = 'Porté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 à afficher dans les résultats(séparés par des virgules)'; -$lang['show_attributes'] = 'Attributs à afficher'; +$lang['list_of_attrs_to_display_in_results'] = 'Une liste des attributs à afficher dans les résultats(séparés par des virgules)'; +$lang['show_attributes'] = 'Attributs à afficher'; // search_form_simple.php -$lang['search_for_entries_whose'] = 'Chercher les entrées dont:'; +$lang['search_for_entries_whose'] = 'Chercher les entrées dont:'; $lang['equals'] = 'est egal à;'; $lang['starts with'] = 'commence par'; $lang['contains'] = 'contient'; $lang['ends with'] = 'se termine par'; -$lang['sounds like'] = 'ressemble à'; +$lang['sounds like'] = 'ressemble à'; // server_info.php -$lang['could_not_fetch_server_info'] = 'Impossible de récupérer les informations concernant le serveur Ldap'; +$lang['could_not_fetch_server_info'] = 'Impossible de récupérer les informations concernant le serveur Ldap'; $lang['server_info_for'] = 'Informations pour le serveur: '; -$lang['server_reports_following'] = 'Le serveur a rapporté les informations suivantes'; +$lang['server_reports_following'] = 'Le serveur a rapporté 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é. Ceci est peut-être un bogue de phpLDAPadmin. Pourriez-vous effectuer un rapport de bogue, s\'il vous plaît.'; -$lang['could_not_perform_ldap_modify'] = 'L\'opération ldap_modify n\'a pu être effectuée.'; +$lang['update_array_malformed'] = 'update_array n\'est pas bien formé. Ceci est peut-être un bogue de phpLDAPadmin. Pourriez-vous effectuer un rapport de bogue, s\'il vous plaît.'; +$lang['could_not_perform_ldap_modify'] = 'L\'opération ldap_modify n\'a pu être effectué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é]'; +$lang['attr_deleted'] = '[attribut supprimé]'; $lang['commit'] = 'Valider'; $lang['cancel'] = 'Annuler'; -$lang['you_made_no_changes'] = 'Aucun changement n\'a été effectué'; +$lang['you_made_no_changes'] = 'Aucun changement n\'a été effectué'; $lang['go_back'] = 'Retour'; // welcome.php @@ -277,48 +277,48 @@ $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é: '; +$lang['no_such_file'] = 'Aucun fichier trouvé: '; //function.php -$lang['auto_update_not_setup'] = 'auto_uid_numbers a été activé pour %s dans votre configuration, - mais vous n\'avez pas spécifié l\' auto_uid_number_mechanism. Veuiller corriger - ce problème.'; -$lang['uidpool_not_set'] = 'Vous avez spécifié lauto_uid_number_mechanism comme uidpool - dans la configuration du serveur %s, mais vous n\'avez pas spécifié de valeur pour - auto_uid_number_uid_pool_dn. Veuillez le spécifier avant de continuer.'; -$lang['uidpool_not_exist'] = 'Le uidPool que vous avez spécifié dans votre configuration (%s) +$lang['auto_update_not_setup'] = 'auto_uid_numbers a été activé pour %s dans votre configuration, + mais vous n\'avez pas spécifié l\' auto_uid_number_mechanism. Veuiller corriger + ce problème.'; +$lang['uidpool_not_set'] = 'Vous avez spécifié lauto_uid_number_mechanism comme uidpool + dans la configuration du serveur %s, mais vous n\'avez pas spécifié de valeur pour + auto_uid_number_uid_pool_dn. Veuillez le spécifier avant de continuer.'; +$lang['uidpool_not_exist'] = 'Le uidPool que vous avez spécifié dans votre configuration (%s) n\'existe pas.'; -$lang['specified_uidpool'] = 'L\'auto_uid_number_mechanism a été défini à search dans votre - configuration pour le serveur %s, mais vous n\'avez pas défini - auto_uid_number_search_base. Veuillez le spécifier avant de continuer.'; -$lang['auto_uid_invalid_value'] = 'Une valeur non valide a été spécifiée pour auto_uid_number_mechanism (%s) +$lang['specified_uidpool'] = 'L\'auto_uid_number_mechanism a été défini à search dans votre + configuration pour le serveur %s, mais vous n\'avez pas défini + auto_uid_number_search_base. Veuillez le spécifier avant de continuer.'; +$lang['auto_uid_invalid_value'] = 'Une valeur non valide a été spécifiée pour auto_uid_number_mechanism (%s) dans votre configuration. Seul uidpool et search sont valides. - Veuillez corriger ce problème.'; + Veuillez corriger ce problème.'; $lang['error_auth_type_config'] = 'Erreur: Vous avez une erreur dans votre fichier de configuration.Les valeurs - supportées pour \'auth_type\' sont \'config\' et \'form\' dans la section $servers. - Vous avez mis \'%s\', ce qui n\'est pas autorisé.'; + supportées pour \'auth_type\' sont \'config\' et \'form\' dans la section $servers. + Vous avez mis \'%s\', ce qui n\'est pas autorisé.'; $lang['php_install_not_supports_tls'] = 'Votre installation PHP ne supporte pas TLS.'; -$lang['could_not_start_tls'] = 'Impossible de démarrer TLS.
    Veuillez,s\'il vous plaît, vérifier la configuration de votre serveur LDAP.'; +$lang['could_not_start_tls'] = 'Impossible de démarrer TLS.
    Veuillez,s\'il vous plaît, vé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'] = 'LDAP said: %s

    '; $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éer un hash SHA.'; +$lang['install_no_mash'] = 'Votre installation PHP ne supporte pas la fonction mhash(). Impossible de créer un hash SHA.'; $lang['jpeg_contains_errors'] = 'jpegPhoto contient des erreurs
    '; -$lang['ferror_number'] = 'Numéro de l\'erreur: %s (%s)

    '; +$lang['ferror_number'] = 'Numéro de l\'erreur: %s (%s)

    '; $lang['ferror_discription'] = 'Description: %s

    '; -$lang['ferror_number_short'] = 'Numé de l\'erreur: %s

    '; +$lang['ferror_number_short'] = 'Numé de l\'erreur: %s

    '; $lang['ferror_discription_short'] = 'Description: (pas de description disponible)
    '; -$lang['ferror_submit_bug'] = 'Est-ce un bogue de phpLDAPadmin? Si c\'est le cas,veuillez s\'il vous plaît le rapporter.'; -$lang['ferror_unrecognized_num'] = 'Numéro de l\'erreur non reconnu: '; +$lang['ferror_submit_bug'] = 'Est-ce un bogue de phpLDAPadmin? Si c\'est le cas,veuillez s\'il vous plaît le rapporter.'; +$lang['ferror_unrecognized_num'] = 'Numéro de l\'erreur non reconnu: '; $lang['ferror_nonfatil_bug'] = '
    + Vous avez trouvé un bogue non fatal dans phpLDAPAdmin!
    - Vous avez trouvé un bogue non fatal dans phpLDAPAdmin!
    Erreur:%s (%s)
    Fichier:
    Erreur:%s (%s)
    Fichier: %s ligne %s, origine de l\'appel %s
    Versions:PLA: %s, PHP: %s, SAPI: %s
    Serveur Web:%s
    - S\'il vous plaît, veuillez rapporter ce bogue en cliquant ici.

    '; -$lang['ferror_congrats_found_bug'] = 'Félicitations! Vous avez trouvé un bogue dans phpLDAPadmin.

    + S\'il vous plaît, veuillez rapporter ce bogue en cliquant ici.
    '; +$lang['ferror_congrats_found_bug'] = 'Félicitations! Vous avez trouvé un bogue dans phpLDAPadmin.

    @@ -331,11 +331,11 @@ $lang['ferror_congrats_found_bug'] = 'Félicitations! Vous avez trouv&eacu
    Erreur:%s
    Niveau:%s
    Serveur Webr:%s

    - S\'il vous plaît, veuillez rapporter ce bogue en cliquant ici!'; + S\'il vous plaî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électionner un fichier LDIF:'; +$lang['select_ldif_file'] = 'Sélectionner un fichier LDIF:'; $lang['select_ldif_file_proceed'] = 'Continuer >>'; //lldif_import @@ -343,13 +343,13 @@ $lang['add_action'] = 'Ajout de...'; $lang['delete_action'] = 'Supression de...'; $lang['rename_action'] = 'Renommage de...'; $lang['modify_action'] = 'Modification de...'; -$lang['failed'] = 'échec'; +$lang['failed'] = 'é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éro de ligne'; +$lang['ldif_line_number'] = 'Numéro de ligne'; $lang['ldif_line'] = 'Ligne'; ?> diff --git a/lang/recoded/auto.php b/lang/recoded/auto.php new file mode 100644 index 0000000..8acdb9d --- /dev/null +++ b/lang/recoded/auto.php @@ -0,0 +1,40 @@ +"ct" // catalan is this right? shouldn't it be ca? + ," ct-"=>"ct" // + ," de "=>"de" // german + ," de-"=>"de" // for de-at, de-ch... + ," German "=>"de" // the browser Moz (1.5)submit German instead of de + ," en "=>"en" // englisch + ," en-"=>"en" // for en-us,en-gb,en-ca,.. + ," fr "=>"fr" // french + ," fr-"=>"fr" // fr-lu,fr-ca,... + ," it "=>"it" // italien + ," it-"=>"it" // for it-ch (italien swiss).. + ," nl "=>"nl" // dutch + ," nl-"=>"nl" // for ne-be, only one? + ," ru "=>"ru" // russian + ," ru-"=>"ru" // ru- exits? + );// all supported languages in this array +// test + +$aHTTP_ACCEPT_LANGUAGE=" ".$HTTP_ACCEPT_LANGUAGE." "; +$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,","," ");// replace , with " " +$aHTTP_ACCEPT_LANGUAGE=strtr($aHTTP_ACCEPT_LANGUAGE,";"," ");// replace , with " " +$acceptMaxPos=strlen($aHTTP_ACCEPT_LANGUAGE);// initial value, no fit +//echo $aHTTP_ACCEPT_LANGUAGE."\n"; +foreach ($langSupport as $key=>$value) { + $acceptAktPos=strpos($aHTTP_ACCEPT_LANGUAGE,$key); + if ($acceptAktPos!==false // the test contained the substring + && ($acceptAktPos < $acceptMaxPos) // and is better than the one before + ) { $useLang=$value ; $acceptMaxPos=$acceptAktPos;} + // echo "$key=>$value:$acceptAktPos,$acceptMaxPos\n"; +} +//echo "used:$useLang\n"; +include realpath ("$useLang".".php");// this should include from recode/ position +?> diff --git a/lang/recoded/ct.php b/lang/recoded/ca.php similarity index 65% rename from lang/recoded/ct.php rename to lang/recoded/ca.php index dbadb96..881faa7 100644 --- a/lang/recoded/ct.php +++ b/lang/recoded/ca.php @@ -1,8 +1,10 @@ Per a borrar un atribut, buida el formulari de texte i fes click a Desar.'; $lang['attr_schema_hint'] = 'Pista: Per veure l\'esquema d\'un atribut, 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['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['alias_for'] = 'Sinònim per a'; $lang['download_value'] = 'Descarregar valor'; $lang['delete_attribute'] = 'Esborrar atribut'; $lang['true'] = 'veritat'; @@ -96,19 +98,19 @@ $lang['none_remove_value'] = 'cap, esborrar valor'; $lang['really_delete_attribute'] = 'Esborrar realment l\'atribut?'; // Schema browser -$lang['the_following_objectclasses'] = 'Les següents ObjectClass són presents en aquest servidor LDAP.'; -$lang['the_following_attributes'] = 'Les següents attributeTypes són presents en aquest servidor LDAP.'; -$lang['the_following_matching'] = 'Les següents matching rules són presents en aquest servidor LDAP.'; -$lang['the_following_syntaxes'] = 'Les següents sintaxis són presents en aquest servidor LDAP.'; +$lang['the_following_objectclasses'] = 'Les següents ObjectClass són presents en aquest servidor LDAP.'; +$lang['the_following_attributes'] = 'Les següents attributeTypes són presents en aquest servidor LDAP.'; +$lang['the_following_matching'] = 'Les següents matching rules són presents en aquest servidor LDAP.'; +$lang['the_following_syntaxes'] = 'Les següents sintaxis 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['desc'] = 'Descripció'; $lang['name'] = 'Nom'; -$lang['is_obsolete'] = 'Aquesta ObjectClass és obsoleta'; +$lang['is_obsolete'] = 'Aquesta ObjectClass és obsoleta'; $lang['inherits'] = 'Hereda'; $lang['jump_to_this_oclass'] = 'Saltar a aquesta ObjectClass'; $lang['matching_rule_oid'] = 'OID de Matching Rule'; @@ -123,28 +125,28 @@ $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['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['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['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['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['not_logged_in'] = 'No estàs autenticat'; $lang['could_not_det_base_dn'] = 'No he pogut determinar la base DN'; // Add value form @@ -154,20 +156,20 @@ $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['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_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_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_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: '; @@ -179,35 +181,35 @@ $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'] = '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_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é?'; +$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 %s.'; $lang['create_redirecting'] = 'Redirigint'; -$lang['create_here'] = 'aquí'; +$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_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ó\'.'; +$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['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: '; @@ -219,7 +221,7 @@ $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['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'; @@ -233,14 +235,14 @@ $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.'; +$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.'; +$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?'; @@ -254,70 +256,74 @@ $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'; +$lang['welcome_note'] = 'Fes anar el menú de l\'esquerra per a navegar'; +$lang['credits'] = "Crèdits"; +$lang['changelog'] = "Històric de canvis"; +$lang['documentation'] = "Documentació"; + // 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 %s a la teva configuració, +$lang['auto_update_not_setup'] = 'Has activat els auto_uid_numbers per %s 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\'auto_uid_number_mechanism com uidpool - a la teva configuració per al servidor %s, pero no has especificat el + a la teva configuració per al servidor %s, 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ó (%s) +$lang['uidpool_not_exist'] = 'Sembla ser que el uidPool que has especificat a la teva configuració (%s) no existeix.'; $lang['specified_uidpool'] = 'Has especificat l\'auto_uid_number_mechanism com search a la teva - configuració per al servidor %s, pero no has especificat el + configuració per al servidor %s, pero no has especificat el auto_uid_number_search_base. 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 (%s) - a la teva configuració. Sols uidpool i search son vàlids. +$lang['auto_uid_invalid_value'] = 'Has especificat un valor no vàlid per a l\'auto_uid_number_mechanism (%s) + a la teva configuració. Sols uidpool i search 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.
    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'] = 'LDAP diguè: %s

    '; +$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.
    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'] = 'LDAP diguè: %s

    '; $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
    '; -$lang['ferror_number'] = 'Error número: %s (%s)

    '; -$lang['ferror_discription'] = 'Descripció: %s

    '; -$lang['ferror_number_short'] = 'Error número: %s

    '; -$lang['ferror_discription_short'] = 'Descripció: (no hi ha descripció)
    '; -$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho és, si us plau diguen\'s-ho.'; -$lang['ferror_unrecognized_num'] = 'Número d\'error desconegut: '; +$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
    '; +$lang['ferror_number'] = 'Error número: %s (%s)

    '; +$lang['ferror_discription'] = 'Descripció: %s

    '; +$lang['ferror_number_short'] = 'Error número: %s

    '; +$lang['ferror_discription_short'] = 'Descripció: (no hi ha descripció)
    '; +$lang['ferror_submit_bug'] = 'Es una errada del phpLDAPadmin? Si ho és, si us plau diguen\'s-ho.'; +$lang['ferror_unrecognized_num'] = 'Número d\'error desconegut: '; $lang['ferror_nonfatil_bug'] = '
    -
    Has trobat un error fatal del phpLDAPadmin!
    Error:%s (%s)
    Arxiu:%s línia %s, caller %s
    Versions:PLA: %s, PHP: %s, SAPI: %s + %s línia %s, caller %s
    Versions:PLA: %s, PHP: %s, SAPI: %s
    Servidor Web:%s
    - Envía aquesta errada fent click aquí.

    '; + Envía aquesta errada fent click aquí.
    '; $lang['ferror_congrats_found_bug'] = 'Felicitats! Has trobat una errada al phpLDAPadmin.

    - + - - + +
    Error:%s
    Nivell:%s
    Arxiu:%s
    Línia:%s
    Línia:%s
    Caller:%s
    Versió PLA:%s
    Versió PHP:%s
    Versió PLA:%s
    Versió PHP:%s
    PHP SAPI:%s
    Servidor Web:%s

    - Si us plau envía aquesta errada fent click abaix!'; + 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;'; +$lang['select_ldif_file_proceed'] = 'Procedir >>'; //ldif_import $lang['add_action'] = 'Afegint...'; @@ -331,7 +337,7 @@ $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:'; +$lang['ldif_line_number'] = 'Línia Número:'; +$lang['ldif_line'] = 'Línia:'; ?> diff --git a/lang/recoded/de.php b/lang/recoded/de.php index dbbe09f..489035f 100644 --- a/lang/recoded/de.php +++ b/lang/recoded/de.php @@ -1,7 +1,7 @@ + * Ãœbersetzung von Marius Rieder * Uwe Ebel * Modifikationen von Dieter Kluenter */ @@ -206,7 +206,7 @@ $lang['create_could_not_add'] = 'Konnte das Objekt dem LDAP-Server nicht hinzuf& $lang['createf_create_object'] = 'Erzeuge einen neuen Eintag';//"Create Object'; $lang['createf_choose_temp'] = 'Vorlage wählen';//"Choose a template'; $lang['createf_select_temp'] = 'Wählen sie eine Vorlage für das Objekt';//"Select a template for the creation process'; -$lang['createf_proceed'] = 'Weiter';//"Proceed >>'; +$lang['createf_proceed'] = 'Weiter';//"Proceed >>'; //creation_template.php $lang['ctemplate_on_server'] = 'Auf dem Server';//"On server'; @@ -265,6 +265,9 @@ $lang['go_back'] = 'Zurück';//'Go back'; // welcome.php $lang['welcome_note'] = 'Benützen sie das Menu auf der linken Seite zur Navigation.';//'Use the menu to the left to navigate'; +$lang['credits'] = 'Vorspann';//'Credits'; +$lang['changelog'] = 'Änderungsdatei';//'ChangeLog'; +$lang['documentation'] = 'Dokumentation';// 'Documentation'; // view_jpeg_photo.php $lang['unsafe_file_name'] = 'Unsicherer Dateiname:';//'Unsafe file name: '; @@ -306,7 +309,7 @@ $lang['ferror_congrats_found_bug'] = '
    >'; +$lang['select_ldif_file_proceed'] = 'Ausführen >>';//'Proceed >>'; //ldif_import $lang['add_action'] = 'Hinzufügen...';//'Adding...'; diff --git a/lang/recoded/en.php b/lang/recoded/en.php index f112033..bba4041 100644 --- a/lang/recoded/en.php +++ b/lang/recoded/en.php @@ -273,6 +273,9 @@ $lang['go_back'] = 'Go back'; // welcome.php $lang['welcome_note'] = 'Use the menu to the left to navigate'; +$lang['credits'] = 'Credits'; +$lang['changelog'] = 'ChangeLog'; +$lang['documentation'] = 'Documentation'; // view_jpeg_photo.php $lang['unsafe_file_name'] = 'Unsafe file name: '; @@ -335,7 +338,7 @@ $lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDA //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 >>'; +$lang['select_ldif_file_proceed'] = 'Proceed >>'; //ldif_import $lang['add_action'] = 'Adding...'; diff --git a/lang/recoded/es.php b/lang/recoded/es.php index 3e4018f..5bc9cb3 100644 --- a/lang/recoded/es.php +++ b/lang/recoded/es.php @@ -1,13 +1,13 @@ Para borrar un atributo, vacía el formulario de texto y haz click en Guardar.'; +$lang['delete_hint'] = 'Pista: Para borrar un atributo, vacía el formulario de texto y haz click en Guardar.'; $lang['attr_schema_hint'] = 'Pista: Para ver el esquema de un atributo, 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['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['alias_for'] = 'Sinónimo para'; $lang['download_value'] = 'Descargar valor'; $lang['delete_attribute'] = 'Borrar atributo'; $lang['true'] = 'verdad'; @@ -96,17 +96,17 @@ $lang['none_remove_value'] = 'ningo, borrar valor'; $lang['really_delete_attribute'] = 'Borrar realmente el atributo?'; // Schema browser -$lang['the_following_objectclasses'] = 'Los siguientes ObjectClass están presentes en este servidor LDAP.'; -$lang['the_following_attributes'] = 'Los siguientes attributeTypes están presentes en este servidor LDAP.'; -$lang['the_following_matching'] = 'Los siguientes matching rules están presentes en este servidor LDAP.'; -$lang['the_following_syntaxes'] = 'Los siguientes sintaxis están presentes en este servidor LDAP.'; +$lang['the_following_objectclasses'] = 'Los siguientes ObjectClass están presentes en este servidor LDAP.'; +$lang['the_following_attributes'] = 'Los siguientes attributeTypes están presentes en este servidor LDAP.'; +$lang['the_following_matching'] = 'Los siguientes matching rules están presentes en este servidor LDAP.'; +$lang['the_following_syntaxes'] = 'Los siguientes sintaxis 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['desc'] = 'Descripción'; $lang['name'] = 'Nom'; $lang['is_obsolete'] = 'Esta ObjectClass es obsoleta'; $lang['inherits'] = 'Hereda'; @@ -123,7 +123,7 @@ $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['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.'; @@ -131,20 +131,20 @@ $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['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['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['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['not_logged_in'] = 'No estás autenticado'; $lang['could_not_det_base_dn'] = 'No he podido determinar la base DN'; // Add value form @@ -154,13 +154,13 @@ $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['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_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.'; @@ -183,34 +183,34 @@ $lang['copyf_dest_dn'] = 'DN de destino'; $lang['copyf_dest_dn_tooltip'] = 'El DN entero de la nueva entrada a ser creada quan se copie la entrada fuente'; $lang['copyf_dest_server'] = 'Servidor de destino'; $lang['copyf_note'] = 'Nota: Copiar entre dos servidores funciona solamente si no hay violaciones del esquema.'; -$lang['copyf_recursive_copy'] = 'Borrar todos los hijos recurentemente también?'; +$lang['copyf_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 %s.'; $lang['create_redirecting'] = 'Redirigiendo'; -$lang['create_here'] = 'aquí'; +$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_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\'.'; +$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['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['search_duration'] = 'Búsqueda realitzada para phpLDAPadmin a'; $lang['seconds'] = 'segundos'; // search_form_advanced.php @@ -218,8 +218,8 @@ $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['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'; @@ -232,104 +232,108 @@ $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['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.'; +$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['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?'; $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'; +$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'; +$lang['welcome_note'] = 'Usa el menú de la izquierda para navegar'; +$lang['credits'] = "Créditos"; +$lang['changelog'] = "Histórico de canvios"; +$lang['documentation'] = "Documentación"; + // 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 %s en tu configuración, +$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para %s 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 auto_uid_number_mechanism como uidpool - en tu configuración para el servidor %s, pero no has especificado el + en tu configuración para el servidor %s, 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 (%s) +$lang['uidpool_not_exist'] = 'Parece ser que el uidPool que has especificado en tu configuración (%s) no existe.'; $lang['specified_uidpool'] = 'Has especificado el auto_uid_number_mechanism como search en tu - configuración para el servidor %s, pero no has especificado el + configuración para el servidor %s, pero no has especificado el auto_uid_number_search_base. Por favor especificalo antes de proceder.'; -$lang['auto_uid_invalid_value'] = 'Has especificado un valor no válido para el auto_uid_number_mechanism (%s) - en tu configuración. Solo uidpool y search son válidos. +$lang['auto_uid_invalid_value'] = 'Has especificado un valor no válido para el auto_uid_number_mechanism (%s) + en tu configuración. Solo uidpool y search 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.
    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['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.
    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'] = 'LDAP dijo: %s

    '; $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['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
    '; -$lang['ferror_number'] = 'Error número: %s (%s)

    '; -$lang['ferror_discription'] = 'Descripción: %s

    '; -$lang['ferror_number_short'] = 'Error número: %s

    '; -$lang['ferror_discription_short'] = 'Descripción: (no hay descripción)
    '; -$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si así es, por favor dínoslo.'; -$lang['ferror_unrecognized_num'] = 'Número de error desconocido: '; +$lang['ferror_number'] = 'Error número: %s (%s)

    '; +$lang['ferror_discription'] = 'Descripción: %s

    '; +$lang['ferror_number_short'] = 'Error número: %s

    '; +$lang['ferror_discription_short'] = 'Descripción: (no hay descripción)
    '; +$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si así es, por favor dínoslo.'; +$lang['ferror_unrecognized_num'] = 'Número de error desconocido: '; $lang['ferror_nonfatil_bug'] = '
    -
    Has encontrado un error fatal del phpLDAPadmin!
    Error:%s (%s)
    Archivo:%s línea %s, caller %s
    Versiones:PLA: %s, PHP: %s, SAPI: %s + %s línea %s, caller %s
    Versiones:PLA: %s, PHP: %s, SAPI: %s
    Servidor Web:%s
    - Envía este error haciendo click aquí.

    '; + Envía este error haciendo click aquí.

    '; $lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el phpLDAPadmin.

    - + - - + +
    Error:%s
    Nivel:%s
    Archivo:%s
    Línea:%s
    Línea:%s
    Caller:%s
    Versión PLA:%s
    Versión PHP:%s
    Versión PLA:%s
    Versión PHP:%s
    PHP SAPI:%s
    Servidor Web:%s

    - Por favor envía este error haciendo click abajo!'; + 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;'; +$lang['select_ldif_file_proceed'] = 'Proceder >>'; //ldif_import -$lang['add_action'] = 'Añadiendo...'; +$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_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_number'] = 'Linea Número:'; $lang['ldif_line'] = 'Linea:'; ?> diff --git a/lang/recoded/fr.php b/lang/recoded/fr.php index 7e870c0..7707bf8 100644 --- a/lang/recoded/fr.php +++ b/lang/recoded/fr.php @@ -56,7 +56,7 @@ $lang['import_from_ldif'] = 'Importer des entrées à partir d\'un f $lang['logout_of_this_server'] = 'Se dé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éterminée.'; +$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être déterminée.'; $lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a été configuré de telle sorte que la racine ne soit pas révelée.'; $lang['please_specify_in_config'] = 'Veuillez le spécifier dans le fichier config.php'; $lang['create_new_entry_in'] = 'Créer une nouvelle entrée dans'; @@ -138,7 +138,7 @@ $lang['not_specified'] = 'non spécifié'; // Deleting entries $lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.'; -$lang['you_must_specify_a_dn'] = 'Un DN doit être spécifié'; +$lang['you_must_specify_a_dn'] = 'Un DN doit être spécifié'; $lang['could_not_delete_entry'] = 'Impossible de supprimer l\'entrée: %s'; // Adding objectClass form @@ -180,7 +180,7 @@ $lang['new_required_attrs_note'] = 'Note: vous aurez peut-être besoin d\'i $lang['syntax'] = 'Syntaxe'; //Copy.php -$lang['copy_server_read_only'] = 'Des mises à jours ne peuvent pas être effectuées si le serveur est en lecture seule'; +$lang['copy_server_read_only'] = 'Des mises à jours ne peuvent pas être effectuées si le serveur est en lecture seule'; $lang['copy_dest_dn_blank'] = 'Vous avez laissé le DN de destination vide.'; $lang['copy_dest_already_exists'] = 'L\'entrée de destination (%s) existe déjà.'; $lang['copy_dest_container_does_not_exist'] = 'Le conteneur de destination (%s) n\'existe pas.'; @@ -209,7 +209,7 @@ $lang['copyf_recursive_copy'] = 'Copier récursivement les sous-entr&eacut $lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.'; $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ée.'; +$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectuée.'; //create_form.php $lang['createf_create_object'] = 'Creation d\'un objet'; @@ -224,7 +224,7 @@ $lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gest $lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.'; //search.php -$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore loggé auprès du serveur sélectionné. Vous ne pouvez y effectuer des recherches.'; +$lang['you_have_not_logged_into_server'] = 'Vous ne vous êtes pas encore loggé auprès du serveur sélectionné. 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ère non reconnu: '; $lang['if_you_want_to_add_criteria'] = 'Si vous voulez ajouter vos propres critère à la liste, soyez cetain d\'éditer search.php afin de pouvoir les gérer.'; @@ -245,7 +245,7 @@ $lang['show_attributes'] = 'Attributs à afficher'; // search_form_simple.php $lang['search_for_entries_whose'] = 'Chercher les entrées dont:'; -$lang['equals'] = 'est egal à;'; +$lang['equals'] = 'est egal à;'; $lang['starts with'] = 'commence par'; $lang['contains'] = 'contient'; $lang['ends with'] = 'se termine par'; @@ -259,7 +259,7 @@ $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é. Ceci est peut-être un bogue de phpLDAPadmin. Pourriez-vous effectuer un rapport de bogue, s\'il vous plaît.'; -$lang['could_not_perform_ldap_modify'] = 'L\'opération ldap_modify n\'a pu être effectuée.'; +$lang['could_not_perform_ldap_modify'] = 'L\'opération ldap_modify n\'a pu être effectuée.'; // update_confirm.php $lang['do_you_want_to_make_these_changes'] = 'Voulez-vous effectuer ces changements?'; @@ -276,7 +276,7 @@ $lang['go_back'] = 'Retour'; $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['unsafe_file_name'] = 'Nom de fichier non sûr: '; $lang['no_such_file'] = 'Aucun fichier trouvé: '; //function.php @@ -336,7 +336,7 @@ $lang['ferror_congrats_found_bug'] = 'Félicitations! Vous avez trouv&eacu //ldif_import_form $lang['import_ldif_file_title'] = 'Import de fichier LDIF'; $lang['select_ldif_file'] = 'Sélectionner un fichier LDIF:'; -$lang['select_ldif_file_proceed'] = 'Continuer >>'; +$lang['select_ldif_file_proceed'] = 'Continuer >>'; //lldif_import $lang['add_action'] = 'Ajout de...'; diff --git a/lang/recoded/it.php b/lang/recoded/it.php index 7233757..088b54b 100644 --- a/lang/recoded/it.php +++ b/lang/recoded/it.php @@ -17,7 +17,7 @@ $lang['ends_with'] = 'finisce con'; $lang['sounds_like'] = 'suona come'; // Tree browser -$lang['request_new_feature'] = 'Richiedi una nuova funzionalitŕ'; +$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'; @@ -44,7 +44,7 @@ $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['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'; @@ -76,7 +76,7 @@ $lang['add_value_tooltip'] = 'Aggiungi un\'altrovalore a questo attributo'; $lang['refresh'] = 'aggiorna'; $lang['refresh_this_entry'] = 'Aggiorna questa voce'; $lang['delete_hint'] = 'Consiglio: Per cancellare un attributo, svuota il campo testo e clicca salva.'; -$lang['viewing_read_only'] = 'Stai guardando la voce in modalitŕ sola-lettura.'; +$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'; @@ -102,7 +102,7 @@ $lang['required_attrs'] = 'Attributi Richiesti'; $lang['optional_attrs'] = 'Attributi Opzionali'; $lang['OID'] = 'OID'; $lang['desc'] = 'Descrizione'; -$lang['is_obsolete'] = 'Questa objectClass č obsoleta'; +$lang['is_obsolete'] = 'Questa objectClass è obsoleta'; $lang['inherits'] = 'Eredita da'; $lang['jump_to_this_oclass'] = 'Vai a questa definizione della objectClass'; $lang['matching_rule_oid'] = 'Regola Corrispondente OID'; @@ -118,7 +118,7 @@ $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['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.'; @@ -131,7 +131,7 @@ $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
    una regola EQUALITY per questo attributo sul tuo server LDAP.'; +$lang['inappropriate_matching_note'] = 'Nota: Tu riceverai un errore "corrispondenza inappropiata" se non hai
    una regola EQUALITY 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
    che questa objectClass richiede.'; $lang['syntax'] = 'Sintassi'; diff --git a/lang/recoded/nl.php b/lang/recoded/nl.php index ca6c234..123b547 100644 --- a/lang/recoded/nl.php +++ b/lang/recoded/nl.php @@ -1,7 +1,7 @@ + * Ãœbersetzung von Marius Rieder * Uwe Ebel */ @@ -135,22 +135,22 @@ $lang['that_this_oclass_requires'] = 'dat deze objectClass nodig heeft. U kunt d $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['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['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'; +$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 @@ -161,23 +161,23 @@ $lang['server'] = 'server';//'Server'; $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
    ' . //'Note: You will get an "inappropriate matching" error if you have not
    ' . +$lang['inappropriate_matching_note'] = 'Info: U zult een "inappropriate matching" melding krijgen, indien u niet
    ' . //'Note: You will get an "inappropriate matching" error if you have not
    ' . 'een EQUALITY regel op de LDAP Server voor dit attribuut ingesteld heeft.';//'setup an EQUALITY 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
    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_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_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: '; @@ -186,31 +186,31 @@ $lang['missing_template_file'] = 'Waarschuwing: kan de template file niet vinden $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_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.'; +$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.'; +$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'; +$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.'; +$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.'; @@ -227,7 +227,7 @@ $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['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'; @@ -269,35 +269,35 @@ $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'] = 'auto_uid_numbers is geactiveerd (%s, maar niet het mechanisme (auto_uid_number_mechanism). U dient dit alsnog te doen.';//"You have enabled auto_uid_numbers for %s in your configuration, but you have not specified the auto_uid_number_mechanism. Please correct this problem.'; -$lang['uidpool_not_set'] = 'Het mechanisme auto_uid_number_mechanism is als uidpool voor server %s vastgelegd, maar niet de auto_uid_number_uid_pool_dn. U dient dit alsnog te doen.';//"You specified the auto_uid_number_mechanism as uidpool in your configuration for server %s, but you did not specify the audo_uid_number_uid_pool_dn. Please specify it before proceeding.'; +$lang['auto_update_not_setup'] = 'auto_uid_numbers is geactiveerd (%s, maar niet het mechanisme (auto_uid_number_mechanism). U dient dit alsnog te doen.';//"You have enabled auto_uid_numbers for %s in your configuration, but you have not specified the auto_uid_number_mechanism. Please correct this problem.'; +$lang['uidpool_not_set'] = 'Het mechanisme auto_uid_number_mechanism is als uidpool voor server %s vastgelegd, maar niet de auto_uid_number_uid_pool_dn. U dient dit alsnog te doen.';//"You specified the auto_uid_number_mechanism as uidpool in your configuration for server %s, but you did not specify the audo_uid_number_uid_pool_dn. Please specify it before proceeding.'; -$lang['uidpool_not_exist'] = 'De uidPool die gespecificeerd is in de configuratie bestaat niet.';//"It appears that the uidPool you specified in your configuration (%s) does not exist.'; +$lang['uidpool_not_exist'] = 'De uidPool die gespecificeerd is in de configuratie bestaat niet.';//"It appears that the uidPool you specified in your configuration (%s) does not exist.'; -$lang['specified_uidpool'] = 'De auto_uid_number_mechanism is als search in de configuratie voor de server %s bepaald, maar de waarde auto_uid_number_search_base niet. U dient dit alsnog te doen.';//"You specified the auto_uid_number_mechanism as search in your configuration for server %s, but you did not specify the auto_uid_number_search_base. Please specify it before proceeding.'; +$lang['specified_uidpool'] = 'De auto_uid_number_mechanism is als search in de configuratie voor de server %s bepaald, maar de waarde auto_uid_number_search_base niet. U dient dit alsnog te doen.';//"You specified the auto_uid_number_mechanism as search in your configuration for server %s, but you did not specify the auto_uid_number_search_base. Please specify it before proceeding.'; -$lang['auto_uid_invalid_value'] = 'Ongeldige waarde voor auto_uid_number_mechanism(%s). Alleen uidpool und search zijn geldig. Gaarne de fout herstellen ';//"You specified an invalid value for auto_uid_number_mechanism (%s) in your configration. Only uidpool and search are valid. Please correct this problem.'; +$lang['auto_uid_invalid_value'] = 'Ongeldige waarde voor auto_uid_number_mechanism(%s). Alleen uidpool und search zijn geldig. Gaarne de fout herstellen ';//"You specified an invalid value for auto_uid_number_mechanism (%s) in your configration. Only uidpool and search are valid. Please correct this problem.'; -$lang['error_auth_type_config'] = 'Fout: Er zit een fout inde configuratiefile (config.php). De enige twee waarden voor \'auth_type\' in de $servers sectie zijn: \'config\' of \'form\'. U heeft er nu %s 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['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: \'config\' of \'form\'. U heeft er nu %s 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.
    Controleer de LDAP-Server-configuratie.';//"Could not start TLS.
    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'] = 'LDAP zegt: %s

    ';//"LDAP said: %s

    '; -$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
    '; -$lang['ferror_number'] = 'Foutnummer: %s(%s)

    ';//"Error number: %s (%s)

    '; -$lang['ferror_discription'] ='Omschrijving: %s

    ';// "Description: %s

    '; -$lang['ferror_number_short'] = 'Foutnummer:%s

    ';//"Error number: %s

    '; -$lang['ferror_discription_short'] = 'Omschrijving: (geen omschrijving beschikbaar)
    ';//"Description: (no description available)
    '; -$lang['ferror_submit_bug'] = 'Is het een phpLDAPadmin fout? Als dat zo is, dan gaarne een bugreport invullen';//"Is this a phpLDAPadmin bug? If so, please report it.'; -$lang['ferror_unrecognized_num'] = 'Onbekend foutnummer:';//"Unrecognized error number: '; +$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.
    Controleer de LDAP-Server-configuratie.';//"Could not start TLS.
    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'] = 'LDAP zegt: %s

    ';//"LDAP said: %s

    '; +$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
    '; +$lang['ferror_number'] = 'Foutnummer: %s(%s)

    ';//"Error number: %s (%s)

    '; +$lang['ferror_discription'] ='Omschrijving: %s

    ';// "Description: %s

    '; +$lang['ferror_number_short'] = 'Foutnummer:%s

    ';//"Error number: %s

    '; +$lang['ferror_discription_short'] = 'Omschrijving: (geen omschrijving beschikbaar)
    ';//"Description: (no description available)
    '; +$lang['ferror_submit_bug'] = 'Is het een phpLDAPadmin fout? Als dat zo is, dan gaarne een bugreport invullen';//"Is this a phpLDAPadmin bug? If so, please report it.'; +$lang['ferror_unrecognized_num'] = 'Onbekend foutnummer:';//"Unrecognized error number: '; -$lang['ferror_nonfatil_bug'] = '
    Een niet fatale fout in phpLDAPadmin gevonden!
    Fout:%s (%s)
    Bestand:%sRegel:%s, aangeroepen door %s
    Versie:PLA: %s, PHP: %s, SAPI: %s
    Web server:%s
    Graag een bugreport invullen.

    ';//"
    You found a non-fatal phpLDAPadmin bug!
    Error:%s (%s)
    File:%s line %s, caller %s
    Versions:PLA: %s, PHP: %s, SAPI: %s
    Web server:%s
    Please report this bug by clicking here.

    '; +$lang['ferror_nonfatil_bug'] = '
    Een niet fatale fout in phpLDAPadmin gevonden!
    Fout:%s (%s)
    Bestand:%sRegel:%s, aangeroepen door %s
    Versie:PLA: %s, PHP: %s, SAPI: %s
    Web server:%s
    Graag een bugreport invullen.

    ';//"
    You found a non-fatal phpLDAPadmin bug!
    Error:%s (%s)
    File:%s line %s, caller %s
    Versions:PLA: %s, PHP: %s, SAPI: %s
    Web server:%s
    Please report this bug by clicking here.

    '; $lang['ferror_congrats_found_bug'] = '
    @@ -305,14 +305,14 @@ $lang['ferror_congrats_found_bug'] = '
    Gefeliciteerd! Een fout in phpLDAPadmin gevonden!
    -
    Versie:PLA: %s, PHP: %s, SAPI: %s
    Web server:%s
    Graag een bugreport invullen.

    ';//"Congratulations! You found a bug in phpLDAPadmin.

    Error:%s
    Level:%s
    File:%s
    Line:%s
    Caller:%s
    PLA Version:%s
    PHP Version:%s
    PHP SAPI:%s
    Web server:%s

    Please report this bug by clicking below!'; +
    ';//"Congratulations! You found a bug in phpLDAPadmin.

    Error:%s
    Level:%s
    File:%s
    Line:%s
    Caller:%s
    PLA Version:%s
    PHP Version:%s
    PHP SAPI:%s
    Web server:%s

    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['select_ldif_file_proceed']= 'Ga door >>'; $lang['add_action'] = 'Toevoegen...'; $lang['delete_action'] = 'Verwijderen...'; $lang['rename_action'] = 'Hernoemen...'; diff --git a/lang/recoded/ru.php b/lang/recoded/ru.php index 088e5d4..7b97d19 100644 --- a/lang/recoded/ru.php +++ b/lang/recoded/ru.php @@ -4,256 +4,256 @@ $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'; +$lang['simple_search_form_str'] = 'ПроÑÑ‚Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° поиÑка'; +$lang['advanced_search_form_str'] = 'РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° поиÑка'; +$lang['server'] = 'Сервер'; +$lang['search_for_entries_whose'] = 'ИÑкать запиÑи по критерию'; +$lang['base_dn'] = 'ОÑновной DN (Base DN)'; // 'Base DN'; +$lang['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['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['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'; +$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'] = 'Удалить Ñту запиÑÑŒ';//'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['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['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'] = 'Совет: Удалить атрибут, очистите текстовое поле и нажмите сохрнить.';//'Hint: To delete an attribute, empty the text field and click save.'; -$lang['viewing_read_only'] = 'Просмотреть запись в режиме только для чтения';//'Viewing entry in read-only mode.'; +$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'] = 'Совет: Удалить атрибут, очиÑтите текÑтовое поле и нажмите Ñохрнить.';//'Hint: To delete an attribute, 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['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'] = 'Следующий objectClasses поддерживаеться этим LDAP сервером.';;//'The following objectClasses are supported by this LDAP server.'; -$lang['the_following_attributes'] = 'Следующий attributeTypes поддерживаеться этим LDAP севером.';//The following attributeTypes are supported by this LDAP server.'; -$lang['the_following_matching'] = 'Следующий matching rules поддерживаеться этим LDAP севером.';//'The following matching rules are supported by this LDAP server.'; -$lang['the_following_syntaxes'] = 'Следующий syntaxes поддерживаеться этим LDAP сервером.';//'The following syntaxes 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['the_following_objectclasses'] = 'Следующий objectClasses поддерживаетьÑÑ Ñтим LDAP Ñервером.';;//'The following objectClasses are supported by this LDAP server.'; +$lang['the_following_attributes'] = 'Следующий attributeTypes поддерживаетьÑÑ Ñтим LDAP Ñевером.';//The following attributeTypes are supported by this LDAP server.'; +$lang['the_following_matching'] = 'Следующий matching rules поддерживаетьÑÑ Ñтим LDAP Ñевером.';//'The following matching rules are supported by this LDAP server.'; +$lang['the_following_syntaxes'] = 'Следующий syntaxes поддерживаетьÑÑ Ñтим LDAP Ñервером.';//'The following syntaxes 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 есть obsolete';//'This objectClass is obsolete'; -$lang['inherits'] = 'Наследование'; -$lang['jump_to_this_oclass'] = 'Перейти к этому objectClass описанию';//'Jump to this objectClass definition'; +$lang['desc'] = 'ОпиÑание';//'Description'; +$lang['is_obsolete'] = 'Этот objectClass еÑÑ‚ÑŒ obsolete';//'This objectClass is obsolete'; +$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'] = 'Ðовые запрошеные параметры';// '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'; +$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['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['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
    ' . +$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
    ' . 'setup an EQUALITY 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'; +$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['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['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'] = 'начинаетÑÑ Ñ';//'starts with'; +$lang['ends with'] = 'заканчиваетÑÑ Ð½Ð°';//'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['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['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']='поздравление нашедшим баг'; +$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']='поздравление нашедшим баг'; ?> diff --git a/lang/ru.php b/lang/ru.php index f93dd24..7b97d19 100644 --- a/lang/ru.php +++ b/lang/ru.php @@ -5,18 +5,18 @@ $lang = array(); // Search form $lang['simple_search_form_str'] = 'ПроÑÑ‚Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° поиÑка'; -$lang['advanced_search_form_str'] = 'Ð Ð°Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° поиÑка'; +$lang['advanced_search_form_str'] = 'РаÑÑˆÐ¸Ñ€ÐµÐ½Ð½Ð°Ñ Ñ„Ð¾Ñ€Ð¼Ð° поиÑка'; $lang['server'] = 'Сервер'; -$lang['search_for_entries_whose'] = 'Search for entries whose'; +$lang['search_for_entries_whose'] = 'ИÑкать запиÑи по критерию'; $lang['base_dn'] = 'ОÑновной DN (Base DN)'; // 'Base DN'; -$lang['search_scope'] = 'Search Scope'; +$lang['search_scope'] = 'ОблаÑÑ‚ÑŒ поиÑка'; $lang['search_ filter'] = 'ПоиÑковый фильтр';//'Search Filter'; $lang['show_attributes'] = 'Показать атрибуты';//'Show Attributtes'; $lang['Search'] = 'ПоиÑк';//'Search'; -$lang['equals'] = 'ровно';//'equals'; -$lang['starts_with'] = 'запуÑкать Ñ';//'starts with'; +$lang['equals'] = 'равнÑетÑÑ';//'equals'; +$lang['starts_with'] = 'начинаетÑÑ Ñ';//'starts with'; $lang['contains'] = 'Ñодержит';//'contains'; -$lang['ends_with'] = 'заканчивать Ñ';//'ends with'; +$lang['ends_with'] = 'заканчиваетÑÑ Ð½Ð°';//'ends with'; $lang['sounds_like'] = 'звучит подобно';//'sounds like'; // Tree browser @@ -31,7 +31,7 @@ $lang['create'] = 'Ñоздать';//'create'; $lang['info'] = 'инфа';//'info'; $lang['import'] = 'импорт';//'import'; $lang['logout'] = 'выйти';//'logout'; -$lang['create_new'] = 'Создать новую';//'Create New'; +$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'; @@ -59,20 +59,20 @@ $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_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'] = 'Добавить новый атрибут';//'Add New Attribute'; $lang['add_new_attribute_tooltip'] = 'Добавить новый атрибут/значение в Ñту запиÑÑŒ';//'Add a new attribute/value to this entry'; -$lang['internal_attributes'] = 'Внешний атрибуты';//'Internal Attributes'; +$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['hidden'] = 'Ñкрыты';//'hidden'; $lang['none'] = 'нет';//'none'; $lang['save_changes'] = 'Сохранить изменение';//'Save Changes'; $lang['add_value'] = 'добавить значение';//'add value'; @@ -208,10 +208,10 @@ $lang['scope_sub']='под'; $lang['scope_one']='одна облаÑÑ‚ÑŒ'; $lang['scope_base']='база'; $lang['standard_ldap_search_filter']='Ñтандартный ldap поиÑковый фильтер'; -$lang['search_filter']='фильтер поиÑка'; +$lang['search_filter'] = 'Фильтр поиÑка'; $lang['list_of_attrs_to_display_in_results']='ÑпиÑок атрибутов показать в результате'; -$lang['starts with']='начинать Ñ'; -$lang['ends with']='заканчивать Ñ'; +$lang['starts with'] = 'начинаетÑÑ Ñ';//'starts with'; +$lang['ends with'] = 'заканчиваетÑÑ Ð½Ð°';//'ends with'; $lang['sounds like']='звучит подобно'; $lang['could_not_fetch_server_info']='не могу получить информацию Ñ Ñервера'; $lang['server_info_for']='инфа Ñервера длÑ'; @@ -228,7 +228,7 @@ $lang['commit']='подтвердить'; $lang['cancel']='отменить'; $lang['you_made_no_changes']='Ð’Ñ‹ ничего не изменили '; $lang['go_back']='назад'; -$lang['welcome_note']='пригаÑÐ¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ'; +$lang['welcome_note']='ИÑпользуйте меню Ñлева Ð´Ð»Ñ Ð½Ð°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ð¸'; $lang['unsafe_file_name']='ненадежное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°'; $lang['no_such_file']='нет такого файла'; $lang['auto_update_not_setup']='авто-обновление не уÑтанавливать'; diff --git a/login.php b/login.php index f473658..00caf2e 100644 --- a/login.php +++ b/login.php @@ -37,21 +37,36 @@ if( $anon_bind ) { $host = $servers[$server_id]['host']; $port = $servers[$server_id]['port']; -if ( isset( $servers[$server_id]['login_attr'] ) && - $servers[$server_id]['login_attr'] != "dn" && - $servers[$server_id]['login_attr'] != "") { +// Checks if the logni_attr option is enabled for this host, +// which allows users to login with a simple username like 'jdoe' rather +// than the fully qualified DN, 'uid=jdoe,ou=people,,dc=example,dc=com'. +// We don't do this, of course, for anonymous binds. +if ( login_attr_enabled( $server_id ) && ! $anon_bind ) { // search for the "uid" first $ds = ldap_connect ( $host, $port ); $ds or pla_error( "Could not contact '" . htmlspecialchars( $host ) . "' on port '" . htmlentities( $port ) . "'" ); @ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 ); + // try to fire up TLS if specified in the config + if( isset( $servers[ $server_id ][ 'tls' ] ) && $servers[ $server_id ][ 'tls' ] == true ) { + function_exists( 'ldap_start_tls' ) or pla_error( + "Your PHP install does not support TLS" ); + @ldap_start_tls( $ds ) or pla_error( "Could not start + TLS. Please check your ". + "LDAP server configuration.", ldap_error( $ds ), ldap_errno( $ds ) ); + } @ldap_bind ($ds) or pla_error( "Could not bind anonymously to server. " . "Unless your server accepts anonymous binds, " . "the login_attr feature will not work properly."); - $sr=@ldap_search($ds,$servers[$server_id]['base'],$servers[$server_id]['login_attr'] ."=". $uid, array("dn"), 0, 1); + $search_base = isset( $servers[$server_id]['base'] ) && '' != trim( $servers[$server_id]['base'] ) ? + $servers[$server_id]['base'] : + try_to_get_root_dn( $server_id ); + $sr = @ldap_search($ds,$search_base,$servers[$server_id]['login_attr'] ."=". $uid, array("dn"), 0, 1); $result = @ldap_get_entries($ds,$sr); - $dn = $result[0]["dn"]; - @ldap_unbind ($ds); + $dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false; + @ldap_unbind( $ds ); + if( false === $dn ) + pla_error( "Could not find a user '" . htmlspecialchars( $uid ) . "'" ); } // verify that the login is good @@ -60,11 +75,25 @@ $ds or pla_error( "Could not connect to '" . htmlspecialchars( $host ) . "' on p // go with LDAP version 3 if possible @ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 ); +if( isset( $servers[ $server_id ][ 'tls' ] ) && $servers[ $server_id ][ 'tls' ] == true ) { + function_exists( 'ldap_start_tls' ) or pla_error( + "Your PHP install does not support TLS" ); + ldap_start_tls( $ds ) or pla_error( "Could not start + TLS. Please check your ". + "LDAP server configuration.", ldap_error( $ds ), ldap_errno( $ds ) ); +} -$bind_result = @ldap_bind( $ds, $dn, $pass ); +if( $anon_bind ) + $bind_result = @ldap_bind( $ds ); +else + $bind_result = @ldap_bind( $ds, $dn, $pass ); -if( ! $bind_result ) - pla_error( "Bad username/password. Try again" ); +if( ! $bind_result ) { + if( $anon_bind ) + pla_error( "Could not bind anonymously to LDAP server.", ldap_error( $ds ), ldap_errno( $ds ) ); + else + pla_error( "Bad username/password. Try again" ); +} set_cookie_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( "Could not set cookie!" ); diff --git a/login_form.php b/login_form.php index 8330f30..3c82fa6 100644 --- a/login_form.php +++ b/login_form.php @@ -11,10 +11,13 @@ require 'common.php'; -$server_id = $_GET['server_id']; -$server = $servers[$server_id]; +$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : null; -check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); +if( $server_id != null ) { + check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) ); +} + +$server = $servers[$server_id]; include 'header.php'; ?> @@ -24,11 +27,11 @@ include 'header.php'; ?>

    getName(); ?>

    : getOID(); ?>

    @@ -306,7 +319,7 @@ if( $view == 'syntaxes' ) { else foreach( $oclass->getSupClasses() as $i => $object_class ) { echo '' . htmlspecialchars( $object_class ) . ''; if( $i < count( $oclass->getSupClasses() ) - 1 ) echo ', '; @@ -323,13 +336,13 @@ if( $view == 'syntaxes' ) { getMustAttrs($schema_oclasses) ) > 0 ) { echo '
      '; foreach( $oclass->getMustAttrs($schema_oclasses) as $attr ) { - echo "
    • getName() ) ). "\">" . htmlspecialchars($attr->getName()); + echo "
    • getName() ). "\">" . htmlspecialchars($attr->getName()); echo ""; if( $attr->getSource() != $oclass->getName() ) { - echo "
         (inherited from "; - echo "getSource() ) . "\">" . $attr->getSource() . ""; + echo "
        (inherited from "; + echo "getSource() . "\">" . $attr->getSource() . ""; echo ")"; } echo "
    • \n"; @@ -344,13 +357,13 @@ if( $view == 'syntaxes' ) { if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) { echo '
        '; foreach( $oclass->getMayAttrs($schema_oclasses) as $attr ) { - echo "
      • getName() ) ) . "\">" . htmlspecialchars($attr->getName() ); + echo "
      • getName() ) . "\">" . htmlspecialchars($attr->getName() ); echo "\n"; if( $attr->getSource() != $oclass->getName() ) { echo "
           (inherited from "; - echo "getSource() ) . "\">" . $attr->getSource() . ""; + echo "getSource() . "\">" . $attr->getSource() . ""; echo ")"; } echo "
      • "; @@ -365,7 +378,7 @@ if( $view == 'syntaxes' ) { - + diff --git a/schema_functions.php b/schema_functions.php index d6713fe..63ee65f 100644 --- a/schema_functions.php +++ b/schema_functions.php @@ -1252,6 +1252,13 @@ function get_schema_attributes( $server_id, $dn = null ) // build the array of attribueTypes $syntaxes = get_schema_syntaxes( $server_id, $dn ); $attrs = array(); + /* + * bug 856832: create two arrays - one indexed by name (the standard + * $attrs array above) and one indexed by oid (the new $attrs_oid array + * below). This will help for directory servers, like IBM's, that use OIDs + * in their attribute definitions of SUP, etc + */ + $attrs_oid = array(); foreach( $raw_attrs as $attr_string ) { if( $attr_string == null || 0 == strlen( $attr_string ) ) continue; @@ -1263,10 +1270,22 @@ function get_schema_attributes( $server_id, $dn = null ) $name = $attr->getName(); $key = strtolower( $name ); $attrs[ $key ] = $attr; + + /* + * bug 856832: create an entry in the $attrs_oid array too. This + * will be a ref to the $attrs entry for maintenance and performance + * reasons + */ + $oid = $attr->getOID(); + $attrs_oid[ $oid ] = &$attrs[ $key ]; } add_aliases_to_attrs( $attrs ); - add_sup_to_attrs( $attrs ); + /* + * bug 856832: pass the $attrs_oid array as a second (new) parameter + * to add_sup_to_attrs. This will allow lookups by either name or oid. + */ + add_sup_to_attrs( $attrs, $attrs_oid ); ksort( $attrs ); @@ -1303,8 +1322,9 @@ function add_aliases_to_attrs( &$attrs ) /* * Adds inherited values to each attributeType specified by the SUP directive. * Supports infinite levels of inheritance. + * Bug 856832: require a second paramter that has all attributes indexed by OID */ -function add_sup_to_attrs( &$attrs ) +function add_sup_to_attrs( &$attrs, &$attrs_oid ) { $debug = false; if( $debug ) echo "
        ";
        @@ -1327,6 +1347,18 @@ function add_sup_to_attrs( &$attrs )
         			while( $i++ < 100 /* 100 == INFINITY ;) */ ) {
         				if( $debug ) echo "Top of loop.\n";
         
        +				/*
        +				 * Bug 856832: check if sup is indexed by OID. If it is,
        +				 * replace the OID with the appropriate name. Then reset
        +				 * $sup_attr_name to the name instead of the OID. This will
        +				 * make all the remaining code in this function work as
        +				 * expected.
        +				 */
        +				if( isset( $attrs_oid[$sup_attr_name] ) ) {
        +					$attr->setSupAttribute( $attrs_oid[$sup_attr_name]->getName() );
        +					$sup_attr_name = $attr->getSupAttribute();
        +				}
        +				
         				if( ! isset( $attrs[ strtolower( $sup_attr_name ) ] ) ){ 
         					pla_error( "Schema error: attributeType '" . $attr->getName() . "' inherits from 
         								'" . $sup_attr_name . "', but attributeType '" . $sup_attr_name . "' does not
        diff --git a/style.css b/style.css
        index 41906bc..2fd25d9 100644
        --- a/style.css
        +++ b/style.css
        @@ -468,3 +468,32 @@ div.add_value {
         	font-size: 10pt;
         	margin: 0px;
         }
        +
        +a.logged_in_dn {
        +	text-decoration: none;
        +	color: black;
        +}
        +
        +a.logged_in_dn:hover {
        +	text-decoration: underline;
        +	color: blue;
        +}
        +
        +a:hover {
        +	color: red;
        +}
        +
        +
        +/* Styles for formatting the documentation page */
        +
        +h3.doc {
        +	margin-left: 60px;
        +}
        +
        +h2.doc {
        +	margin-left: 20px;
        +}
        +
        +p.doc {
        +	margin-left: 100px;
        +}
        diff --git a/templates/creation/custom.php b/templates/creation/custom.php
        index 7da4d88..f82ed4f 100644
        --- a/templates/creation/custom.php
        +++ b/templates/creation/custom.php
        @@ -8,9 +8,7 @@ $container = $_POST['container'];
         $server_id = $_POST['server_id'];
         
         // Unique to this template
        -$step = isset( $_POST['step'] ) ? $_POST['step'] : null;
        -if( ! $step )
        -	$step = 1;
        +$step = isset( $_POST['step'] ) ? $_POST['step'] : 1;
         
         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." );
        @@ -76,7 +74,7 @@ if( $step == 2 )
         	strlen( trim( $rdn ) ) != 0 or
         		pla_error( "You left the RDN field blank" );
         
        -	strlen( $container ) == 0 or dn_exists( $server_id, $container ) or
        +	strlen( trim( $container ) ) == 0 or dn_exists( $server_id, $container ) or
         		pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
         	       		       "Please go back and try again." );
         
        @@ -84,19 +82,21 @@ if( $step == 2 )
         	$oclasses = $_POST['object_classes'];
         	if( count( $oclasses ) == 0 )
         		pla_error( "You did not select any ObjectClasses for this object. Please go back and do so." );
        -
        -	// build a list of required attributes:
         	$dn = $rdn . ',' . $container;
        +
        +	// incrementally build up the all_attrs and required_attrs arrays
         	$schema_oclasses = get_schema_objectclasses( $server_id );
         	$required_attrs = array();
         	$all_attrs = array();
         	foreach( $oclasses as $oclass_name ) {
        -		if( isset( $schema_oclasses[ strtolower( $oclass_name ) ] ) )
        -			$oclass = $schema_oclasses[ strtolower( $oclass_name ) ];
        -		else
        -			continue;
        -		$required_attrs = array_merge( $required_attrs, $oclass->getMustAttrNames( $oclasses ) );
        -		$all_attrs = array_merge( $oclass->getMustAttrNames(), $oclass->getMayAttrNames( $oclasses ) );
        +		$oclass = get_schema_objectclass( $server_id, $oclass_name  );
        +		if( $oclass ) {
        +			$required_attrs = array_merge( $required_attrs, 
        +						$oclass->getMustAttrNames( $schema_oclasses ) );
        +			$all_attrs = array_merge( $all_attrs, 
        +						$oclass->getMustAttrNames( $schema_oclasses ), 
        +						$oclass->getMayAttrNames( $schema_oclasses ) );
        +		} 
         	}
         
         	$required_attrs = array_unique( $required_attrs );
        diff --git a/templates/creation/new_nt_machine.php b/templates/creation/new_nt_machine.php
        index d4cf678..8db0d95 100644
        --- a/templates/creation/new_nt_machine.php
        +++ b/templates/creation/new_nt_machine.php
        @@ -21,6 +21,9 @@ $default_home_dir = '/dev/null';
         check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
         have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
         
        +if( get_schema_objectclass( $server_id, 'sambaAccount' ) == null )
        +	pla_error( "You LDAP server does not have schema support for the sambaAccount objectClass. Cannot continue." );
        +
         ?>
         
         

        New Samba NT Machine

        diff --git a/templates/creation/new_security_object_template.php b/templates/creation/new_security_object_template.php new file mode 100644 index 0000000..87be204 --- /dev/null +++ b/templates/creation/new_security_object_template.php @@ -0,0 +1,173 @@ + + + + +

        New Security Object

        + + + +
        + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        User name:
        Password:
        Password:
        Encryption:
        Container: +

        +
        + + +

        Confirm account creation:

        + + + + + + + + + + + + + + + + +
        + + + + +
        User name:
        Password:[secret]
        Container:
        +
        +
        + + diff --git a/templates/creation/new_smb3_nt_machine.php b/templates/creation/new_smb3_nt_machine.php new file mode 100644 index 0000000..2eaa527 --- /dev/null +++ b/templates/creation/new_smb3_nt_machine.php @@ -0,0 +1,156 @@ + + + + +

        New Samba 3 NT Machine

        + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Machine Name: (hint: don't include "$" at the end)
        UID Number:
        Sanba Sid: -
        Container: +

        +





        + This will create a new NT machine with:
        + +
          +
        • gidNumber
        • +
        • acctFlags
        • +
        • in container
        • +
        + To change these values, edit the template file: + templates/creation/new_nt_machine.php
        + Note: You must have the samba schema installed on your LDAP server. +
        +
        +
        + + + + + + + + + + + + + + + + + + + + + " /> + + + + + + + +
        + Realy create this new Samba machine?
        +
        + + + + + +
        Name
        UID number
        SambaSid
        Container
        +
        +
        + + \ No newline at end of file diff --git a/templates/creation/new_smb3_user_template.php b/templates/creation/new_smb3_user_template.php new file mode 100644 index 0000000..bfd2aad --- /dev/null +++ b/templates/creation/new_smb3_user_template.php @@ -0,0 +1,315 @@ + + + + +

        New Samba3 User Account

        + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        UID Number:
        Samba SID: -
        First name:
        Last name:
        User name:
        Password:
        Password:
        Encryption: + + crypt +
        Login Shell: + +
        Container: +
        Unix Group:
        Windows Group:
        Home Directory:

        Note: To change the value(s) of the samba domain sid, please edit the file :
        templates/template_config.php
        +
        + + +

        Confirm account creation:

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " /> + + + + + + + + + + + + + + + + +
        + + + + + + + + + + + + + +
        User name:
        First name:
        Last name:
        UID Number:
        Login Shell:
        Samba SID:
        GID Number:
        Container:
        Home dir:
        Password:[secret]
        +
        +
        + + diff --git a/templates/creation/new_smbgroup_template.php b/templates/creation/new_smbgroup_template.php new file mode 100644 index 0000000..6f2aca1 --- /dev/null +++ b/templates/creation/new_smbgroup_template.php @@ -0,0 +1,199 @@ + + + +

        New Samba Group Mapping

        + + + + + + + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Samba Group Name: (example: admins, do not include "cn=")
        Display Name:
        GID Number: (example: 2000)
        SambaSID -
        Container DN: +
        SambaGroupType Number: + +
        Members: (example: dsmith)
        + +
        + +

        +
        +
        + + + + +
        + + + + + + + + + + + + + + + + + " /> + + + + + + + +
        + Really create this new Posix Group entry?
        +
        + + + + + + + + +
        Name
        Container
        display Name
        gidNumber
        sambaSid
        sambaGroupType
        Member UIDs + $uid ) + echo htmlspecialchars($uid) . "
        "; ?> +
        +
        +
        + + + + + diff --git a/templates/creation/new_smbuser_template.php b/templates/creation/new_smbuser_template.php index e5eb261..dcb3853 100644 --- a/templates/creation/new_smbuser_template.php +++ b/templates/creation/new_smbuser_template.php @@ -1,11 +1,8 @@ -'+(2*uidNumber+1000); - - form.samba_sid.value = sambaSID; - + sambaRID = (2*uidNumber)+1000; + form.samba_user_rid.value = sambaRID; } --> -

        New Samba3-User Account

        +

        New Samba User Account

        @@ -75,12 +74,12 @@ UID Number: - + - Samba SID: - + RID: + @@ -120,11 +119,18 @@ - + Login Shell: - - - /bin/csh + + @@ -139,7 +145,7 @@ - + Unix Group: - - - - - - - + Primary Group Id: + Home Directory: - +

        +
        @@ -184,8 +184,12 @@ $gid_number = trim( $_POST['group'] ); $container = trim( $_POST['container'] ); $home_dir = trim( $_POST['home_dir'] ); - - $samba_sid = trim( stripslashes( $_POST['samba_sid'] ) ); + $samba_user_rid = trim( $_POST['samba_user_rid'] ); + $samba_primary_group_id = trim( $_POST['primary_group_id'] ); + + $sambaLMPassword=""; + $sambaNTPassword=""; + $smb_passwd_creation_success = 0; /* Critical assertions */ $password1 == $password2 or @@ -200,10 +204,17 @@ $password = password_hash( $password1, $encryption ); + //build the mkntpwd command line string $sambaPassCommand = $mkntpwdCommand . " " . $password1; + + // execute this command $sambaPassCommandOutput = shell_exec($sambaPassCommand); - $sambaLMPassword = substr($sambaPassCommandOutput,0,strPos($sambaPassCommandOutput,':')); - $sambaNTPassword = substr($sambaPassCommandOutput,strPos($sambaPassCommandOutput,':')+1); + if($sambaPassCommandOutput){ + $sambaLMPassword = substr($sambaPassCommandOutput,0,strPos($sambaPassCommandOutput,':')); + $sambaNTPassword = substr($sambaPassCommandOutput,strPos($sambaPassCommandOutput,':')+1); + $smb_passwd_creation_success = 1; + } + ?>

        Confirm account creation:

        @@ -212,7 +223,7 @@ - + @@ -229,25 +240,12 @@ - + - - - - - - - - - - - - - - - - - + + + + @@ -256,20 +254,37 @@ + + + + + + +
        - + - - - - -
        User name:
        First name:
        Last name:
        Password:[secret]
        UID Number:
        Login Shell:
        UID Number:
        GID Number:
        Container:
        Home dir:
        -
        + Rid + GID Number: + Container: + Home dir: + + Password:[secret] + + +
        diff --git a/templates/creation/new_user_template.php b/templates/creation/new_user_template.php index fd2e1ba..e824199 100644 --- a/templates/creation/new_user_template.php +++ b/templates/creation/new_user_template.php @@ -169,6 +169,11 @@ function autoFillHomeDir( form ) + + + Home Directory: + + guest (5000) - - - Home Directory: - -

        diff --git a/templates/modification/default.php b/templates/modification/default.php index 3097359..224d412 100644 --- a/templates/modification/default.php +++ b/templates/modification/default.php @@ -315,7 +315,7 @@ 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&view=attributes#" . strtolower(real_attr_name($attr)); + $schema_href = "schema.php?server_id=$server_id&view=attributes&viewvalue=" . real_attr_name($attr); ?> @@ -401,7 +401,7 @@ if( $show_internal_attrs ) { - + diff --git a/templates/template_config.php b/templates/template_config.php new file mode 100644 index 0000000..4734969 --- /dev/null +++ b/templates/template_config.php @@ -0,0 +1,167 @@ + 'User Account', + 'icon' => 'images/user.png', + 'handler' => 'new_user_template.php' ); + // You can use the 'regexp' directive to restrict where + // entries can be created for this template + //'regexp' => '^ou=People,o=.*,c=.*$' + //'regexp' => '^ou=People,dc=.*,dc=.*$' + +$templates[] = + array( 'desc' => 'Address Book Entry (inetOrgPerson)', + 'icon' => 'images/user.png', + 'handler' => 'new_address_template.php' ); + +$templates[] = + array( 'desc' => 'Organizational Unit', + 'icon' => 'images/ou.png', + 'handler' => 'new_ou_template.php' ); + +$templates[] = + array( 'desc' => 'Posix Group', + 'icon' => 'images/ou.png', + 'handler' => 'new_posix_group_template.php' ); + +$templates[] = + array( 'desc' => 'Samba NT Machine', + 'icon' => 'images/nt_machine.png', + 'handler' => 'new_nt_machine.php' ); +$templates[] = + array( 'desc' => 'Samba 3 NT Machine', + 'icon' => 'images/nt_machine.png', + 'handler' => 'new_smb3_nt_machine.php' ); +/*$templates[] = + array( 'desc' => 'Samba User', + 'icon' => 'images/nt_user.png', + 'handler' => 'new_smbuser_template.php' ); +*/ +$templates[] = + array( 'desc' => 'Samba 3 User', + 'icon' => 'images/nt_user.png', + 'handler' => 'new_smb3_user_template.php' ); +$templates[] = + array( 'desc' => 'Samba 3 Group Mapping', + 'icon' => 'images/ou.png', + 'handler' => 'new_smbgroup_template.php' ); + +$templates[] = + array( 'desc' => 'DNS Entry', + 'icon' => 'images/dc.png', + 'handler' => 'new_dns_entry.php' ); + +$templates[] = + array( 'desc' => 'Simple Security Object', + 'icon' => 'images/user.png', + 'handler' => 'new_security_object_template.php' ); + +$templates[] = + array( 'desc' => 'Custom', + 'icon' => 'images/object.png', + 'handler' => 'custom.php' ); + + +/*###################################################################################### +## SAMBA TEMPLATE CONFIGURATION ## +## ---------------------------- ## +## ## +## In order to use the samba templates, you might edit the following properties: ## +## 1 - $mkntpwdCommand : the path to the mkntpwd utility provided with/by Samba. ## +## 2 - $default_samba3_domains : the domain name and the domain sid. ## +## ## +######################################################################################*/ + +// path 2 the mkntpwd utility (Customize) +$mkntpwdCommand = "./templates/creation/mkntpwd"; + +// Default domains definition (Customize) +$default_samba3_domains = array(); +$default_samba3_domains[] = + array( 'name' => 'My Samba domain Name', + 'sid' => 'S-1-5-21-1234567891-123456789-123456789' ); + + + + +/*###################################################################################### +## Methods used in/by templates ## +## ---------------------------- ## +######################################################################################*/ + +/* + * 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'; +} + +/** + * Return the domains info + * + */ + +function get_samba3_domains(){ + global $default_samba3_domains; + + // do the search for the sambadomainname object here + // In the meantime, just return the default domains + return $default_samba3_domains; +} + +?> diff --git a/tree.php b/tree.php index e9aaced..90b2a35 100644 --- a/tree.php +++ b/tree.php @@ -27,6 +27,9 @@ session_start(); if( ! session_is_registered( 'tree' ) || ! isset( $_SESSION['tree'] ) ) { session_register( 'tree' ); $_SESSION['tree'] = build_initial_tree(); +} +// do we not have any tree icons cached yet? Build a new one. +if( ! session_is_registered( 'tree_icons' ) || ! isset( $_SESSION['tree_icons'] ) ) { session_register( 'tree_icons' ); $_SESSION['tree_icons'] = build_initial_tree_icons(); } @@ -41,9 +44,9 @@ include 'header.php'; ?>

        phpLDAPadmin -

        @@ -51,12 +54,12 @@ include 'header.php'; ?> - () + - () + @@ -119,14 +122,15 @@ foreach( $servers as $server_id => $server_tree ) { if( $servers[$server_id]['auth_type'] == 'form' && have_auth_info( $server_id ) ) echo "" . - $lang['logged_in_as'] . htmlspecialchars(get_logged_in_dn($server_id)) . + $lang['logged_in_as'] . "" . + htmlspecialchars(get_logged_in_dn($server_id)) . "" . ""; if( is_server_read_only( $server_id ) ) echo "" . "(" . $lang['read_only'] . ")"; // Fetch and display the base DN for this server - //$rdn = utf8_decode( $dn ); if( null == $servers[ $server_id ]['base'] ) { $base_dn = try_to_get_root_dn( $server_id ); } else { @@ -165,7 +169,7 @@ foreach( $servers as $server_id => $server_tree ) { echo ""; echo "\n"; echo "$base_dn\n"; + echo " target=\"right_frame\">" . pretty_print_dn( $base_dn ) . "\n"; echo "\n"; } else { // end if( $base_dn ) @@ -285,9 +289,7 @@ function draw_tree_html( $dn, $server_id, $level=0 ) $tree_icons[ $server_id ][ $dn ] = get_icon( $server_id, $dn ); $img_src = 'images/' . $tree_icons[ $server_id ][ $dn ]; - $rdn = pla_explode_dn( $dn ); - if( isset( $rdn[0] ) ) - $rdn = $rdn[0]; + $rdn = get_rdn( $dn ); echo ''; @@ -329,7 +331,7 @@ function draw_tree_html( $dn, $server_id, $level=0 ) + target="right_frame"> diff --git a/unit_test.php b/unit_test.php index 32385b4..e864232 100644 --- a/unit_test.php +++ b/unit_test.php @@ -1,14 +1,17 @@ "; 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 "
        ";
         for( $i=0; $i,dc=example,dc=" ) );
        +var_dump( ldap_explode_dn( "cn=,dc=example,dc=", 0 ) );
        diff --git a/update_confirm.php b/update_confirm.php
        index 9734b38..f260bed 100644
        --- a/update_confirm.php
        +++ b/update_confirm.php
        @@ -51,10 +51,16 @@ foreach( $new_values as $attr => $vals )
         
          $new_val )
        +foreach( $old_values as $attr => $old_val )
         {
        +	// Did the user delete the field?
        +	if( ! isset( $new_values[ $attr ] ) ) {
        +		$update_array[ $attr ] = '';
        +	}
         	// did the user change the field?
        -	if( $new_val != $old_values[ $attr ] ) {
        +	elseif( $old_val != $new_values[ $attr ] ) {
        +
        +		$new_val = $new_values[ $attr ];
         
         		// special case for userPassword attributes
         		if( 0 == strcasecmp( $attr, 'userPassword' ) && $new_val != '' )
        diff --git a/view_jpeg_photo.php b/view_jpeg_photo.php
        index 8774682..7645598 100644
        --- a/view_jpeg_photo.php
        +++ b/view_jpeg_photo.php
        @@ -5,7 +5,7 @@ require 'common.php';
         $file = $_GET['file'];
         
         // Security check (we don't want anyone tryting to get at /etc/passwd or something)
        -preg_match( "/^djp/", $file ) or 
        +preg_match( "/^pla/", $file ) or 
         	pla_error( $lang['unsafe_file_name'] . htmlspecialchars( $file ) );
         
         $file = $jpeg_temp_dir . '/' . $file;
        diff --git a/welcome.php b/welcome.php
        index e7789e5..f6fa7c5 100644
        --- a/welcome.php
        +++ b/welcome.php
        @@ -10,6 +10,13 @@
         

        +
        +
        +
        +
        + | + +