mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Gaetan Boismal
15.04.2016 2095a28e3b117ddc7b565bc7fbe410af70cb48f4
OPENDJ-2772 Align SDK client tool with server's

* General changes
    * Migrate translation of localized messages when they were available in the server
    * Remove common -i, --encoding {encoding} argument since the option is not implemented
* Changes related to -V, --ldapVersion {version} are effective in 3 commits

---------------------------------------------------------------------------------------------------------------------------------------
* ldapcompare (in comparison of server tool)
* Usage: ldapcompare {options} attribute:value [DN ...] becomes ldapcompare {options} attribute:value DN
* Only reads one DN from the command line (if a user wants to compare against multiple DN he can use scripts)
* Added:
* -E, --reportAuthzID
* -T short option for --trustStorePassword {trustStorePassword} option
* -V short option for --version option
* -Y, --proxyAs {authzID}
* --usePasswordPolicyControl
* Removed:
* -c, --continueOnError (with new usage this parameter has no meaning)
* -f, --filename argument (now the tool read only one DN from the command line)
* -i, --encoding {encoding} option is removed (it was actually not implemented)
* -r, --useSASLExternal (it is redundant as a particular usage of -o, --saslOption mech="EXTERNAL" argument
* -V, --ldapVersion {version} (not implemented because we always do bind in v3)
* Modified:
* -m, --useCompareResultCode
* Note that if the argument is not used and compare operation returns false, the script will return with COMPARE_FALSE.
In other words, the tool always return COMPARE_FALSE if the compare operation is not successfull
* Renamed:
* -s, --script-friendly renamed as -S, --scriptFriendly (to be consistent with other existing sdk tools (xxxrate))
-----------------------------------------------------------------------------
* ldapcompare (in comparison of sdk tool)
* Usage: ldapcompare {options} attribute:value [DN ...] becomes ldapcompare {options} attribute:value DN
* Only reads one DN from the command line (if a user wants to compare against multiple DN he can use scripts)
* Added:
* --connectTimeout {timeout} (hidden now visible)
* -m, --useCompareResultCode
* Note that if the argument is not used and compare operation returns false, the script will return with COMPARE_FALSE.
In other words, the tool always return COMPARE_FALSE if the compare operation is not successfull
* -S, --scriptFriendly
* -V short option for --version option
* Removed:
* -c, --continueOnError (with new usage this parameter has no meaning)
* -f, --filename argument (now the tool read only one DN from the command line)
* -i, --encoding {encoding} option is removed (it was actually not implemented)
* -V, --ldapVersion {version} (not implemented because we always do bind in v3)

---------------------------------------------------------------------------------------------------------------------------------------
* ldapmodify (in comparison of server tool)
    * Usage: ldapmodify {options} becomes ldapmodify {options} [changes_files ...] (to be consistent with ldifmodify)
* A user can now provides multiples ldif files with changes
* Added:
* -T short option for --trustStorePassword {trustStorePassword} option
* --usePasswordPolicyControl
* -V short option for --version option
* Removed:
* -a, --defaultAdd argument (default sdk behavior)
* -i, --encoding {encoding} option is removed (it was actually not implemented)
* -r, --useSASLExternal (it is redundant as a particular usage of -o, --saslOption mech="EXTERNAL" argument
* -V, --ldapVersion {version} (not implemented because we always do bind in v3)
* Hidden:
* -f, --filename argument (ensure compatibility with existing scripts)
-----------------------------------------------------------------------------
* ldapmodify (in comparison of sdk tool)
    * Usage: ldapmodify {options} becomes ldapmodify {options} [changes_files ...] (to be consistent with ldifmodify)
* A user can now provides multiples ldif files with changes, if any are provided we will read changes on standard input
* Added:
* --connectTimeout {timeout} (hidden now visible)
* -V short option for --version option
* Hidden:
* -f, --filename argument (ensure compatibility with existing scripts)
* Removed:
* -V, --ldapVersion {version} (not implemented because we always do bind in v3)
-----------------------------------------------------------------------------
* ldapmodify use standard input
* if none are provided (or if the hyphen token is used 'ldapmodify {options} -- -') we will read changes on standard input
---------------------------------------------------------------------------------------------------------------------------------------
* ldappasswordmodify (in comparison of server tool)
    * Usage: identical
* Added:
* -E, --reportAuthzID
* -F short option for --newPasswordFile {file} option
* -N short option for --certNickname option
* -o, --saslOption {name=value}
* -T short option for --trustStorePassword {trustStorePassword} option
* -v, --verbose
* --usePasswordPolicyControl
* Removed:
    * -A, --provideDNForAuthzID (default sdk behavior)
    * -N short option for --newPasswordFile option (-N references --certNickname {nickname} in sdk tools)
-----------------------------------------------------------------------------
* ldappasswordmodify (in comparison of sdk tool)
    * Usage: identical
* Added:
* -V short option for --version option
* --connectTimeout {timeout} (hidden now visible)
* Removed:
    * -V, --ldapVersion {version} (not implemented because we always do bind in v3)

---------------------------------------------------------------------------------------------------------------------------------------
* ldapsearch (in comparison of server tool)
    * Usage: ldapsearch {options} [filter] [attributes ...] becomes ldapsearch {options} filter [attributes ...]
* Now the filter trailing argument is mandatory
* Added:
    * -t, --wrapColumn (new option to wrap output content (default is no wraping))
* -T short option for --trustStorePassword {trustStorePassword} option
* -V short option for --version option
* Removed:
* -c, --continueOnError (with new usage this parameter has no meaning)
* -f, --filename argument (can easily be doing with scipt)
* -i, --encoding {encoding} option is removed (it was actually not implemented)
* -r, --useSASLExternal (it is redundant as a particular usage of -o, --saslOption mech="EXTERNAL" argument
* -T, --dontWrap (replaced by -t, --wrapColumn)
* -V, --ldapVersion {version} (not implemented because we always do bind in v3)
* Additional changes:
    * Add Note: 'subordinate' is an LDAP extension that might not work with all LDAP servers to the -s, --searchScope {searchScope} argument description
-----------------------------------------------------------------------------
* ldapsearch (in comparison of sdk tool)
    * Usage: ldapsearch {options} [filter] [attributes ...] becomes ldapsearch {options} filter [attributes ...]
* Now the filter trailing argument is mandatory
* Added:
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
* -V short option for --version option
* --connectTimeout {timeout} (hidden now visible)
* --subEntries
* Removed:
* -f, --filename argument (can easily be doing with scipt)
* -t, --dontWrap (replaced by -t, --wrapColumn)
    * -V, --ldapVersion {version} (not implemented because we always do bind in v3)

---------------------------------------------------------------------------------------------------------------------------------------
* ldifdiff (in comparison of server tool ldif-diff)
* Usage: ldif-diff {options} becomes ldifdiff {options} source target
* Source and target file are now mandatory trailing args (align with unix diff command)
    * Note that the tool now returns 0 if no diffs are found and 1 if diffs are found (before was always 0).
    * Added:
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
* Removed:   
        * -a, --ignoreAttrs {file} (due to sdk tool design)
        * -e, --ignoreEntries {file} (due to sdk tool design)
        * -O, --overwriteExisting (sdk default behavior)
* -r, --useCompareResultCode (that was not right to use LDAP return code, align with unix diff command is worth)
    * -s, --sourceLDIF {file} (mandatory trailing argument)
        * -S, --singleValueChanges (due to sdk tool design)
    * -t, --targetLDIF {file} (mandatory trailing argument)
        * --checkSchema (due to sdk tool design)

-----------------------------------------------------------------------------
* ldifdiff (in comparison of sdk tool)
    * Usage: identical
* source or target can be read on standard input (use 'ldifdiff {options} -- - target' or 'ldifdiff {options} -- source -')
* Note that the tool now returns 0 if no diffs are found and 1 if diffs are found (before was always 0).
* Added:
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
-----------------------------------------------------------------------------
* ldifdiff use standard input/output
* source or target can be read on standard input (use 'ldifdiff {options} -- - target' or 'ldifdiff {options} -- source -')
* If -o, --outputLDIF {file} is not used (or if '-o ' is used) diffs are written on standard output

---------------------------------------------------------------------------------------------------------------------------------------
* ldifmodify (in comparison of server tool ldifmodify)
* Usage: ldifmodify {options} becomes ldifmodify {options} source_file [changes_files...]
* Now we have ldapmodify and ldifmodify behavior aligned
* Added:
* -c, --continueOnError
* -o, --outputLDIF
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
* Removed:   
    * -s, --sourceLDIF {file} (mandatory trailing argument)
    * -m, --changesLDIF {ldifFile} (trailing argument or stdin)
    * -t, --targetLDIF {ldifFile} (renamed as -o, --outputLDIF {file} to be consistent with other sdk tools
-----------------------------------------------------------------------------
* ldifmodify (in comparison of sdk tool)
    * Usage: ldifmodify {options} becomes ldifmodify {options} source_file [changes_files...]
* Now we have ldapmodify and ldifmodify behavior aligned
* Added:
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
-----------------------------------------------------------------------------
* ldifmodify use standard input/output
* source_file can be read from standard input (use 'ldifmodify {options} -- - changes_files...)
* changes_files can be read from standard input (use 'ldifmodify {options} -- source_file -)
* If -o is not used (or if '-o ' is used) diffs are written on standard output

---------------------------------------------------------------------------------------------------------------------------------------
* ldifsearch (in comparison of server tool ldifsearch)
* Usage: ldifsearch {options} source [filter] [attributes ...] becomes ldifsearch {options} source filter [attributes ...]
* Now we have mandatory filter (consistency with ldapsearch)
* Added:
* -A, --typesOnly
* -l as short option for --timeLimit (in replacement of -t)
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
* --outputLDIF (in replacement of --outputFile to be consistent with other sdk tools)
* Removed:
    * -f, --f {filterFileName} (can be scripted)
    * -l, --ldifFile {ldifFile} (mandatory trailing argument)
    * -O, --overwriteExisting (default sdk behavior)
    * -t for --timeLimit argument (now -t references --timeLimit)
* -T, --dontWrap (replaced by -t, --wrapColumn)
    * --outputFile (renamed as --outputLDIF to be consistent with other sdk tools)
* Modifications:
* -b --baseDN is not anymore multi valued (keep the sdk behavior)
-----------------------------------------------------------------------------
* ldifsearch (in comparison of sdk tool)
* Usage: ldifsearch {options} source [filter] [attributes ...] becomes ldifsearch {options} source filter [attributes ...]
* Now we have mandatory filter (consistency with ldapsearch)
* Added:
* -t, --wrapColumn (new option to wrap output content (default is no wraping))
* Removed:
* -f, --f {filterFileName} (can be scripted)
* Modifications:
* -b --baseDN has root DSE default value (copy server behavior)
-----------------------------------------------------------------------------
* ldifsearch use standard input/output
* source can be read from standard input (use 'ldifsearch {options} -- - filter [attributes...])
* If -o is not used (or if '-o ' is used) diffs are written on standard output
40 files modified
2200 ■■■■ changed files
opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentConstants.java 8 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java 2 ●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/CliConstants.java 4 ●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/CommonArguments.java 75 ●●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java 6 ●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties 8 ●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ca_ES.properties 25 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_de.properties 26 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_es.properties 26 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_fr.properties 26 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ja.properties 26 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ko.properties 25 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_pl.properties 25 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_zh_CN.properties 26 ●●●●● patch | view | raw | blame | history
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_zh_TW.properties 25 ●●●●● patch | view | raw | blame | history
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java patch | view | raw | blame | history
opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordWriter.java 15 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPCompare.java 201 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java 107 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPPasswordModify.java 37 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPSearch.java 190 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFDiff.java 75 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFModify.java 79 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFSearch.java 95 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java 144 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Utils.java 71 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties 36 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties 48 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties 100 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties 102 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties 102 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties 100 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties 97 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties 49 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties 100 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties 97 ●●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/LDAPCompareITCase.java 4 ●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/LDAPSearchITCase.java 3 ●●●● patch | view | raw | blame | history
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java 13 ●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java 2 ●●● patch | view | raw | blame | history
opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentConstants.java
@@ -265,9 +265,6 @@
    /** Long form of option for the command-line encoding option. */
    public static final String OPTION_LONG_ENCODING = "encoding";
    /** Long form of option specifying no wrapping of the command-line. */
    public static final String OPTION_LONG_DONT_WRAP = "dontWrap";
    /** The value for the long option targetDN. */
    public static final String OPTION_LONG_TARGETDN = "targetDN";
@@ -384,6 +381,11 @@
    /** The value to use to read from stdin or write to stdout. */
    public static final String USE_SYSTEM_STREAM_TOKEN = "-";
    /** The value for the wrap column long option. */
    public static final String OPTION_LONG_WRAP_COLUMN = "wrapColumn";
    /** The value for the wrap column short option. */
    public static final char OPTION_SHORT_WRAP_COLUMN = 't';
    /** Prevent instantiation. */
    private ArgumentConstants() {
    }
opendj-cli/src/main/java/com/forgerock/opendj/cli/ArgumentParser.java
@@ -1443,7 +1443,7 @@
                            || OPTION_LONG_PROP_FILE_PATH.equals(longId)
                            || OPTION_LONG_NO_PROP_FILE.equals(longId)
                            || OPTION_LONG_SCRIPT_FRIENDLY.equals(longId)
                            || OPTION_LONG_DONT_WRAP.equals(longId)
                            || OPTION_LONG_WRAP_COLUMN.equals(longId)
                            || OPTION_LONG_ENCODING.equals(longId)
                            || OPTION_LONG_BATCH_FILE_PATH.equals(longId);
        }
opendj-cli/src/main/java/com/forgerock/opendj/cli/CliConstants.java
@@ -12,7 +12,7 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2006-2010 Sun Microsystems, Inc.
 * Portions copyright 2012-2015 ForgeRock AS.
 * Portions copyright 2012-2016 ForgeRock AS.
 */
package com.forgerock.opendj.cli;
@@ -60,6 +60,8 @@
    /** Default Administration UID. */
    public static final String GLOBAL_ADMIN_UID = "admin";
    /** Default maximum number of columns before starting to wrap tools output. */
    public static final int NO_WRAPPING_BY_DEFAULT = 0;
    /** Prevent instantiation. */
    private CliConstants() {
opendj-cli/src/main/java/com/forgerock/opendj/cli/CommonArguments.java
@@ -15,6 +15,7 @@
 */
package com.forgerock.opendj.cli;
import static com.forgerock.opendj.cli.CliConstants.NO_WRAPPING_BY_DEFAULT;
import static com.forgerock.opendj.cli.CliMessages.*;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.CliConstants.DEFAULT_LDAP_CONNECT_TIMEOUT;
@@ -305,17 +306,6 @@
    }
    /**
     * Returns a "connectTimeout" hidden integer argument.
     *
     * @return A "connectTimeout" hidden integer argument.
     * @throws ArgumentException
     *             If there is a problem with any of the parameters used to create this argument.
     */
    public static IntegerArgument connectTimeOutHiddenArgument() throws ArgumentException {
        return connectTimeOutArgument(true);
    }
    /**
     * Returns a "connectTimeout" integer argument.
     *
     * @return A "connectTimeout" integer argument.
@@ -323,19 +313,12 @@
     *             If there is a problem with any of the parameters used to create this argument.
     */
    public static IntegerArgument connectTimeOutArgument() throws ArgumentException {
        return connectTimeOutArgument(false);
    }
    private static IntegerArgument connectTimeOutArgument(final boolean hidden) throws ArgumentException {
        final IntegerArgument.Builder builder = IntegerArgument.builder(OPTION_LONG_CONNECT_TIMEOUT)
        return IntegerArgument.builder(OPTION_LONG_CONNECT_TIMEOUT)
                .description(INFO_DESCRIPTION_CONNECTION_TIMEOUT.get())
                .lowerBound(0)
                .defaultValue(DEFAULT_LDAP_CONNECT_TIMEOUT)
                .valuePlaceholder(INFO_TIMEOUT_PLACEHOLDER.get());
        if (hidden) {
            builder.hidden();
        }
        return builder.buildArgument();
                .valuePlaceholder(INFO_TIMEOUT_PLACEHOLDER.get())
                .buildArgument();
    }
    /**
@@ -804,22 +787,6 @@
    }
    /**
     * Returns the "encoding" string argument. <br>
     * <i> N.B : the 'i' short option is also used by cli</i>
     *
     * @return The "encoding" argument.
     * @throws ArgumentException
     *             If there is a problem with any of the parameters used to create this argument.
     */
    public static StringArgument encodingArgument() throws ArgumentException {
        return StringArgument.builder("encoding")
                .shortIdentifier('i')
                .description(INFO_DESCRIPTION_ENCODING.get())
                .valuePlaceholder(INFO_ENCODING_PLACEHOLDER.get())
                .buildArgument();
    }
    /**
     * Returns the "do not start" boolean argument.
     *
     * @return The "doNotStart" argument.
@@ -864,23 +831,6 @@
    }
    /**
     * Returns the "filename" string argument.
     * <i> N.B : the 'f' short option is also used by configfile</i>
     * @param description
     *            The description of this argument.
     * @return The "filename" argument.
     * @throws ArgumentException
     *             If there is a problem with any of the parameters used to create this argument.
     */
    public static StringArgument filenameArgument(final LocalizableMessage description) throws ArgumentException {
        return StringArgument.builder(OPTION_LONG_FILENAME)
                .shortIdentifier(OPTION_SHORT_FILENAME)
                .description(description)
                .valuePlaceholder(INFO_FILE_PLACEHOLDER.get())
                .buildArgument();
    }
    /**
     * Returns the "enable start TLS" boolean argument.
     *
     * @return The "enableStartTLS" argument.
@@ -1149,4 +1099,21 @@
        }
        return builder.buildArgument();
    }
    /**
     * Returns the "-t, --wrapColumn" integer argument.
     *
     * @return The "-t, --wrapColumn" integer argument.
     * @throws ArgumentException
     *             If there is a problem with any of the parameters used to create this argument.
     */
    public static IntegerArgument wrapColumnArgument() throws ArgumentException {
        return IntegerArgument.builder(OPTION_LONG_WRAP_COLUMN)
                .shortIdentifier(OPTION_SHORT_WRAP_COLUMN)
                .lowerBound(0)
                .defaultValue(NO_WRAPPING_BY_DEFAULT)
                .description(INFO_DESCRIPTION_WRAP_COLUMN.get())
                .valuePlaceholder(INFO_WRAP_COLUMN_PLACEHOLDER.get())
                .buildArgument();
    }
}
opendj-cli/src/main/java/com/forgerock/opendj/cli/ConnectionFactoryProvider.java
@@ -147,8 +147,8 @@
     * @throws ArgumentException
     *             If an error occurs during parsing the arguments.
     */
    public ConnectionFactoryProvider(final ArgumentParser argumentParser,
            final ConsoleApplication app) throws ArgumentException {
    public ConnectionFactoryProvider(final ArgumentParser argumentParser, final ConsoleApplication app)
            throws ArgumentException {
        this(argumentParser, app, "", DEFAULT_LDAP_PORT, false);
    }
@@ -243,7 +243,7 @@
        reportAuthzIDArg = reportAuthzIdArgument();
        argumentParser.addArgument(reportAuthzIDArg);
        connectTimeOut = connectTimeOutHiddenArgument();
        connectTimeOut = connectTimeOutArgument();
        argumentParser.addArgument(connectTimeOut);
        usePasswordPolicyControlArg =
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli.properties
@@ -124,8 +124,6 @@
 the server. Use -w - to ensure that the command prompts for the password, \
 rather than entering the password as a command argument
INFO_DESCRIPTION_BINDPASSWORDFILE=Bind password file
INFO_DESCRIPTION_ENCODING=Use the specified character set for \
 command-line input
INFO_DESCRIPTION_VERBOSE=Use verbose mode
INFO_DESCRIPTION_KEYSTOREPATH=Certificate key store path
INFO_DESCRIPTION_TRUSTSTOREPATH=Certificate trust store path
@@ -144,7 +142,8 @@
INFO_DESCRIPTION_RESTART=Attempt to automatically restart the \
 server once it has stopped
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=Search scope ('base', 'one', 'sub', \
 or 'subordinate')
 or 'subordinates'). Note: 'subordinates' is an LDAP extension \
 that might not work with all LDAP servers
ERR_LDAPAUTH_UNSUPPORTED_SASL_MECHANISM=The requested SASL mechanism \
 "%s" is not supported by this client
ERR_LDAPAUTH_SASL_AUTHID_REQUIRED=The "authid" SASL property is \
@@ -196,7 +195,6 @@
INFO_PROP_FILE_PATH_PLACEHOLDER={propertiesFilePath}
INFO_NUM_ENTRIES_PLACEHOLDER={numEntries}
INFO_LDAP_CONTROL_PLACEHOLDER={controloid[:criticality[:value|::b64value|:<filePath]]}
INFO_ENCODING_PLACEHOLDER={encoding}
INFO_SEARCH_SCOPE_PLACEHOLDER={searchScope}
INFO_KEYSTORE_PWD_FILE_PLACEHOLDER={keyStorePasswordFile}
INFO_PATH_PLACEHOLDER={path}
@@ -210,6 +208,8 @@
INFO_DESCRIPTION_ADMIN_PORT=Directory server administration port number
INFO_DESCRIPTION_ADMIN_BINDDN=Administrator user bind DN
INFO_ERROR_EMPTY_RESPONSE=ERROR: a response must be provided in order to continue
INFO_DESCRIPTION_WRAP_COLUMN=Maximum length of an output line (0 for no wrapping)
INFO_WRAP_COLUMN_PLACEHOLDER={wrapColumn}
 #
 # MakeLDIF tool
 #
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ca_ES.properties
@@ -15,3 +15,28 @@
#
ERR_TOOL_CONFLICTING_ARGS=ERROR:  Potser nou heu introdu\u00eft ambd\u00f3s arguments %s i %s al mateix cop
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\u00c0mbit de cerca ('base', 'one', 'sub', o 'subordinate')
INFO_DESCRIPTION_DONT_WRAP=No replegar les l\u00ednies llargues
INFO_DESCRIPTION_BINDDN=DN per utilitzar per enlla\u00e7ar al servidor
INFO_DESCRIPTION_BINDPASSWORD=Contrasenya per utilitzar per enlla\u00e7ar al servidor
INFO_DESCRIPTION_BINDPASSWORDFILE=Fitxer enlla\u00e7 de contrasenya
INFO_DESCRIPTION_KEYSTOREPATH=Ruta del magatzem del certificat de claus
INFO_DESCRIPTION_TRUSTSTOREPATH=Ruta del magatzem del certificat de confian\u00e7a
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=PIN del magatzem del certificat de claus
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=Nom d'equip o adre\u00e7a IP del servidor de directori
INFO_DESCRIPTION_PORT=Numero de port del servidor de directori
INFO_DESCRIPTION_CONTROLS=Utilitzar un control de peticions amb la informaci\u00f3 proporcionada
INFO_DESCRIPTION_CONTINUE_ON_ERROR=Continuar processant encara que hi hagin errors
INFO_DESCRIPTION_USE_SSL=Utilitzar SSL per a una comunicaci\u00f3 segura amb el servidor
INFO_DESCRIPTION_START_TLS=Utilitzar StartTLS per a una comunicaci\u00f3 segura amb el servidor
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=Opcions enlla\u00e7 SASL
INFO_DESCRIPTION_VERSION=N\u00famero de versi\u00f3 del protocol LDAP
INFO_DESCRIPTION_NOOP=Mostrar que es far\u00e0 per\u00f2 no realitzar cap operaci\u00f3
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=Fitxer PIN del magatzem del certificat de claus
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=PIN del magatzem del certificat de confian\u00e7a
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Fitxer PIN del magatzem del certificat de confian\u00e7a
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=Sobrenom del certificat per l'autentificaci\u00f3 de client SSL
INFO_DESCRIPTION_SCRIPT_FRIENDLY=Utilitzar el mode de script amigable
INFO_DESCRIPTION_PROP_FILE_PATH=La ruta al fitxer que cont\u00e9 els valors de les propietats predeterminades utilitzat pels arguments de la l\u00ednia de comandes
INFO_DESCRIPTION_NO_PROP_FILE=No s'utilitzar\u00e0 cap fitxer de propietats per obtenir els valors predeterminats dels arguments de la l\u00ednia de comandes
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_de.properties
@@ -15,3 +15,29 @@
#
ERR_TOOL_CONFLICTING_ARGS=Sie haben m\u00f6glicherweise nicht beide Argumente --%s und --%s angegeben
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=Suchumfang ('base', 'one', 'sub' oder 'subordinate')
INFO_DESCRIPTION_DONT_WRAP=Lange Zeilen nicht umbrechen
INFO_DESCRIPTION_BINDDN=DN f\u00fcr die Verbindung zum Server
INFO_DESCRIPTION_BINDPASSWORD=Passwort f\u00fcr die Verbindung zum Server
INFO_DESCRIPTION_BINDPASSWORDFILE=Passwortdatei f\u00fcr die Verbindung
INFO_DESCRIPTION_KEYSTOREPATH=Zertifikatschl\u00fcsselspeicherpfad
INFO_DESCRIPTION_TRUSTSTOREPATH=Zertifikat-Trust Store-Pfad
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=Zertifikatschl\u00fcsselspeicher-PIN
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=Directory-Server-Hostname oder -IP-Adresse
INFO_DESCRIPTION_PORT=Directory-Server-Portnummer
INFO_DESCRIPTION_CONTROLS=Anforderungssteuerung f\u00fcr die angegebenen Informationen verwenden
INFO_DESCRIPTION_CONTINUE_ON_ERROR=Bearbeitung auch bei Fehlern fortsetzen
INFO_DESCRIPTION_USE_SSL=SSL f\u00fcr sichere Kommunikation mit dem Server verwenden
INFO_DESCRIPTION_START_TLS=StartTLS f\u00fcr sichere Kommunikation mit dem Server verwenden
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL-Verbindungsoptionen
INFO_DESCRIPTION_VERSION=Versionsnummer des LDAP-Protokolls
INFO_DESCRIPTION_NOOP=Anzeigen, was ausgef\u00fchrt werden w\u00fcrde, aber keine Vorg\u00e4nge ausf\u00fchren
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=Zertifikatschl\u00fcsselspeicher-PIN-Datei
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=Zertifikat-Trust Store-PIN
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Zertifikat-Trust Store-PIN-Datei
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=Spitzname des Zertifikats f\u00fcr die SSL-Client-Authentifizierung
INFO_DESCRIPTION_SCRIPT_FRIENDLY=Skript-freundlichen Modus verwenden
INFO_DESCRIPTION_PROP_FILE_PATH=Pfad zur Datei mit den Standardeigenschaftswerten f\u00fcr die Befehlszeilenargumente
INFO_DESCRIPTION_NO_PROP_FILE=Es wird keine Eigenschaftendatei mit den Standardargumentwerte f\u00fcr die Befehlszeile verwendet
INFO_DESCRIPTION_CONNECTION_TIMEOUT=Maximale Dauer (in Millisekunden), die die Verbindungsherstellung in Anspruch nehmen kann
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_es.properties
@@ -15,3 +15,29 @@
#
ERR_TOOL_CONFLICTING_ARGS=No se pueden proporcionar los argumentos --%s y --%s conjuntamente
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\u00c1mbito de b\u00fasqueda ('base', 'uno', 'sub' o 'subordinada')
INFO_DESCRIPTION_DONT_WRAP=No ajustar l\u00edneas largas
INFO_DESCRIPTION_BINDDN=ND que utilizar para enlazar al servidor
INFO_DESCRIPTION_BINDPASSWORD=Contrase\u00f1a que utilizar para enlazar al servidor
INFO_DESCRIPTION_BINDPASSWORDFILE=Archivo de contrase\u00f1as de enlace
INFO_DESCRIPTION_KEYSTOREPATH=Ruta de almac\u00e9n de claves de certificados
INFO_DESCRIPTION_TRUSTSTOREPATH=Ruta de almac\u00e9n de confianza de certificado
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=PIN de almac\u00e9n de claves de certificados
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=Direcci\u00f3n IP o nombre de host de servidor de directorios
INFO_DESCRIPTION_PORT=N\u00famero de puerto de servidor de directorios
INFO_DESCRIPTION_CONTROLS=Utilizar un control de solicitud con la informaci\u00f3n especificada
INFO_DESCRIPTION_CONTINUE_ON_ERROR=Continuar el procesamiento incluso si hay errores
INFO_DESCRIPTION_USE_SSL=Utilizar SSL para la comunicaci\u00f3n segura con el servidor
INFO_DESCRIPTION_START_TLS=Utilizar StartTLS para la comunicaci\u00f3n segura con el servidor
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=Opciones de enlace de SASL
INFO_DESCRIPTION_VERSION=N\u00famero de versi\u00f3n del protocolo LDAP
INFO_DESCRIPTION_NOOP=Muestra qu\u00e9 se debe hacer pero no realiza ninguna operaci\u00f3n
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=Archivo de PIN de almac\u00e9n de claves de certificados
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=PIN de almac\u00e9n de confianza de certificado
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Archivo de PIN de almac\u00e9n de confianza de certificado
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=Sobrenombre del certificado para la autenticaci\u00f3n del cliente SSL
INFO_DESCRIPTION_SCRIPT_FRIENDLY=Utilizar modo de secuencia de comandos
INFO_DESCRIPTION_PROP_FILE_PATH=Ruta al archivo que contiene los valores de propiedad predeterminados usados para argumentos de la l\u00ednea de comandos
INFO_DESCRIPTION_NO_PROP_FILE=No se utilizar\u00e1 ning\u00fan archivo de propiedades para obtener los valores de argumentos de l\u00ednea de comandos predeterminados
INFO_DESCRIPTION_CONNECTION_TIMEOUT=La duraci\u00f3n m\u00e1xima de tiempo (en mil\u00e9simas de segundo) que puede tardarse en establecer una conexi\u00f3n
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_fr.properties
@@ -15,3 +15,29 @@
#
ERR_TOOL_CONFLICTING_ARGS=Vous ne pouvez pas utiliser \u00e0 la fois les arguments --%s et --%s
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=Domaine de recherche ('base', 'one', 'sub' ou 'subordinate')
INFO_DESCRIPTION_DONT_WRAP=Ne pas adapter les lignes longues
INFO_DESCRIPTION_BINDDN=DN \u00e0 utiliser pour effectuer une liaison au serveur
INFO_DESCRIPTION_BINDPASSWORD=Mot de passe \u00e0 utiliser pour effectuer une liaison au serveur
INFO_DESCRIPTION_BINDPASSWORDFILE=Fichier de mots de passe de liaison
INFO_DESCRIPTION_KEYSTOREPATH=Chemin de keystore de certificat
INFO_DESCRIPTION_TRUSTSTOREPATH=Chemin de magasin d'approbations de certificats
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=Mot de passe du keystore de certificat
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=Nom d'h\u00f4te ou adresse IP du serveur d'annuaire
INFO_DESCRIPTION_PORT=Num\u00e9ro de port du serveur d'annuaire
INFO_DESCRIPTION_CONTROLS=Utiliser un contr\u00f4le des requ\u00eates avec les informations indiqu\u00e9es
INFO_DESCRIPTION_CONTINUE_ON_ERROR=Continuer le traitement m\u00eame s'il y a des erreurs
INFO_DESCRIPTION_USE_SSL=Utiliser SSL pour s\u00e9curiser la communication avec le serveur
INFO_DESCRIPTION_START_TLS=Utiliser StartTLS pour s\u00e9curiser la communication avec le serveur
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=Options de liaison SASL
INFO_DESCRIPTION_VERSION=Num\u00e9ro de la version de protocole LDAP
INFO_DESCRIPTION_NOOP=Afficher les \u00e9tapes de l'op\u00e9ration sans l'effectuer
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=Fichier de mot de passe du keystore de certificats
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=Num\u00e9ro d'identification personnel de magasin d'approbation de certificats
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Fichier de num\u00e9ros d'identification personnels de magasins d'approbation de certificats
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=Pseudonyme du certificat pour l'authentification client SSL
INFO_DESCRIPTION_SCRIPT_FRIENDLY=Utiliser le mode adapt\u00e9 aux scripts
INFO_DESCRIPTION_PROP_FILE_PATH=Chemin vers le fichier contenant les valeurs des propri\u00e9t\u00e9s par d\u00e9faut pour les arguments de ligne de commande
INFO_DESCRIPTION_NO_PROP_FILE=Aucun fichier de propri\u00e9t\u00e9 ne va \u00eatre utilis\u00e9 pour obtenir des valeurs d'arguments de ligne de commande
INFO_DESCRIPTION_CONNECTION_TIMEOUT=Dur\u00e9e maximale (en millisecondes) qui peut \u00eatre n\u00e9cessaire pour \u00e9tablir une connexion
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ja.properties
@@ -15,3 +15,29 @@
#
ERR_TOOL_CONFLICTING_ARGS=--%s \u5f15\u6570\u3068 --%s \u5f15\u6570\u306e\u4e21\u65b9\u306f\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\u691c\u7d22\u7bc4\u56f2 ('base'\u3001'one'\u3001'sub'\u3001\u307e\u305f\u306f 'subordinates')
INFO_DESCRIPTION_DONT_WRAP=\u9577\u3044\u884c\u3092\u6298\u308a\u8fd4\u3057\u307e\u305b\u3093
INFO_DESCRIPTION_BINDDN=\u30b5\u30fc\u30d0\u30fc\u3078\u306e\u30d0\u30a4\u30f3\u30c9\u306b\u4f7f\u7528\u3059\u308b DN
INFO_DESCRIPTION_BINDPASSWORD=\u30b5\u30fc\u30d0\u30fc\u3078\u306e\u30d0\u30a4\u30f3\u30c9\u306b\u4f7f\u7528\u3059\u308b\u30d1\u30b9\u30ef\u30fc\u30c9
INFO_DESCRIPTION_BINDPASSWORDFILE=\u30d1\u30b9\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u3092\u30d0\u30a4\u30f3\u30c9\u3057\u307e\u3059
INFO_DESCRIPTION_KEYSTOREPATH=\u8a3c\u660e\u66f8\u9375\u30b9\u30c8\u30a2\u306e\u30d1\u30b9
INFO_DESCRIPTION_TRUSTSTOREPATH=\u8a3c\u660e\u66f8\u30c8\u30e9\u30b9\u30c8\u30b9\u30c8\u30a2\u306e\u30d1\u30b9
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=\u8a3c\u660e\u66f8\u9375\u30b9\u30c8\u30a2\u306e PIN
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306e\u30db\u30b9\u30c8\u540d\u307e\u305f\u306f IP \u30a2\u30c9\u30ec\u30b9
INFO_DESCRIPTION_PORT=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u306e\u30dd\u30fc\u30c8\u756a\u53f7
INFO_DESCRIPTION_CONTROLS=\u6307\u5b9a\u3055\u308c\u305f\u60c5\u5831\u3067\u8981\u6c42\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_CONTINUE_ON_ERROR=\u30a8\u30e9\u30fc\u304c\u5b58\u5728\u3057\u3066\u3082\u51e6\u7406\u3092\u7d9a\u884c\u3057\u307e\u3059
INFO_DESCRIPTION_USE_SSL=\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u4fdd\u8b77\u3055\u308c\u305f\u901a\u4fe1\u306b SSL \u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_START_TLS=\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc\u4fdd\u8b77\u3055\u308c\u305f\u901a\u4fe1\u306b StartTLS \u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL \u30d0\u30a4\u30f3\u30c9\u30aa\u30d7\u30b7\u30e7\u30f3
INFO_DESCRIPTION_VERSION=LDAP \u30d7\u30ed\u30c8\u30b3\u30eb\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7
INFO_DESCRIPTION_NOOP=\u5b9f\u884c\u3055\u308c\u308b\u5185\u5bb9\u3092\u8868\u793a\u3057\u307e\u3059\u304c\u3001\u64cd\u4f5c\u306f\u5b9f\u884c\u3057\u307e\u305b\u3093
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=\u8a3c\u660e\u66f8\u9375\u30b9\u30c8\u30a2\u306e PIN \u30d5\u30a1\u30a4\u30eb
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=\u8a3c\u660e\u66f8\u30c8\u30e9\u30b9\u30c8\u30b9\u30c8\u30a2\u306e PIN
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=\u8a3c\u660e\u66f8\u30c8\u30e9\u30b9\u30c8\u30b9\u30c8\u30a2\u306e PIN \u30d5\u30a1\u30a4\u30eb
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=SSL \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u8a8d\u8a3c\u306e\u8a3c\u660e\u66f8\u306e\u30cb\u30c3\u30af\u30cd\u30fc\u30e0
INFO_DESCRIPTION_SCRIPT_FRIENDLY=\u30b9\u30af\u30ea\u30d7\u30c8\u30d5\u30ec\u30f3\u30c9\u30ea\u30e2\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_PROP_FILE_PATH=\u30b3\u30de\u30f3\u30c9\u884c\u5f15\u6570\u306b\u4f7f\u7528\u3055\u308c\u308b\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u5024\u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9
INFO_DESCRIPTION_NO_PROP_FILE=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30b3\u30de\u30f3\u30c9\u884c\u5f15\u6570\u5024\u306e\u53d6\u5f97\u306b\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30d5\u30a1\u30a4\u30eb\u306f\u4f7f\u7528\u3055\u308c\u307e\u305b\u3093
INFO_DESCRIPTION_CONNECTION_TIMEOUT=\u63a5\u7d9a\u3092\u78ba\u7acb\u3059\u308b\u305f\u3081\u306b\u304b\u3051\u3089\u308c\u308b\u6700\u5927\u6642\u9593 (\u30df\u30ea\u79d2)
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_ko.properties
@@ -15,3 +15,28 @@
#
ERR_TOOL_CONFLICTING_ARGS=--%s \uc778\uc218\uc640 --%s \uc778\uc218\ub97c \ubaa8\ub450 \uc81c\uacf5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\uac80\uc0c9 \ubc94\uc704('base', 'one', 'sub' \ub610\ub294 'subordinate')
INFO_DESCRIPTION_DONT_WRAP=\uae34 \ud589 \uc904\ubc14\uafc8 \uc548 \ud568
INFO_DESCRIPTION_BINDDN=\uc11c\ubc84\uc5d0 \ubc14\uc778\ub4dc\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 DN
INFO_DESCRIPTION_BINDPASSWORD=\uc11c\ubc84\uc5d0 \ubc14\uc778\ub4dc\ud558\ub294 \ub370 \uc0ac\uc6a9\ud560 \ube44\ubc00\ubc88\ud638
INFO_DESCRIPTION_BINDPASSWORDFILE=\ube44\ubc00\ubc88\ud638 \ud30c\uc77c\uc744 \ubc14\uc778\ub4dc\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_KEYSTOREPATH=\uc778\uc99d\uc11c \ud0a4 \uc800\uc7a5\uc18c \uacbd\ub85c
INFO_DESCRIPTION_TRUSTSTOREPATH=\uc778\uc99d\uc11c \ud2b8\ub7ec\uc2a4\ud2b8 \uc800\uc7a5\uc18c \uacbd\ub85c
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=\uc778\uc99d\uc11c \ud0a4 \uc800\uc7a5\uc18c PIN
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84 \ud638\uc2a4\ud2b8 \uc774\ub984 \ub610\ub294 IP \uc8fc\uc18c
INFO_DESCRIPTION_PORT=\ub514\ub809\ud1a0\ub9ac \uc11c\ubc84 \ud3ec\ud2b8 \ubc88\ud638
INFO_DESCRIPTION_CONTROLS=\uc81c\uacf5\ub41c \uc815\ubcf4\ub85c \uc694\uccad \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_CONTINUE_ON_ERROR=\uc624\ub958\uac00 \ubc1c\uc0dd\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uacc4\uc18d \ucc98\ub9ac\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_USE_SSL=\uc11c\ubc84\uc640\uc758 \ubcf4\uc548 \ud1b5\uc2e0\uc5d0 SSL\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_START_TLS=\uc11c\ubc84\uc640\uc758 \ubcf4\uc548 \ud1b5\uc2e0\uc5d0 StartTLS\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL \ubc14\uc778\ub4dc \uc635\uc158
INFO_DESCRIPTION_VERSION=LDAP \ud504\ub85c\ud1a0\ucf5c \ubc84\uc804 \ubc88\ud638
INFO_DESCRIPTION_NOOP=\uc644\ub8cc\ub418\uc5c8\uc9c0\ub9cc \uc544\ubb34 \uc791\uc5c5\ub3c4 \uc218\ud589\ub418\uc9c0 \uc54a\uc740 \ud56d\ubaa9\uc744 \ubcf4\uc5ec \uc90d\ub2c8\ub2e4.
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=\uc778\uc99d\uc11c \ud0a4 \uc800\uc7a5\uc18c PIN \ud30c\uc77c
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=\uc778\uc99d\uc11c \ud2b8\ub7ec\uc2a4\ud2b8 \uc800\uc7a5\uc18c PIN
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=\uc778\uc99d\uc11c \ud2b8\ub7ec\uc2a4\ud2b8 \uc800\uc7a5\uc18c PIN \ud30c\uc77c
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=SSL \ud074\ub77c\uc774\uc5b8\ud2b8 \uc778\uc99d\uc744 \uc704\ud55c \uc778\uc99d\uc11c \ubcc4\uba85
INFO_DESCRIPTION_SCRIPT_FRIENDLY=script-friendly \ubaa8\ub4dc\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_PROP_FILE_PATH=\uba85\ub839\uc904 \uc778\uc218\uc5d0 \uc0ac\uc6a9\ub418\ub294 \uae30\ubcf8 \ub4f1\ub85d \uc815\ubcf4 \uac12\uc744 \ud3ec\ud568\ud558\ub294 \ud30c\uc77c \uacbd\ub85c
INFO_DESCRIPTION_NO_PROP_FILE=\uae30\ubcf8 \uba85\ub839\uc904 \uc778\uc218 \uac12\uc744 \uac00\uc838\uc624\ub294 \ub370 \ub4f1\ub85d \uc815\ubcf4 \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_pl.properties
@@ -15,3 +15,28 @@
#
ERR_TOOL_CONFLICTING_ARGS=B\u0141\u0104D\:  Nie mo\u017cesz poda\u0107 obydwu arument\u00f3w %s i %s w tym samym czasie
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=Zasi\u0119g szukania ('base', 'one', 'sub', or 'subordinate')
INFO_DESCRIPTION_DONT_WRAP=Nie zawijaj d\u0142ugich linii
INFO_DESCRIPTION_START_TLS=U\u017cyj StartTLS do bezpiecznej komunikacji z serwerem
INFO_DESCRIPTION_BINDDN=DN do po\u0142\u0105czenia z serwerem
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=Przydomek certyfikatu dla autentykacji SSL klienta
INFO_DESCRIPTION_NO_PROP_FILE=Nie zostanie u\u017cyty \u017caden plik z domy\u015blnymi argumentami komendy wiersza polece\u0144
INFO_DESCRIPTION_BINDPASSWORD=Has\u0142o do po\u0142\u0105czenia z serwerem
INFO_DESCRIPTION_PROP_FILE_PATH=\u015acie\u017cka pliku zawieraj\u0105cego domy\u015blne warto\u015bci u\u017cyte jako argumenty komendy wiersza polece\u0144
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=Plik zawieraj\u0105cy PIN sk\u0142adu klucza certyfikatu
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=Nazwa hosta lub adres IP serwera us\u0142ug katalogowych
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=PIN sk\u0142adu zaufania certyfikatu
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=PIN sk\u0142adu klucza certyfikatu
INFO_DESCRIPTION_PORT=Numer portu serwera us\u0142ug katalogowych
INFO_DESCRIPTION_NOOP=Poka\u017c co by\u0142oby zrobione ale nie wykonuj \u017cadnej operacji
INFO_DESCRIPTION_CONTINUE_ON_ERROR=Kontynuuj prztwarzanie nawet je\u015bli wyst\u0105pi\u0142y b\u0142\u0119dy
INFO_DESCRIPTION_USE_SSL=U\u017cyj SSL do bezpiecznej komunikacji z serwerem
INFO_DESCRIPTION_CONTROLS=U\u017cyj kontroli polece\u0144 z podanymi informacjami
INFO_DESCRIPTION_BINDPASSWORDFILE=Plik zawieraj\u0105cy has\u0142o po\u0142\u0105czeniowe
INFO_DESCRIPTION_VERSION=Wersja protoko\u0142u LDAP
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=Opcje po\u0142\u0105czenia SASL
INFO_DESCRIPTION_KEYSTOREPATH=\u015acie\u017cka sk\u0142adu klucza certyfikatu
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=Plik zawieraj\u0105cy PIN sk\u0142adu zaufania certyfikatu
INFO_DESCRIPTION_SCRIPT_FRIENDLY=U\u017cyj trybu przyjaznego skryptom
INFO_DESCRIPTION_TRUSTSTOREPATH=\u015acie\u017cka sk\u0142adu zaufania certyfikatu
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_zh_CN.properties
@@ -15,3 +15,29 @@
#
ERR_TOOL_CONFLICTING_ARGS=\u4e0d\u80fd\u540c\u65f6\u63d0\u4f9b --%s \u548c --%s \u53c2\u6570
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\u641c\u7d22\u8303\u56f4\uff08'base'\u3001'one'\u3001'sub' \u6216 'subordinate'\uff09
INFO_DESCRIPTION_DONT_WRAP=\u4e0d\u5bf9\u8f83\u957f\u7684\u884c\u8fdb\u884c\u6362\u884c
INFO_DESCRIPTION_BINDDN=\u7528\u4e8e\u7ed1\u5b9a\u5230\u670d\u52a1\u5668\u7684 DN
INFO_DESCRIPTION_BINDPASSWORD=\u7528\u4e8e\u7ed1\u5b9a\u5230\u670d\u52a1\u5668\u7684\u5bc6\u7801
INFO_DESCRIPTION_BINDPASSWORDFILE=\u7ed1\u5b9a\u5bc6\u7801\u6587\u4ef6
INFO_DESCRIPTION_KEYSTOREPATH=\u8bc1\u4e66\u5bc6\u94a5\u5e93\u8def\u5f84
INFO_DESCRIPTION_TRUSTSTOREPATH=\u8bc1\u4e66\u4fe1\u4efb\u5e93\u8def\u5f84
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=\u8bc1\u4e66\u5bc6\u94a5\u5e93 PIN
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=\u76ee\u5f55\u670d\u52a1\u5668\u4e3b\u673a\u540d\u6216 IP \u5730\u5740
INFO_DESCRIPTION_PORT=\u76ee\u5f55\u670d\u52a1\u5668\u7aef\u53e3\u53f7
INFO_DESCRIPTION_CONTROLS=\u5c06\u8bf7\u6c42\u63a7\u5236\u7528\u4e8e\u63d0\u4f9b\u7684\u4fe1\u606f
INFO_DESCRIPTION_CONTINUE_ON_ERROR=\u5373\u4f7f\u51fa\u73b0\u9519\u8bef\u4e5f\u7ee7\u7eed\u8fdb\u884c\u5904\u7406
INFO_DESCRIPTION_USE_SSL=\u4f7f\u7528 SSL \u786e\u4fdd\u4e0e\u670d\u52a1\u5668\u8fdb\u884c\u5b89\u5168\u901a\u4fe1
INFO_DESCRIPTION_START_TLS=\u4f7f\u7528 StartTLS \u786e\u4fdd\u4e0e\u670d\u52a1\u5668\u8fdb\u884c\u5b89\u5168\u901a\u4fe1
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL \u7ed1\u5b9a\u9009\u9879
INFO_DESCRIPTION_VERSION=LDAP \u534f\u8bae\u7248\u672c\u53f7
INFO_DESCRIPTION_NOOP=\u663e\u793a\u5c06\u8981\u6267\u884c\u7684\u64cd\u4f5c\uff0c\u4f46\u4e0d\u6267\u884c\u4efb\u4f55\u64cd\u4f5c
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=\u8bc1\u4e66\u5bc6\u94a5\u5e93 PIN \u6587\u4ef6
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=\u8bc1\u4e66\u4fe1\u4efb\u5e93 PIN
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=\u8bc1\u4e66\u4fe1\u4efb\u5e93 PIN \u6587\u4ef6
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=\u7528\u4e8e SSL \u5ba2\u6237\u7aef\u9a8c\u8bc1\u7684\u8bc1\u4e66\u7684\u522b\u540d
INFO_DESCRIPTION_SCRIPT_FRIENDLY=\u4f7f\u7528\u811a\u672c\u53cb\u597d\u6a21\u5f0f
INFO_DESCRIPTION_PROP_FILE_PATH=\u5305\u542b\u7528\u4e8e\u547d\u4ee4\u884c\u53c2\u6570\u7684\u9ed8\u8ba4\u5c5e\u6027\u503c\u7684\u6587\u4ef6\u7684\u8def\u5f84
INFO_DESCRIPTION_NO_PROP_FILE=\u4e0d\u4f1a\u4f7f\u7528\u4efb\u4f55\u5c5e\u6027\u6587\u4ef6\u6765\u83b7\u53d6\u9ed8\u8ba4\u547d\u4ee4\u884c\u53c2\u6570\u503c
INFO_DESCRIPTION_CONNECTION_TIMEOUT=\u5efa\u7acb\u8fde\u63a5\u6240\u80fd\u5360\u7528\u7684\u6700\u5927\u65f6\u95f4\u957f\u5ea6\uff08\u4ee5\u6beb\u79d2\u4e3a\u5355\u4f4d\uff09
opendj-cli/src/main/resources/com/forgerock/opendj/cli/cli_zh_TW.properties
@@ -15,3 +15,28 @@
#
ERR_TOOL_CONFLICTING_ARGS=\u60a8\u7121\u6cd5\u540c\u6642\u63d0\u4f9b --%s \u8207 --%s \u5f15\u6578
INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE=\u641c\u5c0b\u7bc4\u570d (\u300c\u57fa\u5e95\u300d\u3001\u300c\u4e00\u500b\u300d\u3001\u300c\u6b21\u8981\u300d\u3001\u300c\u5f9e\u5c6c\u300d)
INFO_DESCRIPTION_DONT_WRAP=\u9577\u53e5\u4e0d\u63db\u884c
INFO_DESCRIPTION_BINDDN=\u7528\u4ee5\u9023\u7d50\u81f3\u4f3a\u670d\u5668\u7684 DN
INFO_DESCRIPTION_BINDPASSWORD=\u7528\u4ee5\u9023\u7d50\u81f3\u4f3a\u670d\u5668\u7684\u5bc6\u78bc
INFO_DESCRIPTION_BINDPASSWORDFILE=\u9023\u7d50\u5bc6\u78bc\u6a94\u6848
INFO_DESCRIPTION_KEYSTOREPATH=\u6191\u8b49\u91d1\u9470\u5eab\u8def\u5f91
INFO_DESCRIPTION_TRUSTSTOREPATH=\u6191\u8b49\u4fe1\u4efb\u6e05\u55ae\u5b58\u653e\u5340\u8def\u5f91
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD=\u6191\u8b49\u91d1\u9470\u5eab PIN
INFO_ARGUMENT_DESCRIPTION_HOST_NAME=\u76ee\u9304\u4f3a\u670d\u5668\u4e3b\u6a5f\u540d\u7a31\u6216 IP \u4f4d\u5740
INFO_DESCRIPTION_PORT=\u76ee\u9304\u4f3a\u670d\u5668\u9023\u63a5\u57e0\u865f\u78bc
INFO_DESCRIPTION_CONTROLS=\u900f\u904e\u6240\u63d0\u4f9b\u7684\u8cc7\u8a0a\u4f7f\u7528\u8acb\u6c42\u63a7\u5236
INFO_DESCRIPTION_CONTINUE_ON_ERROR=\u5373\u4f7f\u51fa\u73fe\u932f\u8aa4\u4ecd\u7e7c\u7e8c\u8655\u7406
INFO_DESCRIPTION_USE_SSL=\u4f7f\u7528 SSL \u7dad\u8b77\u8207\u4f3a\u670d\u5668\u9593\u7684\u901a\u8a0a\u5b89\u5168
INFO_DESCRIPTION_START_TLS=\u4f7f\u7528 StartTLS \u7dad\u8b77\u8207\u4f3a\u670d\u5668\u9593\u7684\u901a\u8a0a\u5b89\u5168
INFO_LDAP_CONN_DESCRIPTION_SASLOPTIONS=SASL \u9023\u7d50\u9078\u9805
INFO_DESCRIPTION_VERSION=LDAP \u5354\u5b9a\u7248\u672c\u7de8\u865f
INFO_DESCRIPTION_NOOP=\u986f\u793a\u5373\u5c07\u5b8c\u6210\u7684\u52d5\u4f5c\uff0c\u4f46\u4e0d\u57f7\u884c\u4efb\u4f55\u4f5c\u696d
INFO_ARGUMENT_DESCRIPTION_KEYSTOREPASSWORD_FILE=\u6191\u8b49\u91d1\u9470\u5eab PIN \u6a94\u6848
INFO_DESCRIPTION_TRUSTSTOREPASSWORD=\u6191\u8b49\u4fe1\u4efb\u6e05\u55ae\u5b58\u653e\u5340 PIN
INFO_DESCRIPTION_TRUSTSTOREPASSWORD_FILE=\u6191\u8b49\u4fe1\u4efb\u6e05\u55ae\u5b58\u653e\u5340 PIN \u6a94\u6848
INFO_ARGUMENT_DESCRIPTION_CERT_NICKNAME=SSL \u7528\u6236\u7aef\u8a8d\u8b49\u7684\u6191\u8b49\u66b1\u7a31
INFO_DESCRIPTION_SCRIPT_FRIENDLY=\u4f7f\u7528\u6709\u5229\u65bc\u7a0b\u5e8f\u6a94\u7684\u6a21\u5f0f
INFO_DESCRIPTION_PROP_FILE_PATH=\u6a94\u6848\u7684\u8def\u5f91\uff0c\u8a72\u6a94\u6848\u4e2d\u5305\u542b\u7528\u65bc\u6307\u4ee4\u884c\u5f15\u6578\u7684\u9810\u8a2d\u7279\u6027\u503c
INFO_DESCRIPTION_NO_PROP_FILE=\u5c07\u4e0d\u6703\u4f7f\u7528\u4efb\u4f55\u7279\u6027\u6a94\u4f86\u53d6\u5f97\u9810\u8a2d\u6307\u4ee4\u884c\u5f15\u6578\u503c
opendj-config/src/main/java/org/forgerock/opendj/config/dsconfig/DSConfig.java
opendj-core/src/main/java/org/forgerock/opendj/ldif/LDIFChangeRecordWriter.java
@@ -79,6 +79,8 @@
        return writer.toString();
    }
    private boolean hasChanged;
    /**
     * Creates a new LDIF change record writer which will append lines of LDIF
     * to the provided list.
@@ -250,6 +252,7 @@
        if (isBranchExcluded(change.getName())) {
            return this;
        }
        this.hasChanged = true;
        writeKeyAndValue("dn", change.getName().toString());
        writeControls(change.getControls());
@@ -296,6 +299,7 @@
        if (isBranchExcluded(change.getName())) {
            return this;
        }
        this.hasChanged = true;
        writeKeyAndValue("dn", change.getName().toString());
        writeControls(change.getControls());
@@ -316,6 +320,7 @@
        if (isBranchExcluded(change.getName())) {
            return this;
        }
        this.hasChanged = true;
        writeKeyAndValue("dn", change.getName().toString());
        writeControls(change.getControls());
@@ -356,6 +361,7 @@
        if (isBranchExcluded(change.getName())) {
            return this;
        }
        this.hasChanged = true;
        writeKeyAndValue("dn", change.getName().toString());
        writeControls(change.getControls());
@@ -389,4 +395,13 @@
        writeComment0(comment);
        return this;
    }
    /**
     * Returns {@code true} if changes has already been written in this {@link LDIFChangeRecordWriter}.
     *
     * @return {@code true} if changes has already been written in this {@link LDIFChangeRecordWriter}
     */
    public boolean containsChanges() {
        return hasChanged;
    }
}
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPCompare.java
@@ -30,15 +30,8 @@
import static com.forgerock.opendj.cli.CommonArguments.*;
import static com.forgerock.opendj.ldap.tools.Utils.readControls;
import static org.forgerock.util.Utils.closeSilently;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
@@ -50,7 +43,6 @@
import org.forgerock.opendj.ldap.controls.ProxiedAuthV2RequestControl;
import org.forgerock.opendj.ldap.requests.CompareRequest;
import org.forgerock.opendj.ldap.requests.Requests;
import org.forgerock.opendj.ldap.responses.Result;
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.BooleanArgument;
@@ -61,37 +53,44 @@
/** A tool that can be used to issue Compare requests to the Directory Server. */
public final class LDAPCompare extends ConsoleApplication {
    /**
     * The main method for LDAPModify tool.
     * The main method for ldapcompare tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDAPCompare ldapCompare = new LDAPCompare();
        int retCode;
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    /**
     * Run {@link LDAPCompare} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDAPCompare ldapCompare = new LDAPCompare(out, err);
        try {
            retCode = ldapCompare.run(args);
            return ldapCompare.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapCompare);
            retCode = e.getResultCode();
            return e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
    }
    private BooleanArgument verbose;
    private LDAPCompare() {
        // Nothing to do.
    }
    /**
     * Constructor to allow tests.
     *
     * @param out output stream of console application
     * @param err error stream of console application
     */
    LDAPCompare(PrintStream out, PrintStream err) {
    private LDAPCompare(final PrintStream out, final PrintStream err) {
      super(out, err);
    }
@@ -105,48 +104,29 @@
        return verbose.isPresent();
    }
    private int executeCompare(final CompareRequest request, final Connection connection) {
        final String dnStr = request.getName().toString();
        println(INFO_PROCESSING_COMPARE_OPERATION.get(
            request.getAttributeDescription().toString(), request.getAssertionValueAsString(), dnStr));
        if (connection != null) {
            try {
                Result result = connection.compare(request);
                if (ResultCode.COMPARE_FALSE == result.getResultCode()) {
                    println(INFO_COMPARE_OPERATION_RESULT_FALSE.get(dnStr));
                } else {
                    println(INFO_COMPARE_OPERATION_RESULT_TRUE.get(dnStr));
                }
            } catch (final LdapException e) {
                return printErrorMessage(this, e, ERR_LDAP_COMPARE_FAILED);
            }
        }
        return ResultCode.SUCCESS.intValue();
    }
    int run(final String[] args) throws LDAPToolException {
    private int run(final String[] args) throws LDAPToolException {
        // Create the command-line argument parser for use with this program.
        final LocalizableMessage toolDescription = INFO_LDAPCOMPARE_TOOL_DESCRIPTION.get();
        final LDAPToolArgumentParser argParser = LDAPToolArgumentParser.builder(LDAPCompare.class.getName())
                .toolDescription(toolDescription)
                .trailingArguments(1, "attribute:value [DN ...]")
                .trailingArguments(2, 2, "attribute:value DN")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
        argParser.setShortToolDescription(REF_SHORT_DESC_LDAPCOMPARE.get());
        ConnectionFactoryProvider connectionFactoryProvider;
        BooleanArgument continueOnError;
        BooleanArgument dryRun;
        BooleanArgument showUsage;
        IntegerArgument ldapProtocolVersion;
        StringArgument assertionFilter;
        StringArgument controlStr;
        StringArgument encodingStr;
        StringArgument filename;
        StringArgument proxyAuthzID;
        StringArgument propertiesFileArgument;
        BooleanArgument useCompareResultCode;
        BooleanArgument noPropertiesFileArgument;
        BooleanArgument scriptFriendly;
        try {
            connectionFactoryProvider = new ConnectionFactoryProvider(argParser, this);
@@ -158,36 +138,34 @@
            argParser.addArgument(noPropertiesFileArgument);
            argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
            filename = filenameArgument(INFO_LDAPMODIFY_DESCRIPTION_FILENAME.get());
            argParser.addArgument(filename);
            proxyAuthzID = proxyAuthIdArgument();
            argParser.addArgument(proxyAuthzID);
            assertionFilter =
                    StringArgument.builder(OPTION_LONG_ASSERTION_FILE)
            assertionFilter = StringArgument.builder(OPTION_LONG_ASSERTION_FILE)
                            .description(INFO_DESCRIPTION_ASSERTION_FILTER.get())
                            .valuePlaceholder(INFO_ASSERTION_FILTER_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            useCompareResultCode = BooleanArgument.builder("useCompareResultCode")
                                                  .shortIdentifier('m')
                                                  .description(INFO_LDAPCOMPARE_DESCRIPTION_USE_COMPARE_RESULT.get())
                                                  .buildAndAddToParser(argParser);
            controlStr = controlArgument();
            argParser.addArgument(controlStr);
            ldapProtocolVersion = ldapVersionArgument();
            argParser.addArgument(ldapProtocolVersion);
            encodingStr = encodingArgument();
            argParser.addArgument(encodingStr);
            continueOnError = continueOnErrorArgument();
            argParser.addArgument(continueOnError);
            dryRun = noOpArgument();
            argParser.addArgument(dryRun);
            verbose = verboseArgument();
            argParser.addArgument(verbose);
            scriptFriendly = scriptFriendlySdkArgument();
            argParser.addArgument(scriptFriendly);
            showUsage = showUsageArgument();
            argParser.addArgument(showUsage);
            argParser.setUsageArgument(showUsage, getOutputStream());
@@ -201,42 +179,20 @@
        }
        ensureLdapProtocolVersionIsSupported(ldapProtocolVersion);
        final List<String> dnStrings = new ArrayList<>();
        final List<String> attrAndDNStrings = argParser.getTrailingArguments();
        final List<String> trailingArguments = argParser.getTrailingArguments();
        final String attribute = trailingArguments.get(0);
        final String dn = trailingArguments.get(1);
        if (attrAndDNStrings.isEmpty()) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_LDAPCOMPARE_NO_ATTR.get());
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        // First element should be an attribute string.
        final String attributeString = attrAndDNStrings.remove(0);
        // Rest are DN strings
        dnStrings.addAll(attrAndDNStrings);
        // If no DNs were provided, then exit with an error.
        if (dnStrings.isEmpty() && !filename.isPresent()) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_LDAPCOMPARE_NO_DNS.get());
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        /* If trailing DNs were provided and the filename argument was also
         provided, exit with an error.*/
        if (!dnStrings.isEmpty() && filename.isPresent()) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_LDAPCOMPARE_FILENAME_AND_DNS.get());
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        // parse the attribute string
        final int idx = attributeString.indexOf(":");
        // Parse the attribute string
        final int idx = attribute.indexOf(":");
        if (idx == -1) {
            argParser.displayMessageAndUsageReference(
                getErrStream(), ERR_LDAPCOMPARE_INVALID_ATTR_STRING.get(attributeString));
                    getErrStream(), ERR_LDAPCOMPARE_INVALID_ATTR_STRING.get(attribute));
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        final String attributeType = attributeString.substring(0, idx);
        final String attributeType = attribute.substring(0, idx);
        ByteString attributeVal;
        final String remainder = attributeString.substring(idx + 1, attributeString.length());
        final String remainder = attribute.substring(idx + 1, attribute.length());
        if (remainder.length() > 0) {
            final char nextChar = remainder.charAt(0);
            if (nextChar == ':') {
@@ -272,51 +228,40 @@
            compare.addControl(readAssertionControl(assertionFilter.getValue()));
        }
        BufferedReader rdr = null;
        if (!filename.isPresent() && dnStrings.isEmpty()) {
            // Read from stdin.
            rdr = new BufferedReader(new InputStreamReader(System.in));
        } else if (filename.isPresent()) {
            try {
                rdr = new BufferedReader(new FileReader(filename.getValue()));
            } catch (final FileNotFoundException t) {
                throw newToolParamException(
                        t, ERR_LDAPCOMPARE_ERROR_READING_FILE.get(filename.getValue(), t.toString()));
            }
        }
        try (final Connection connection = getConnection(argParser.getConnectionFactory(),
                                                         argParser.getBindRequest(),
                                                         dryRun,
                                                         this)) {
            int result;
            if (rdr == null) {
                for (final String dn : dnStrings) {
                    compare.setName(dn);
                    result = executeCompare(compare, connection);
                    if (result != 0 && !continueOnError.isPresent()) {
                        return result;
            final int compareResultCode = executeCompare(compare, connection, scriptFriendly.isPresent());
            final boolean compareTrue = compareResultCode == ResultCode.COMPARE_TRUE.intValue();
            return !useCompareResultCode.isPresent() && compareTrue ? ResultCode.SUCCESS.intValue()
                                                                    : compareResultCode;
                    }
                }
            } else {
                String dn;
                try {
                    while ((dn = rdr.readLine()) != null) {
                        compare.setName(dn);
                        result = executeCompare(compare, connection);
                        if (result != 0 && !continueOnError.isPresent()) {
                            return result;
                        }
                    }
                } catch (final IOException ioe) {
                    throw newToolParamException(
                            ioe, ERR_LDAPCOMPARE_ERROR_READING_FILE.get(filename.getValue(), ioe.toString()));
                }
            }
        } finally {
            closeSilently(rdr);
        }
        return ResultCode.SUCCESS.intValue();
    private int executeCompare(
            final CompareRequest request, final Connection connection, final boolean isScriptFriendly) {
        final String dnStr = request.getName().toString();
        if (!isScriptFriendly) {
            println(INFO_PROCESSING_COMPARE_OPERATION.get(
                    request.getAttributeDescription().toString(), request.getAssertionValueAsString(), dnStr));
        }
        if (connection == null) {
            // Dry run. There nothing more to check on client side.
            return ResultCode.COMPARE_TRUE.intValue();
        }
        try {
            final ResultCode resultCode = connection.compare(request).getResultCode();
            if (!isScriptFriendly) {
                println(ResultCode.COMPARE_FALSE == resultCode ? INFO_COMPARE_OPERATION_RESULT_FALSE.get(dnStr)
                                                               : INFO_COMPARE_OPERATION_RESULT_TRUE.get(dnStr));
            }
            return resultCode.intValue();
        } catch (final LdapException e) {
            return printErrorMessage(this, e, ERR_LDAP_COMPARE_FAILED);
        }
    }
}
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java
@@ -17,6 +17,7 @@
package com.forgerock.opendj.ldap.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.CliMessages.INFO_FILE_PLACEHOLDER;
import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolParamException;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
@@ -31,8 +32,9 @@
import static org.forgerock.util.Utils.closeSilently;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
@@ -74,6 +76,41 @@
 * to the Directory Server.
 */
public final class LDAPModify extends ConsoleApplication {
    /**
     * The main method for ldapmodify tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    /**
     * Run {@link LDAPModify} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDAPModify ldapModify = new LDAPModify(out, err);
        try {
            return ldapModify.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapModify);
            return e.getResultCode();
        }
    }
    private final class VisitorImpl implements ChangeRecordVisitor<Integer, Void> {
        private final Connection connection;
@@ -209,30 +246,12 @@
        // TODO: CSN control
    }
    /**
     * The main method for LDAPModify tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDAPModify ldapModify = new LDAPModify();
        int retCode;
        try {
            retCode = ldapModify.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapModify);
            retCode = e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
    }
    private EntryWriter writer;
    private Collection<Control> controls;
    private BooleanArgument verbose;
    private LDAPModify() {
        // Nothing to do.
    private LDAPModify(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
@@ -245,11 +264,11 @@
        return verbose.isPresent();
    }
    int run(final String[] args) throws LDAPToolException {
    private int run(final String[] args) throws LDAPToolException {
        // Create the command-line argument parser for use with this program.
        final LocalizableMessage toolDescription = INFO_LDAPMODIFY_TOOL_DESCRIPTION.get();
        final LDAPToolArgumentParser argParser = LDAPToolArgumentParser.builder(LDAPModify.class.getName())
                .toolDescription(toolDescription)
                .toolDescription(INFO_LDAPMODIFY_TOOL_DESCRIPTION.get())
                .trailingArguments("[changes_files ...]")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
        argParser.setShortToolDescription(REF_SHORT_DESC_LDAPMODIFY.get());
@@ -280,8 +299,13 @@
            argParser.addArgument(noPropertiesFileArgument);
            argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
            filename = filenameArgument(INFO_LDAPMODIFY_DESCRIPTION_FILENAME.get());
            argParser.addArgument(filename);
            filename =
                    StringArgument.builder(OPTION_LONG_FILENAME)
                            .shortIdentifier(OPTION_SHORT_FILENAME)
                            .description(INFO_LDAPMODIFY_DESCRIPTION_FILENAME.get())
                            .valuePlaceholder(INFO_FILE_PLACEHOLDER.get())
                            .hidden()
                            .buildAndAddToParser(argParser);
            proxyAuthzID =
                    StringArgument.builder(OPTION_LONG_PROXYAUTHID)
@@ -351,17 +375,7 @@
                                                         argParser.getBindRequest(),
                                                         noop,
                                                         this)) {
            if (filename.isPresent()) {
                final String filePath = filename.getValue();
                try {
                    reader = new LDIFChangeRecordReader(new FileInputStream(filePath));
                } catch (final Exception e) {
                    throw newToolParamException(
                            e, ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ.get(filePath, e.getLocalizedMessage()));
                }
            } else {
                reader = new LDIFChangeRecordReader(getInputStream());
            }
            reader = createLDIFChangeRecordReader(filename, argParser.getTrailingArguments());
            final VisitorImpl visitor = new VisitorImpl(connection);
            try {
@@ -383,6 +397,25 @@
        return ResultCode.SUCCESS.intValue();
    }
    private ChangeRecordReader createLDIFChangeRecordReader(final StringArgument fileNameArg,
                                                            final List<String> trailingArgs)
            throws LDAPToolException {
        final boolean fileNameArgUsed = fileNameArg.isPresent();
        final boolean readFromStdinTokenUsed = trailingArgs.size() == 1
                                            && USE_SYSTEM_STREAM_TOKEN.equals(trailingArgs.get(0));
        final boolean readChangesFromStdin = readFromStdinTokenUsed || !fileNameArgUsed && trailingArgs.isEmpty();
        if (readChangesFromStdin) {
            return new LDIFChangeRecordReader(getInputStream());
        }
        final List<String> filesToRead = new ArrayList<>();
        if (fileNameArgUsed) {
            filesToRead.add(fileNameArg.getValue());
        }
        filesToRead.addAll(trailingArgs);
        return new LDIFChangeRecordReader(Utils.getLinesFromFiles(filesToRead));
    }
    private void addReadAttributesToControl(
            final Collection<Control> controls, final StringArgument attributesArg, final boolean preRead) {
        if (attributesArg.isPresent()) {
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPPasswordModify.java
@@ -28,6 +28,8 @@
import static com.forgerock.opendj.ldap.tools.Utils.printErrorMessage;
import static com.forgerock.opendj.ldap.tools.Utils.readControls;
import java.io.PrintStream;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.Connection;
@@ -58,30 +60,45 @@
 * request.
 */
public final class LDAPPasswordModify extends ConsoleApplication {
    /**
     * Parses the command-line arguments, establishes a connection to the
     * Directory Server, sends the password modify request, and reads the
     * response.
     * The main method for ldappasswordmodify tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDAPPasswordModify ldapPasswordModify = new LDAPPasswordModify();
        int retCode;
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    /**
     * Run {@link LDAPPasswordModify} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDAPPasswordModify ldapPasswordModify = new LDAPPasswordModify(out, err);
        try {
            retCode = ldapPasswordModify.run(args);
            return ldapPasswordModify.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapPasswordModify);
            retCode = e.getResultCode();
            return e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
    }
    private BooleanArgument verbose;
    private LDAPPasswordModify() {
        // Nothing to do.
    private LDAPPasswordModify(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPSearch.java
@@ -48,6 +48,7 @@
import org.forgerock.opendj.ldap.controls.ServerSideSortRequestControl;
import org.forgerock.opendj.ldap.controls.ServerSideSortResponseControl;
import org.forgerock.opendj.ldap.controls.SimplePagedResultsControl;
import org.forgerock.opendj.ldap.controls.SubentriesRequestControl;
import org.forgerock.opendj.ldap.controls.VirtualListViewRequestControl;
import org.forgerock.opendj.ldap.controls.VirtualListViewResponseControl;
import org.forgerock.opendj.ldap.requests.BindRequest;
@@ -74,12 +75,12 @@
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolParamException;
import static com.forgerock.opendj.ldap.tools.Utils.addControlsToRequest;
import static com.forgerock.opendj.ldap.tools.Utils.ensureLdapProtocolVersionIsSupported;
import static com.forgerock.opendj.ldap.tools.Utils.computeWrapColumn;
import static com.forgerock.opendj.ldap.tools.Utils.printErrorMessage;
import static com.forgerock.opendj.ldap.tools.Utils.printPasswordPolicyResults;
import static com.forgerock.opendj.ldap.tools.Utils.printlnTextMsg;
import static com.forgerock.opendj.ldap.tools.Utils.readAssertionControl;
import static com.forgerock.opendj.ldap.tools.Utils.readControls;
import static com.forgerock.opendj.ldap.tools.Utils.readFiltersFromFile;
import static com.forgerock.opendj.ldap.tools.Utils.readFilterFromString;
import static org.forgerock.util.Utils.*;
@@ -90,6 +91,44 @@
/** A tool that can be used to issue Search requests to the Directory Server. */
public final class LDAPSearch extends ConsoleApplication {
    /**
     * The main method for ldapsearch tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    /**
     * Run {@link LDAPSearch} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDAPSearch ldapSearch = new LDAPSearch(out, err);
        try {
            return ldapSearch.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapSearch);
            return e.getResultCode();
        } catch (final ArgumentException e) {
            ldapSearch.errPrintln(ERR_ERROR_PARSING_ARGS.get(e.getMessageObject()));
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
    }
    private class LDAPSearchResultHandler implements SearchResultHandler {
        private int entryCount;
@@ -167,43 +206,11 @@
        }
    }
    /**
     * The main method for LDAPSearch tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDAPSearch ldapSearch = new LDAPSearch();
        int retCode;
        try {
            retCode = ldapSearch.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldapSearch);
            retCode = e.getResultCode();
        } catch (final ArgumentException e) {
            ldapSearch.errPrintln(ERR_ERROR_PARSING_ARGS.get(e.getMessageObject()));
            retCode = ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        System.exit(filterExitCode(retCode));
    }
    private BooleanArgument verbose;
    private EntryWriter ldifWriter;
    private LDAPSearch() {
        // Nothing to do.
    }
    /**
     * Constructor to allow tests.
     *
     * @param out output stream of console application
     * @param err error stream of console application
     */
    LDAPSearch(PrintStream out, PrintStream err) {
    private LDAPSearch(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
@@ -217,13 +224,12 @@
        return verbose.isPresent();
    }
    /** Run ldapsearch with provided command-line arguments. */
    int run(final String[] args) throws LDAPToolException, ArgumentException {
    private int run(final String[] args) throws LDAPToolException, ArgumentException {
        // Create the command-line argument parser for use with this program.
        final LocalizableMessage toolDescription = INFO_LDAPSEARCH_TOOL_DESCRIPTION.get();
        final LDAPToolArgumentParser argParser = LDAPToolArgumentParser.builder(LDAPSearch.class.getName())
                .toolDescription(toolDescription)
                .trailingArguments("[filter] [attributes ...]")
                .trailingArgumentsUnbounded(1, "filter [attributes ...]")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
        argParser.setShortToolDescription(REF_SHORT_DESC_LDAPSEARCH.get());
@@ -231,7 +237,7 @@
        ConnectionFactoryProvider connectionFactoryProvider;
        BooleanArgument countEntries;
        BooleanArgument dontWrap;
        IntegerArgument wrapColumn;
        BooleanArgument noop;
        BooleanArgument typesOnly;
        IntegerArgument simplePageSize;
@@ -240,7 +246,6 @@
        StringArgument baseDN;
        StringArgument controlStr;
        MultiChoiceArgument<DereferenceAliasesPolicy> dereferencePolicy;
        StringArgument filterFile;
        StringArgument matchedValuesFilter;
        StringArgument pSearchInfo;
        MultiChoiceArgument<SearchScope> searchScope;
@@ -251,8 +256,11 @@
        StringArgument proxyAuthzID;
        StringArgument assertionFilter;
        IntegerArgument sizeLimit;
        BooleanArgument subEntriesArgument;
        try {
            connectionFactoryProvider = new ConnectionFactoryProvider(argParser, this);
            final StringArgument propertiesFileArgument = propertiesFileArgument();
            argParser.addArgument(propertiesFileArgument);
            argParser.setFilePropertiesArgument(propertiesFileArgument);
@@ -272,9 +280,6 @@
            searchScope = searchScopeArgument();
            argParser.addArgument(searchScope);
            filterFile = filenameArgument(INFO_SEARCH_DESCRIPTION_FILENAME.get());
            argParser.addArgument(filterFile);
            proxyAuthzID =
                    StringArgument.builder(OPTION_LONG_PROXYAUTHID)
                            .shortIdentifier(OPTION_SHORT_PROXYAUTHID)
@@ -366,15 +371,17 @@
                            .defaultValue(0)
                            .valuePlaceholder(INFO_TIME_LIMIT_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            dontWrap =
                    BooleanArgument.builder("dontWrap")
                            .shortIdentifier('t')
                            .description(INFO_DESCRIPTION_DONT_WRAP.get())
                            .buildAndAddToParser(argParser);
            wrapColumn = wrapColumnArgument();
            argParser.addArgument(wrapColumn);
            countEntries =
                    BooleanArgument.builder("countEntries")
                            .description(INFO_DESCRIPTION_COUNT_ENTRIES.get())
                            .buildAndAddToParser(argParser);
            subEntriesArgument =
                    BooleanArgument.builder(OPTION_LONG_SUBENTRIES)
                            .shortIdentifier(OPTION_SHORT_SUBENTRIES)
                            .description(INFO_DESCRIPTION_SUBENTRIES.get())
                            .buildAndAddToParser(argParser);
            final BooleanArgument continueOnError = continueOnErrorArgument();
            argParser.addArgument(continueOnError);
@@ -397,31 +404,20 @@
            return ResultCode.SUCCESS.intValue();
        }
        final List<Filter> filters = new LinkedList<>();
        final List<String> trailingArgs = argParser.getTrailingArguments();
        final Filter filter = readFilterFromString(trailingArgs.get(0));
        final List<String> attributes = new LinkedList<>();
        final List<String> filterAndAttributeStrings = argParser.getTrailingArguments();
        if (!filterAndAttributeStrings.isEmpty()) {
            // If filter file is not present, the first trailing argument is considered the filter
            if (!filterFile.isPresent()) {
                filters.add(readFilterFromString(filterAndAttributeStrings.remove(0)));
            }
        if (trailingArgs.size() > 1) {
            // The rest of trailing argument are attributes
            attributes.addAll(filterAndAttributeStrings);
        }
        if (filterFile.isPresent()) {
            filters.addAll(readFiltersFromFile(filterFile.getValue()));
        }
        if (filters.isEmpty()) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_SEARCH_NO_FILTERS.get());
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
            attributes.addAll(trailingArgs.subList(1, trailingArgs.size()));
        }
        final SearchScope scope = searchScope.getTypedValue();
        final SearchRequest search;
        final SearchRequest searchRequest;
        try {
            search = Requests.newSearchRequest(DN.valueOf(baseDN.getValue()), scope, filters.get(0),
            searchRequest = Requests.newSearchRequest(DN.valueOf(baseDN.getValue()),
                                                      scope,
                                                      filter,
                                               attributes.toArray(new String[attributes.size()]));
            ensureLdapProtocolVersionIsSupported(ldapProtocolVersion);
        } catch (final LocalizedIllegalArgumentException e) {
@@ -429,11 +425,11 @@
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        }
        search.setTypesOnly(typesOnly.isPresent());
        search.setTimeLimit(timeLimit.getIntValue());
        search.setSizeLimit(sizeLimit.getIntValue());
        search.setDereferenceAliasesPolicy(dereferencePolicy.getTypedValue());
        addControlsToRequest(search, readControls(controlStr));
        searchRequest.setTypesOnly(typesOnly.isPresent())
                     .setTimeLimit(timeLimit.getIntValue())
                     .setSizeLimit(sizeLimit.getIntValue())
                     .setDereferenceAliasesPolicy(dereferencePolicy.getTypedValue());
        addControlsToRequest(searchRequest, readControls(controlStr));
        if (effectiveRightsUser.isPresent()) {
            final String authzID = effectiveRightsUser.getValue();
@@ -441,20 +437,20 @@
                throw newToolParamException(ERR_EFFECTIVERIGHTS_INVALID_AUTHZID.get(authzID));
            }
            final List<String> attrValues = effectiveRightsAttrs.getValues();
            search.addControl(GetEffectiveRightsRequestControl.newControl(
            searchRequest.addControl(GetEffectiveRightsRequestControl.newControl(
                            false, authzID.substring(3), attrValues.toArray(new String[attrValues.size()])));
        }
        if (proxyAuthzID.isPresent()) {
            search.addControl(ProxiedAuthV2RequestControl.newControl(proxyAuthzID.getValue()));
            searchRequest.addControl(ProxiedAuthV2RequestControl.newControl(proxyAuthzID.getValue()));
        }
        if (pSearchInfo.isPresent()) {
            search.addControl(computePSearchControl(pSearchInfo));
            searchRequest.addControl(computePSearchControl(pSearchInfo));
        }
        if (assertionFilter.isPresent()) {
            search.addControl(readAssertionControl(assertionFilter.getValue()));
            searchRequest.addControl(readAssertionControl(assertionFilter.getValue()));
        }
        if (matchedValuesFilter.isPresent()) {
@@ -467,33 +463,29 @@
                    throw newToolParamException(le, ERR_LDAP_MATCHEDVALUES_INVALID_FILTER.get(le.getMessage()));
                }
            }
            search.addControl(MatchedValuesRequestControl.newControl(true, mvFilters));
            searchRequest.addControl(MatchedValuesRequestControl.newControl(true, mvFilters));
        }
        if (sortOrder.isPresent()) {
            try {
                search.addControl(ServerSideSortRequestControl.newControl(false, sortOrder.getValue()));
                searchRequest.addControl(ServerSideSortRequestControl.newControl(false, sortOrder.getValue()));
            } catch (final LocalizedIllegalArgumentException le) {
                throw newToolParamException(le, ERR_LDAP_SORTCONTROL_INVALID_ORDER.get(le.getMessageObject()));
            }
        }
        if (vlvDescriptor.isPresent()) {
            search.addControl(readVLVControl(vlvDescriptor, sortOrder));
            searchRequest.addControl(readVLVControl(vlvDescriptor, sortOrder));
        }
        if (subEntriesArgument.isPresent()) {
            searchRequest.addControl(SubentriesRequestControl.newControl(true, true));
        }
        int pageSize = 0;
        if (simplePageSize.isPresent()) {
            if (filters.size() > 1) {
                throw newToolParamException(ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER.get());
            }
            pageSize = simplePageSize.getIntValue();
            search.addControl(SimplePagedResultsControl.newControl(true, pageSize, ByteString.empty()));
        }
        int wrapColumn = 80;
        if (dontWrap.isPresent()) {
            wrapColumn = 0;
            searchRequest.addControl(SimplePagedResultsControl.newControl(true, pageSize, ByteString.empty()));
        }
        if (noop.isPresent()) {
@@ -511,11 +503,13 @@
                printPasswordPolicyResults(this, connection.bind(bindRequest));
            }
            int filterIndex = 0;
            ldifWriter = new LDIFEntryWriter(getOutputStream()).setWrapColumn(wrapColumn);
            ldifWriter = new LDIFEntryWriter(getOutputStream()).setWrapColumn(computeWrapColumn(wrapColumn));
            final LDAPSearchResultHandler resultHandler = new LDAPSearchResultHandler();
            while (true) {
                Result result = connection.search(search, resultHandler);
            boolean hasRemainingPages;
            Result result;
            do {
                hasRemainingPages = false;
                result = connection.search(searchRequest, resultHandler);
                try {
                    final ServerSideSortResponseControl control =
                            result.getControl(ServerSideSortResponseControl.DECODER, new DecodeOptions());
@@ -548,19 +542,20 @@
                        if (!isQuiet()) {
                            pressReturnToContinue();
                        }
                        final Iterator<Control> iterator = search.getControls().iterator();
                        final Iterator<Control> iterator = searchRequest.getControls().iterator();
                        while (iterator.hasNext()) {
                            if (SimplePagedResultsControl.OID.equals(iterator.next().getOID())) {
                                iterator.remove();
                            }
                        }
                        control = SimplePagedResultsControl.newControl(true, pageSize, control.getCookie());
                        search.addControl(control);
                        continue;
                        searchRequest.addControl(control);
                        hasRemainingPages = true;
                    }
                } catch (final DecodeException e) {
                    errPrintln(ERR_DECODE_CONTROL_FAILURE.get(e.getLocalizedMessage()));
                }
            } while (hasRemainingPages);
                errPrintln();
                final ResultCode rc = result.getResultCode();
@@ -568,13 +563,6 @@
                printlnTextMsg(this, result.getDiagnosticMessage());
                printlnTextMsg(this, ERR_TOOL_MATCHED_DN, result.getMatchedDN());
                filterIndex++;
                if (filterIndex < filters.size()) {
                    search.setFilter(filters.get(filterIndex));
                } else {
                    break;
                }
            }
            if (countEntries.isPresent() && !isQuiet()) {
                println(INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT.get(resultHandler.entryCount));
                println();
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFDiff.java
@@ -12,7 +12,6 @@
 * information: "Portions Copyright [year] [name of copyright owner]".
 *
 * Copyright 2012-2016 ForgeRock AS.
 * Portions Copyright 2014-2015 ForgeRock AS.
 */
package com.forgerock.opendj.ldap.tools;
@@ -24,6 +23,7 @@
import static com.forgerock.opendj.cli.Utils.filterExitCode;
import static com.forgerock.opendj.cli.CommonArguments.*;
import static com.forgerock.opendj.ldap.tools.Utils.computeWrapColumn;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolInputStream;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolOutputStream;
import static com.forgerock.opendj.ldap.tools.Utils.parseArguments;
@@ -32,11 +32,13 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.List;
import com.forgerock.opendj.cli.IntegerArgument;
import org.forgerock.i18n.LocalizableException;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldif.ChangeRecordReader;
import org.forgerock.opendj.ldif.LDIF;
import org.forgerock.opendj.ldif.LDIFChangeRecordWriter;
import org.forgerock.opendj.ldif.LDIFEntryReader;
@@ -53,33 +55,55 @@
 */
public final class LDIFDiff extends ConsoleApplication {
    static final int NO_DIFFERENCES_FOUND = 0;
    static final int DIFFERENCES_FOUND = 1;
    /**
     * The main method for LDIFDiff tool.
     * The main method for ldifdiff tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDIFDiff ldifDiff = new LDIFDiff();
        int retCode;
        try {
            retCode = ldifDiff.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifDiff);
            retCode = e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    private LDIFDiff() {
        // Nothing to do.
    /**
     * Run {@link LDIFDiff} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDIFDiff ldifDiff = new LDIFDiff(out, err);
        try {
            return ldifDiff.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifDiff);
            return e.getResultCode();
        }
    }
    private LDIFDiff(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
    public boolean isInteractive() {
        return false;
    }
    private int run(final String[] args) throws LDAPToolException {
        // Create the command-line argument parser for use with this program.
        final LocalizableMessage toolDescription = INFO_LDIFDIFF_TOOL_DESCRIPTION.get();
        final ArgumentParser argParser = LDAPToolArgumentParser.builder(LDIFDiff.class.getName())
                .toolDescription(toolDescription)
                .toolDescription(INFO_LDIFDIFF_TOOL_DESCRIPTION.get())
                .trailingArguments(2, "source target")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
@@ -87,6 +111,7 @@
        final BooleanArgument showUsage;
        final StringArgument outputFilename;
        final IntegerArgument wrapColumn;
        try {
            outputFilename =
                    StringArgument.builder(OPTION_LONG_OUTPUT_LDIF_FILENAME)
@@ -96,6 +121,8 @@
                            .defaultValue("stdout")
                            .valuePlaceholder(INFO_OUTPUT_LDIF_FILE_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            wrapColumn = wrapColumnArgument();
            argParser.addArgument(wrapColumn);
            showUsage = showUsageArgument();
            argParser.addArgument(showUsage);
@@ -126,7 +153,15 @@
            try (LDIFEntryReader sourceReader = new LDIFEntryReader(sourceInputStream);
                LDIFEntryReader targetReader = new LDIFEntryReader(targetInputStream);
                LDIFChangeRecordWriter outputWriter = new LDIFChangeRecordWriter(outputStream)) {
                LDIF.copyTo(LDIF.diff(sourceReader, targetReader), outputWriter);
                outputWriter.setWrapColumn(computeWrapColumn(wrapColumn));
                final ChangeRecordReader changes = LDIF.diff(sourceReader, targetReader);
                LDIF.copyTo(changes, outputWriter);
                if (outputWriter.containsChanges()) {
                    return DIFFERENCES_FOUND;
                } else {
                    outputWriter.writeComment(INFO_LDIFDIFF_NO_DIFFERENCES.get().toString());
                    return NO_DIFFERENCES_FOUND;
                }
            }
        } catch (final IOException e) {
            if (e instanceof LocalizableException) {
@@ -135,10 +170,10 @@
                errPrintln(ERR_LDIFDIFF_DIFF_FAILED.get(e.getLocalizedMessage()));
            }
            return ResultCode.CLIENT_SIDE_LOCAL_ERROR.intValue();
        } catch (final ArgumentException ae) {
            throw newToolParamException(ae, ae.getMessageObject());
        } finally {
            closeSilently(sourceInputStream, targetInputStream, outputStream);
        }
        return ResultCode.SUCCESS.intValue();
    }
}
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFModify.java
@@ -17,10 +17,12 @@
import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_LONG_OUTPUT_LDIF_FILENAME;
import static com.forgerock.opendj.cli.ArgumentConstants.OPTION_SHORT_OUTPUT_LDIF_FILENAME;
import static com.forgerock.opendj.cli.ArgumentConstants.USE_SYSTEM_STREAM_TOKEN;
import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolParamException;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.cli.Utils.filterExitCode;
import static com.forgerock.opendj.ldap.tools.Utils.computeWrapColumn;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolInputStream;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolOutputStream;
import static com.forgerock.opendj.ldap.tools.Utils.parseArguments;
@@ -30,8 +32,10 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.util.List;
import com.forgerock.opendj.cli.IntegerArgument;
import org.forgerock.i18n.LocalizableException;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.ldap.DecodeException;
@@ -58,34 +62,55 @@
 * to a set of entries contained in an LDIF file.
 */
public final class LDIFModify extends ConsoleApplication {
    /**
     * The main method for LDIFModify tool.
     * The main method for ldifmodify tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDIFModify ldifModify = new LDIFModify();
        int retCode;
        try {
            retCode = ldifModify.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifModify);
            retCode = e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    private LDIFModify() {
        // Nothing to do.
    /**
     * Run {@link LDIFModify} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDIFModify ldifModify = new LDIFModify(out, err);
        try {
            return ldifModify.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifModify);
            return e.getResultCode();
        }
    }
    private LDIFModify(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
    public boolean isInteractive() {
        return false;
    }
    private int run(final String[] args) throws LDAPToolException {
        // Create the command-line argument parser for use with this program.
        final LocalizableMessage toolDescription = INFO_LDIFMODIFY_TOOL_DESCRIPTION.get();
        final ArgumentParser argParser = LDAPToolArgumentParser.builder(LDIFModify.class.getName())
                .toolDescription(toolDescription)
                .trailingArguments(1, 2, "source [changes]")
                .toolDescription(INFO_LDIFMODIFY_TOOL_DESCRIPTION.get())
                .trailingArgumentsUnbounded(1, "source_file [changes_files...]")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
        argParser.setShortToolDescription(REF_SHORT_DESC_LDIFMODIFY.get());
@@ -93,6 +118,7 @@
        final BooleanArgument continueOnError;
        final BooleanArgument showUsage;
        final StringArgument outputFilename;
        final IntegerArgument wrapColumn;
        try {
            outputFilename =
                    StringArgument.builder(OPTION_LONG_OUTPUT_LDIF_FILENAME)
@@ -106,6 +132,9 @@
            continueOnError = continueOnErrorArgument();
            argParser.addArgument(continueOnError);
            wrapColumn = wrapColumnArgument();
            argParser.addArgument(wrapColumn);
            showUsage = showUsageArgument();
            argParser.addArgument(showUsage);
            argParser.setUsageArgument(showUsage, getOutputStream());
@@ -119,7 +148,6 @@
        }
        InputStream sourceInputStream = null;
        InputStream changesInputStream = null;
        OutputStream outputStream = null;
        LDIFEntryReader sourceReader = null;
        LDIFChangeRecordReader changesReader = null;
@@ -128,16 +156,23 @@
        try {
            final List<String> trailingArguments = argParser.getTrailingArguments();
            sourceInputStream = getLDIFToolInputStream(this, trailingArguments.get(0));
            changesInputStream = getLDIFToolInputStream(this, trailingArguments.get(1));
            outputStream = getLDIFToolOutputStream(this, outputFilename);
            if (System.in == sourceInputStream && System.in == changesInputStream) {
            final int nbTrailingArgs = trailingArguments.size();
            final boolean readChangesFromStdin = nbTrailingArgs == 1
                    || (nbTrailingArgs == 2 && USE_SYSTEM_STREAM_TOKEN.equals(trailingArguments.get(1)));
            if (getInputStream() == sourceInputStream && readChangesFromStdin) {
                throw newToolParamException(ERR_LDIFMODIFY_MULTIPLE_USES_OF_STDIN.get());
            }
            sourceReader = new LDIFEntryReader(sourceInputStream);
            changesReader = new LDIFChangeRecordReader(changesInputStream);
            outputWriter = new LDIFEntryWriter(outputStream);
            if (readChangesFromStdin) {
                changesReader = new LDIFChangeRecordReader(getInputStream());
            } else {
                changesReader = new LDIFChangeRecordReader(
                        Utils.getLinesFromFiles(trailingArguments.subList(1, nbTrailingArgs)));
            }
            outputWriter = new LDIFEntryWriter(outputStream).setWrapColumn(computeWrapColumn(wrapColumn));
            final RejectedChangeRecordListener listener = new RejectedChangeRecordListener() {
                @Override
@@ -220,9 +255,11 @@
                errPrintln(ERR_LDIFMODIFY_PATCH_FAILED.get(e.getLocalizedMessage()));
            }
            return ResultCode.CLIENT_SIDE_LOCAL_ERROR.intValue();
        } catch (final ArgumentException ae) {
            throw newToolParamException(ae, ae.getMessageObject());
        } finally {
            closeSilently(sourceReader, changesReader, outputWriter,
                          sourceInputStream, changesInputStream, outputStream);
                          sourceInputStream, outputStream);
        }
        return ResultCode.SUCCESS.intValue();
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDIFSearch.java
@@ -22,13 +22,14 @@
import static com.forgerock.opendj.cli.Utils.filterExitCode;
import static com.forgerock.opendj.cli.CommonArguments.*;
import static com.forgerock.opendj.ldap.tools.Utils.computeWrapColumn;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolInputStream;
import static com.forgerock.opendj.ldap.tools.Utils.getLDIFToolOutputStream;
import static com.forgerock.opendj.ldap.tools.Utils.parseArguments;
import static com.forgerock.opendj.ldap.tools.Utils.readFiltersFromFile;
import static com.forgerock.opendj.ldap.tools.Utils.readFilterFromString;
import java.io.IOException;
import java.io.PrintStream;
import java.util.LinkedList;
import java.util.List;
@@ -55,34 +56,54 @@
/** This utility can be used to perform search operations against data in an LDIF file. */
public final class LDIFSearch extends ConsoleApplication {
    /**
     * The main method for LDIFSearch tool.
     * The main method for ldifsearch tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final LDIFSearch ldifSearch = new LDIFSearch();
        int retCode;
        try {
            retCode = ldifSearch.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifSearch);
            retCode = e.getResultCode();
        }
        System.exit(filterExitCode(retCode));
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    private LDIFSearch() {
        // Nothing to do.
    /**
     * Run {@link LDIFSearch} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final LDIFSearch ldifSearch = new LDIFSearch(out, err);
        try {
            return ldifSearch.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(ldifSearch);
            return e.getResultCode();
        }
    }
    private LDIFSearch(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
    public boolean isInteractive() {
        return false;
    }
    private int run(final String[] args) throws LDAPToolException {
        /* Create the command-line argument parser for use with this program. */
        final LocalizableMessage toolDescription = INFO_LDIFSEARCH_TOOL_DESCRIPTION.get();
        final ArgumentParser argParser = LDAPToolArgumentParser.builder(LDIFSearch.class.getName())
                .toolDescription(toolDescription)
                .trailingArgumentsUnbounded(1, "source [filter] [attributes ...]")
                .toolDescription(INFO_LDIFSEARCH_TOOL_DESCRIPTION.get())
                .trailingArgumentsUnbounded(2, "source filter [attributes ...]")
                .build();
        argParser.setVersionHandler(newSdkVersionHandler());
        argParser.setShortToolDescription(REF_SHORT_DESC_LDIFSEARCH.get());
@@ -91,10 +112,10 @@
        final StringArgument outputFilename;
        final BooleanArgument typesOnly;
        final IntegerArgument timeLimit;
        final StringArgument filterFile;
        final StringArgument baseDN;
        final MultiChoiceArgument<SearchScope> searchScope;
        final IntegerArgument sizeLimit;
        final IntegerArgument wrapColumn;
        try {
            outputFilename =
                    StringArgument.builder(OPTION_LONG_OUTPUT_LDIF_FILENAME)
@@ -107,17 +128,14 @@
            baseDN =
                    StringArgument.builder(OPTION_LONG_BASEDN)
                            .shortIdentifier(OPTION_SHORT_BASEDN)
                            .description(INFO_SEARCH_DESCRIPTION_BASEDN.get())
                            .required()
                            .description(INFO_LDIFSEARCH_DESCRIPTION_BASEDN.get())
                            .defaultValue("") // Search for rootDSE if no base DN is provided
                            .valuePlaceholder(INFO_BASEDN_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            searchScope = searchScopeArgument();
            argParser.addArgument(searchScope);
            filterFile = filenameArgument(INFO_SEARCH_DESCRIPTION_FILENAME.get());
            argParser.addArgument(filterFile);
            typesOnly =
                    BooleanArgument.builder("typesOnly")
                            .shortIdentifier('A')
@@ -138,6 +156,9 @@
                            .valuePlaceholder(INFO_TIME_LIMIT_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            wrapColumn = wrapColumnArgument();
            argParser.addArgument(wrapColumn);
            showUsage = showUsageArgument();
            argParser.addArgument(showUsage);
            argParser.setUsageArgument(showUsage, getOutputStream());
@@ -150,33 +171,18 @@
            return ResultCode.SUCCESS.intValue();
        }
        final List<Filter> filters = new LinkedList<>();
        final List<String> attributes = new LinkedList<>();
        final List<String> trailingArguments = argParser.getTrailingArguments();
        if (trailingArguments.size() > 1) {
            final List<String> filterAndAttributeStrings = trailingArguments.subList(1, trailingArguments.size());
            // If filter file is not present, the first trailing argument is considered the filter
            if (!filterFile.isPresent()) {
                filters.add(readFilterFromString(filterAndAttributeStrings.remove(0)));
            }
            // The rest of trailing argument are attributes
            attributes.addAll(filterAndAttributeStrings);
        }
        if (filterFile.isPresent()) {
            filters.addAll(readFiltersFromFile(filterFile.getValue()));
        }
        if (filters.isEmpty()) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_SEARCH_NO_FILTERS.get());
            return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
        final Filter filter = readFilterFromString(trailingArguments.get(1));
        final List<String> attributes = new LinkedList<>();
        if (trailingArguments.size() > 2) {
            attributes.addAll(trailingArguments.subList(2, trailingArguments.size()));
        }
        final SearchRequest search;
        try {
            final SearchScope scope = searchScope.getTypedValue();
            search =
                    Requests.newSearchRequest(DN.valueOf(baseDN.getValue()), scope, filters.get(0),
                    Requests.newSearchRequest(DN.valueOf(baseDN.getValue()), scope, filter,
                            attributes.toArray(new String[attributes.size()])).setTypesOnly(
                            typesOnly.isPresent()).setTimeLimit(timeLimit.getIntValue())
                            .setSizeLimit(sizeLimit.getIntValue());
@@ -187,6 +193,7 @@
        try (final LDIFEntryReader sourceReader =
                     new LDIFEntryReader(getLDIFToolInputStream(this, trailingArguments.get(0)));
             final LDIFEntryWriter outputWriter = new LDIFEntryWriter(getLDIFToolOutputStream(this, outputFilename))) {
            outputWriter.setWrapColumn(computeWrapColumn(wrapColumn));
            LDIF.copyTo(LDIF.search(sourceReader, search), outputWriter);
        } catch (final IOException e) {
            if (e instanceof LocalizableException) {
@@ -195,6 +202,8 @@
                errPrintln(ERR_LDIFSEARCH_FAILED.get(e.getLocalizedMessage()));
            }
            return ResultCode.CLIENT_SIDE_LOCAL_ERROR.intValue();
        } catch (final ArgumentException ae) {
            throw newToolParamException(ae, ae.getMessageObject());
        }
        return ResultCode.SUCCESS.intValue();
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/MakeLDIF.java
@@ -18,10 +18,15 @@
import static com.forgerock.opendj.cli.ArgumentConstants.*;
import static com.forgerock.opendj.cli.CommonArguments.showUsageArgument;
import static com.forgerock.opendj.cli.CommonArguments.wrapColumnArgument;
import static com.forgerock.opendj.cli.ToolVersionHandler.newSdkVersionHandler;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolException;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolExceptionAlreadyPrinted;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolParamException;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.cli.Utils.filterExitCode;
import static com.forgerock.opendj.ldap.tools.ToolsMessages.INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER;
import static com.forgerock.opendj.ldap.tools.Utils.computeWrapColumn;
import static com.forgerock.opendj.ldap.tools.Utils.parseArguments;
import static org.forgerock.util.Utils.closeSilently;
import java.io.BufferedWriter;
@@ -40,6 +45,7 @@
import com.forgerock.opendj.cli.StringArgument;
import org.forgerock.opendj.ldap.Entry;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldif.EntryGenerator;
import org.forgerock.opendj.ldif.LDIFEntryWriter;
@@ -51,25 +57,53 @@
    /** The value for the path to look for LDIF resources (e.g data files). */
    public static final String OPTION_LONG_RESOURCE_PATH = "resourcePath";
    private static final int EXIT_CODE_SUCCESS = 0;
    private static final int EXIT_CODE_FAILURE = 1;
    /** The total number of entries that have been written. */
    private long numberOfEntriesWritten;
    /**
     * Main method for MakeLDIF tool.
     * The main method for makeldif tool.
     *
     * @param args
     *            The command-line arguments provided to this program.
     */
    public static void main(final String[] args) {
        final int retCode = new MakeLDIF().run(args);
        System.exit(filterExitCode(retCode));
        System.exit(filterExitCode(run(System.out, System.err, args)));
    }
    /** Run Make LDIF with provided command-line arguments. */
    int run(final String[] args) {
    /**
     * Run {@link MakeLDIF} tool with the provided arguments.
     * Output and errors will be written on the provided streams.
     * This method can be used to run the tool programmatically.
     *
     * @param out
     *      {@link PrintStream} which will be used by the tool to write results and information messages.
     * @param err
     *      {@link PrintStream} which will be used by the tool to write errors.
     * @param args
     *      Arguments set to pass to the tool.
     * @return
     *      An integer which represents the result code of the tool.
     */
    public static int run(final PrintStream out, final PrintStream err, final String... args) {
        final MakeLDIF makeLDIF = new MakeLDIF(out, err);
        try {
            return makeLDIF.run(args);
        } catch (final LDAPToolException e) {
            e.printErrorMessage(makeLDIF);
            return e.getResultCode();
        }
    }
    private MakeLDIF(final PrintStream out, final PrintStream err) {
        super(out, err);
    }
    @Override
    public boolean isInteractive() {
        return false;
    }
    /** The total number of entries that have been written. */
    private long numberOfEntriesWritten;
    private int run(final String[] args) throws LDAPToolException {
        final LocalizableMessage toolDescription = INFO_MAKELDIF_TOOL_DESCRIPTION.get();
        final ArgumentParser argParser = LDAPToolArgumentParser.builder(MakeLDIF.class.getName())
                .toolDescription(toolDescription)
@@ -117,43 +151,35 @@
            showUsage = showUsageArgument();
            argParser.addArgument(showUsage);
            wrapColumn =
                    IntegerArgument.builder("wrapColumn")
                            .shortIdentifier('w')
                            .description(INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN.get())
                            .lowerBound(0)
                            .defaultValue(0)
                            .valuePlaceholder(INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER.get())
                            .buildAndAddToParser(argParser);
            wrapColumn = wrapColumnArgument();
            argParser.addArgument(wrapColumn);
            argParser.setUsageArgument(showUsage, getOutputStream());
        } catch (ArgumentException ae) {
            errPrintln(ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage()));
            return EXIT_CODE_FAILURE;
        } catch (final ArgumentException ae) {
            throw newToolParamException(ae, ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage()));
        }
        // Parse the command-line arguments provided to the program.
        try {
            argParser.parseArguments(args);
        } catch (ArgumentException ae) {
            argParser.displayMessageAndUsageReference(getErrStream(), ERR_ERROR_PARSING_ARGS.get(ae.getMessage()));
            return EXIT_CODE_FAILURE;
        }
        parseArguments(argParser, getErrStream(), args);
        if (argParser.usageOrVersionDisplayed()) {
            return 0;
            return ResultCode.SUCCESS.intValue();
        }
        final String templatePath = argParser.getTrailingArguments().get(0);
        return run(templatePath, resourcePath, ldifFile, randomSeed, constants, wrapColumn);
    }
    /** Run Make LDIF with provided arguments. */
    private int run(final String templatePath, final StringArgument resourcePath, final StringArgument ldifFile,
            final IntegerArgument randomSeedArg, final StringArgument constants, final IntegerArgument wrapColumn) {
    private int run(final String templatePath,
                    final StringArgument resourcePath,
                    final StringArgument ldifFile,
                    final IntegerArgument randomSeedArg,
                    final StringArgument constants,
                    final IntegerArgument wrapColumn)  throws LDAPToolException {
        LDIFEntryWriter writer = null;
        try (EntryGenerator generator = createGenerator(templatePath, resourcePath, randomSeedArg, constants)) {
            if (generator == null) {
                return EXIT_CODE_FAILURE;
                // Root exception has already been printed
                throw newToolExceptionAlreadyPrinted(null, ResultCode.UNDEFINED);
            }
            if (generator.hasWarnings()) {
@@ -163,28 +189,25 @@
            }
            try {
                writer = createLdifWriter(ldifFile, wrapColumn);
                writer = createLdifWriter(ldifFile, computeWrapColumn(wrapColumn));
            } catch (final IOException e) {
                errPrintln(ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get(ldifFile.getValue(), e.getMessage()));
                return EXIT_CODE_FAILURE;
                throw newToolParamException(
                        e, ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF.get(ldifFile.getValue(), e.getMessage()));
            } catch (final ArgumentException e) {
                errPrintln(ERR_ERROR_PARSING_ARGS.get(e.getMessageObject()));
                return EXIT_CODE_FAILURE;
                throw newToolParamException(
                        e, ERR_ERROR_PARSING_ARGS.get(e.getMessageObject()));
            }
            if (!generateEntries(generator, writer, ldifFile)) {
                return EXIT_CODE_FAILURE;
            }
            generateEntries(generator, writer, ldifFile);
            errPrintln(INFO_MAKELDIF_PROCESSING_COMPLETE.get(numberOfEntriesWritten));
            return EXIT_CODE_SUCCESS;
            println(INFO_MAKELDIF_PROCESSING_COMPLETE.get(numberOfEntriesWritten));
            return ResultCode.SUCCESS.intValue();
        } finally {
            closeSilently(writer);
        }
    }
    private LDIFEntryWriter createLdifWriter(final StringArgument ldifFile, final IntegerArgument wrapColumn)
    private LDIFEntryWriter createLdifWriter(final StringArgument ldifFile, final int wrapColumn)
            throws IOException, ArgumentException {
        final LDIFEntryWriter writer;
        if (ldifFile.isPresent()) {
@@ -192,7 +215,7 @@
        } else {
            writer = new LDIFEntryWriter(getOutputStream());
        }
        return writer.setWrapColumn(wrapColumn.getIntValue());
        return writer.setWrapColumn(wrapColumn);
    }
    static EntryGenerator createGenerator(final String templatePath, final StringArgument resourcePath,
@@ -258,34 +281,25 @@
    }
    /** Returns true if generation is successful, false otherwise. */
    private boolean generateEntries(final EntryGenerator generator, final LDIFEntryWriter writer,
            final StringArgument ldifFile) {
    private void generateEntries(final EntryGenerator generator,
                                    final LDIFEntryWriter writer,
                                    final StringArgument ldifFile) throws LDAPToolException {
        try {
            while (generator.hasNext()) {
                final Entry entry = generator.readEntry();
                try {
                    writer.writeEntry(entry);
                } catch (IOException e) {
                    errPrintln(ERR_MAKELDIF_ERROR_WRITING_LDIF.get(ldifFile.getValue(), e.getMessage()));
                    return false;
                } catch (final IOException e) {
                    throw newToolParamException(
                            e, ERR_MAKELDIF_ERROR_WRITING_LDIF.get(ldifFile.getValue(), e.getMessage()));
                }
                if ((++numberOfEntriesWritten % 1000) == 0) {
                    errPrintln(INFO_MAKELDIF_PROCESSED_N_ENTRIES.get(numberOfEntriesWritten));
                }
            }
        } catch (Exception e) {
            errPrintln(ERR_MAKELDIF_EXCEPTION_DURING_PROCESSING.get(e.getMessage()));
            return false;
        } catch (final Exception e) {
            throw newToolException(
                    e, ResultCode.UNDEFINED, ERR_MAKELDIF_EXCEPTION_DURING_PROCESSING.get(e.getMessage()));
        }
        return true;
    }
    private MakeLDIF() {
        // nothing to do
    }
    /** To allow tests. */
    MakeLDIF(PrintStream out, PrintStream err) {
        super(out, err);
    }
}
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Utils.java
@@ -17,6 +17,7 @@
package com.forgerock.opendj.ldap.tools;
import static com.forgerock.opendj.cli.ArgumentConstants.USE_SYSTEM_STREAM_TOKEN;
import static com.forgerock.opendj.cli.CliConstants.NO_WRAPPING_BY_DEFAULT;
import static com.forgerock.opendj.cli.Utils.readBytesFromFile;
import static com.forgerock.opendj.cli.Utils.secondsToTimeString;
import static com.forgerock.opendj.ldap.tools.LDAPToolException.newToolException;
@@ -42,6 +43,7 @@
import com.forgerock.opendj.cli.BooleanArgument;
import com.forgerock.opendj.cli.IntegerArgument;
import com.forgerock.opendj.cli.StringArgument;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageDescriptor;
import org.forgerock.i18n.LocalizedIllegalArgumentException;
@@ -119,18 +121,6 @@
        return rc;
    }
    static void printSuccessMessage(
            final ConsoleApplication app, final Result r, final String operationType, final String dn) {
        app.println(INFO_OPERATION_SUCCESSFUL.get(operationType, dn));
        printlnTextMsg(app, r.getDiagnosticMessage());
        final List<String> referralURIs = r.getReferralURIs();
        if (referralURIs != null) {
            for (final String uri : referralURIs) {
                app.println(LocalizableMessage.raw(uri));
            }
        }
    }
    static void printPasswordPolicyResults(final ConsoleApplication app, final BindResult result) {
        try {
            final AuthorizationIdentityResponseControl control = result.getControl(
@@ -227,25 +217,6 @@
        }
    }
    static List<Filter> readFiltersFromFile(final String fileName) throws LDAPToolException {
        final List<Filter> filters = new ArrayList<>();
        try (final BufferedReader in = new BufferedReader(new FileReader(fileName))) {
            String line;
            while ((line = in.readLine()) != null) {
                if ("".equals(line.trim())) {
                    // ignore empty lines.
                    continue;
                }
                filters.add(Filter.valueOf(line));
            }
            return filters;
        } catch (final IOException e) {
            throw newToolException(e, ResultCode.CLIENT_SIDE_FILTER_ERROR, LocalizableMessage.raw(e.toString()));
        } catch (final LocalizedIllegalArgumentException e) {
            throw newToolException(e, ResultCode.CLIENT_SIDE_FILTER_ERROR, e.getMessageObject());
        }
    }
    static Filter readFilterFromString(final String filterStr) throws LDAPToolException {
        try {
            return Filter.valueOf(filterStr);
@@ -293,6 +264,30 @@
        }
    }
    /**
     * Return the content of all file which path are provided in the {@link List<String>}.
     *
     * @param filePaths
     *         The list of the paths of the files to get content from.
     * @return The aggregated content of the files in a {@link List<String>}.
     */
    static List<String> getLinesFromFiles(final List<String> filePaths) throws LDAPToolException {
        final List<String> filesLines = new ArrayList<>();
        for (final String filePath : filePaths) {
            try (final BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
                String line;
                while ((line = reader.readLine()) != null) {
                    filesLines.add(line);
                }
            } catch (final IOException e) {
                throw newToolParamException(
                        e, ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ.get(filePath, e.getLocalizedMessage()));
            }
        }
        return filesLines;
    }
    static void ensureLdapProtocolVersionIsSupported(final IntegerArgument version) throws LDAPToolException {
        try {
            final int versionNumber = version.getIntValue();
@@ -451,6 +446,20 @@
        }
    }
    /**
     * Return the maximum line length before wrapping or {@code 0} if no wrap should be done.
     *
     * @param wrapColumn
     *         {@link IntegerArgument} which could be provided on the command line.
     * @return The maximum line length before wrapping or {@code 0} if no wrap should be done.
     */
    static int computeWrapColumn(final IntegerArgument wrapColumn) throws ArgumentException {
        if (wrapColumn.isPresent()) {
            return wrapColumn.getIntValue();
        }
        return NO_WRAPPING_BY_DEFAULT;
    }
    /** Prevent instantiation. */
    private Utils() {
        // Do nothing.
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
@@ -40,7 +40,6 @@
ERR_DESCRIPTION_INVALID_VERSION=Invalid LDAP version number '%s'. \
 Allowed values are 2 and 3
ERR_SEARCH_NO_FILTERS=No filters specified for the search request
INFO_DESCRIPTION_DONT_WRAP=Do not wrap long lines
INFO_DESCRIPTION_TYPES_ONLY=Only retrieve attribute names but not their \
 values
INFO_DESCRIPTION_ASSERTION_FILTER=Use the LDAP assertion control with the \
@@ -71,8 +70,7 @@
 control be included in updated entries, or 0 to exclude the control from \
 matching entries
INFO_BIND_AUTHZID_RETURNED=# Bound with authorization ID %s
INFO_SEARCH_DESCRIPTION_FILENAME=File containing a list of search filter \
 strings
INFO_SEARCH_DESCRIPTION_FILENAME=File containing the search filter to use
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=Use the LDAP matched values \
 control with the provided filter
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=The provided matched values \
@@ -125,7 +123,7 @@
 LDAP compare operations in the Directory Server
INFO_LDAPMODIFY_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
 modify, add, delete, and modify DN operations in the Directory Server. \
 When not using a file to specify modifications, end your input with EOF \
 When not using file(s) to specify modifications, end your input with EOF \
 (Ctrl+D on UNIX, Ctrl+Z on Windows)
INFO_LDAPPWMOD_TOOL_DESCRIPTION=This utility can be used to perform LDAP \
 password modify operations in the Directory Server
@@ -273,17 +271,24 @@
ERR_LDIFDIFF_MULTIPLE_USES_OF_STDIN=Unable to use stdin for both the source \
 LDIF and target LDIF
ERR_LDIFMODIFY_PATCH_FAILED=The changes could not be applied for the following \
 reason: %s
 reason: %s\nEnsure that no modification operations are done on previously \
 added or deleted entries.
ERR_LDIFDIFF_DIFF_FAILED=The differences could not be computed for the following \
 reason: %s
ERR_LDIFSEARCH_FAILED=The search could not be performed for the following \
 reason: %s
INFO_LDIFMODIFY_TOOL_DESCRIPTION=This utility can be used to apply a set of \
 modify, add, and delete operations to entries contained in an LDIF file
 modify, add, and delete operations to entries contained in an LDIF file.\n \
 If standard input is used to specify source or changes, end your input with EOF \
 (Ctrl+D on UNIX, Ctrl+Z on Windows)
INFO_LDIFDIFF_TOOL_DESCRIPTION=This utility can be used to compare two LDIF \
 files and report the differences in LDIF format
 files and report the differences in LDIF format.\n \
 If standard input is used to specify source or target, end your input with EOF \
 (Ctrl+D on UNIX, Ctrl+Z on Windows)
INFO_LDIFSEARCH_TOOL_DESCRIPTION=This utility can be used to perform search \
 operations against entries contained in an LDIF file
 operations against entries contained in an LDIF file.\n \
 If standard input is used to specify source, end your input with EOF \
 (Ctrl+D on UNIX, Ctrl+Z on Windows)
ERR_LDIF_GEN_TOOL_EXCEPTION_DURING_PARSE=An error occurred while \
 parsing template file:  %s
ERR_LDIF_GEN_TOOL_NO_SUCH_RESOURCE_DIRECTORY=The specified resource \
@@ -295,6 +300,18 @@
ERR_AUTHRATE_NO_BIND_DN_PROVIDED=Authentication information must be provided \
 to use this tool
ERR_DECODE_CONTROL_CRITICALITY=Invalid format for criticality value '%s' in control '%s'
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=File containing the DNs of the entries \
 to compare
INFO_DESCRIPTION_SUBENTRIES=Use subentries control to specify that \
 subentries are visible and normal entries are not
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=The base DN for the search. If no base \
 DN is provided, then the root DSE will be used
INFO_LDIFDIFF_DESCRIPTION_USE_COMPARE_RESULT=Use the LDAP compare result \
as an exit code for reporting differences between the two LDIF files
INFO_LDAPCOMPARE_DESCRIPTION_USE_COMPARE_RESULT=Use the LDAP compare result \
as an exit code for the LDAP compare operations
INFO_LDIFDIFF_NO_DIFFERENCES=No differences were detected between the \
 source and target LDIF files
 #
 # MakeLDIF tool
 #
@@ -321,9 +338,6 @@
 processing :  %s
ERR_CONSTANT_ARG_CANNOT_DECODE=Unable to parse a constant argument \
 expecting name=value but got %s
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Maximum length of an output line \
 (0 for no wrapping)
INFO_MAKELDIF_WRAP_COLUMN_PLACEHOLDER={wrapColumn}
ERR_LDAPP_BIND_FAILED=The LDAP bind request failed: %d (%s)
ERR_LDAP_SEARCH_FAILED=The LDAP search request failed: %d (%s)
ERR_LDAP_MODIFY_FAILED=The LDAP modify request failed: %d (%s)
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ca_ES.properties
@@ -14,7 +14,47 @@
#  Copyright 2016 ForgeRock AS.
#
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Columna in la qual s'envoltaran les l\u00ednies incorrectes (0 per no envoltar)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=El fitxer que cont\u00e9 els DNs de les entrades a comparar
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=El DN base per la cerca. Si no es proporciona cap DN base, aleshores s'utilitzar\u00e0 l'arrel DSE
INFO_SEARCH_DESCRIPTION_BASEDN=Cercar DN base
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=Nombre m\u00e0xim d'entrades per retornar des de la cerca
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Per\u00edode de temps m\u00e0xim en segons per permetre en la cerca
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=\u00c0lies pol\u00edtica des-refer\u00e8ncia ('never', 'always', 'search', o 'find')
INFO_DESCRIPTION_TYPES_ONLY=Recuperar \u00fanicament els noms dels atributs per\u00f2 no els seus valors
INFO_DESCRIPTION_ASSERTION_FILTER=Utilitzar el control d'argumentaci\u00f3 LDAP amb el filtre proporcionat
INFO_DESCRIPTION_PREREAD_ATTRS=Utilitzar el control de pre-lectura ReadEntry de LDAP
INFO_DESCRIPTION_POSTREAD_ATTRS=Utilitzar el control de post-lectura ReadEntry de LDAP
INFO_DESCRIPTION_PROXY_AUTHZID=Utilitzar el control d'autentificaci\u00f3 intermediari amb la ID d'autoritzaci\u00f3 donada
INFO_DESCRIPTION_PSEARCH_INFO=Utilitzar el control de cerca persistent
INFO_SEARCH_DESCRIPTION_FILENAME=El fitxer que cont\u00e9 un llistat de les cadenes de text del filtre de cerca
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=Utilitzar el control dels valors de coincid\u00e8ncia LDAP amb el filtre proporcionat
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=La ruta al fitxer de sortida on el qual s'escriuran totes les entrades coincidents.  Si aquesta no es proporciona, aleshores les dades seran escrites a la sortida est\u00e0ndard
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=Fitxer on el qual s'ha d'escriure la sortida
INFO_MAKELDIF_DESCRIPTION_LDIF=La ruta al fitxer LDIF a ser escrit
INFO_MAKELDIF_DESCRIPTION_SEED=La llavor a utilitzar per inicialitzar el generador de n\u00fameros aleatoris
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=El fitxer on el qual les dades d'actualitzaci\u00f3 s'hauran d'escriure
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=ID d'autoritzaci\u00f3 per l'entada de l'usuari la contrasenya del qual s'ha de canviar
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=Nova contrasenya a proporcionar per l'usuari dest\u00ed
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=La ruta al fitxer que cont\u00e9 la nova contrasenya a proporcionar per l'usuari dest\u00ed
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Contrasenya actual per l'usuari dest\u00ed
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=La ruta al fitxer que cont\u00e9 la contrasenya actual per l'usuari dest\u00ed
INFO_DESCRIPTION_COUNT_ENTRIES=Contar el n\u00famero d'entrades retornades pel servidor
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=Utilitzar el control de resultats paginats amb la mida de p\u00e0gina donada
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=El fitxer LDIF que cont\u00e9 els canvis a aplicar
INFO_DESCRIPTION_SORT_ORDER=Ordenar els resultats mitjan\u00e7ant l'ordre d'ordenaci\u00f3 proporcionat
INFO_DESCRIPTION_VLV=Utilitzar el control de visualitzaci\u00f3 del llistat virtual per recuperar la p\u00e0gina de resultats especificada
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=Utilitzar el control geteffectiverights amb el authzid proporcionat
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Especificar el llistat d'atributs espec\u00edfics del control geteffectiverights
ERR_CANNOT_INITIALIZE_ARGS=S'ha produ\u00eft un error mentre s'intentava inicialitzar els arguments de la l\u00ednia de comandes:  %s
ERR_ERROR_PARSING_ARGS=S'ha produ\u00eft un error mentre s'analitzaven els arguments de la l\u00ednia de comandes:  %s
INFO_PROCESSING_OPERATION=Processant la sol\u00b7litut %s per %s
INFO_OPERATION_FAILED=Operaci\u00f3 %s fallida
INFO_OPERATION_SUCCESSFUL=Operaci\u00f3 %s satisfact\u00f2ria pel DN %s
INFO_PROCESSING_COMPARE_OPERATION=Comparant el tipus %s amb el valor %s en l'entrada %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=Aquesta utilitat pot utilitzar-se per realitzar operacions de comparaci\u00f3 LDAP en el servidor de directori
INFO_LDAPMODIFY_TOOL_DESCRIPTION=Aquesta utilitat pot utilitzar-se per realitzar operacions de modificaci\u00f3, afegiment, eliminaci\u00f3, i modificaci\u00f3 DN en el servidor de directori
INFO_LDAPPWMOD_TOOL_DESCRIPTION=Aquesta utilitat pot utilitzar-se per realitzar operacions de modificaci\u00f3 de contrasenya en el servidor de directori
INFO_LDAPSEARCH_TOOL_DESCRIPTION=Aquesta utilitat pot utilitzar-se per realitzar operacions de cerca en el servidor de directori
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# N\u00famero total de les entrades que coincideixen: %d
ERR_TOOL_RESULT_CODE=Codi de resultat:  %d (%s)
ERR_TOOL_MATCHED_DN=DN coincident:  %s
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_de.properties
@@ -13,7 +13,99 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Spalte, in der lange Zeile umgebrochen werden sollen (0 f\u00fcr keinen Zeilenumbruch)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=Datei mit den DNs der zu vergleichenden Eintr\u00e4ge
INFO_DESCRIPTION_SUBENTRIES=Verwenden Sie das Steuerelement f\u00fcr Untereintr\u00e4ge, um anzugeben, dass die Untereintr\u00e4ge sichtbar und normale Eintrag unsichtbar sind
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=Basis-DN f\u00fcr die Suche. Falls kein Basis-DN angegeben wird, wird das Root-DSE verwendet
INFO_SEARCH_DESCRIPTION_BASEDN=Basis-DN f\u00fcr Suche
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=Maximale Anzahl der Eintr\u00e4ge, die bei der Suche zur\u00fcckgegeben werden
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Maximal zul\u00e4ssige Suchdauer in Sekunden
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=Alias-Dereferenzierungsrichtlinie ('never', 'always', 'search' oder 'find')
INFO_DESCRIPTION_TYPES_ONLY=Nur Attributnamen abfragen, nicht ihre Werte
INFO_DESCRIPTION_ASSERTION_FILTER=LDAP-Assertionssteuerung f\u00fcr den angegebenen Filter verwenden
INFO_DESCRIPTION_PREREAD_ATTRS=LDAP-ReadEntry-Preread-Steuerung verwenden
INFO_DESCRIPTION_POSTREAD_ATTRS=LDAP-ReadEntry-Postread-Steuerung verwenden
INFO_DESCRIPTION_PROXY_AUTHZID=Die Authorisierungssteuerung \u00fcber einen Proxy mit der gegebenen Authorisierungs-ID verwenden
INFO_DESCRIPTION_PSEARCH_INFO=Die best\u00e4ndige Suchsteuerung verwenden
INFO_SEARCH_DESCRIPTION_FILENAME=Datei mit einer Liste von Suchfilterzeichenketten
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=LDAP-Steuerung f\u00fcr \u00fcbereinstimmende Werte mit dem angegebenen Filter verwenden
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=Der Pfad zu der Ausgabedatei, in die die \u00fcbereinstimmenden Werte geschrieben werden.  Wenn diese nicht angegeben wird, werden die Daten in die Standardausgabedatei geschrieben
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=Datei, in die die Ausgabe geschrieben wird
INFO_MAKELDIF_DESCRIPTION_LDIF=Pfad zu der zu schreibenden LDIF-Datei
INFO_MAKELDIF_DESCRIPTION_SEED=Seed zur Initialisierung des Zufallszahlengenerators
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=Pfad, um nach MakeLDIF-Ressourcen zu suchen (z. B. Datendateien), die nicht im aktuellen Arbeitsverzeichnis oder dem Vorlagenverzeichnispfad gefunden werden
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=Datei, in die die aktualisierten Daten geschrieben werden
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=Authorisierungs-ID f\u00fcr den Benutzereintrag, dessen Passwort ge\u00e4ndert werden soll
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=Neues Passwort f\u00fcr den Benutzer
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=Pfad zur neuen Passwortdatei f\u00fcr den Zielbenutzer
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Aktuelles Passwort f\u00fcr den Zielbenutzer
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=Pfad zur aktuellen Passwortdatei f\u00fcr den Zielbenutzer
INFO_DESCRIPTION_COUNT_ENTRIES=Anzahl der vom Server zur\u00fcckgegebenen Eintr\u00e4ge z\u00e4hlen
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=Simple Paged Results Control mit der gegebenen Seitengr\u00f6\u00dfe verwenden
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=LDIF-Datei mit den zu \u00fcbernehmenden \u00c4nderungen
INFO_DESCRIPTION_SORT_ORDER=Ergebnisse nach der angegebenen Sortierreihenfolge sortieren
INFO_DESCRIPTION_VLV=Virtual List View Control zum Abrufen der angegebenen Ergebnisseite verwenden
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=Steuerung geteffectiverights mit der angegebenen Authzid verwenden
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Legt die spezifische Attributliste der Steuerung geteffectiverights fest
ERR_CANNOT_INITIALIZE_ARGS=Unerwarteter Fehler beim Versuch, das Befehlszeilenargument zu initialisieren:  %s
ERR_ERROR_PARSING_ARGS=Fehler beim Parsing der Befehlszeilenargumente:  %s
INFO_PROCESSING_OPERATION=Verarbeitet Anforderung %s f\u00fcr %s
INFO_OPERATION_FAILED=Vorgang %s fehlgeschlagen
INFO_OPERATION_SUCCESSFUL=Vorgang %s erfolgreich f\u00fcr DN %s
INFO_PROCESSING_COMPARE_OPERATION=Vergleicht Typ %s mit Wert %s in Eintrag %s
INFO_COMPARE_OPERATION_RESULT_FALSE=Vergleichvorgang gibt den Wert false f\u00fcr Eintrag %s zur\u00fcck
INFO_COMPARE_OPERATION_RESULT_TRUE=Vergleichvorgang gibt den Wert true f\u00fcr Eintrag %s zur\u00fcck
ERR_SEARCH_NO_FILTERS=Es wurden keine Filter f\u00fcr die Suchanfrage angegeben
INFO_LDAPMODIFY_PREREAD_ENTRY=Zieleintrag vor dem Vorgang:
INFO_LDAPMODIFY_POSTREAD_ENTRY=Zieleintrag nach dem Vorgang:
ERR_PSEARCH_MISSING_DESCRIPTOR=Die Anforderung, die best\u00e4ndige Suchsteuerung zu verwenden, enth\u00e4lt keine Beschreibung mit den Optionen f\u00fcr die Steuerung
ERR_PSEARCH_DOESNT_START_WITH_PS=Die best\u00e4ndige Suchbeschreibung %s beginnt nicht mit der erforderlichen Zeichenkette 'ps'
ERR_PSEARCH_INVALID_CHANGE_TYPE=Der angegebene \u00c4nderungstypwert %s ist ung\u00fcltig.  Zul\u00e4ssige \u00c4nderungstypen sind add, delete, modify, modifydn und any
ERR_PSEARCH_INVALID_CHANGESONLY=Der angegebene changesOnly-Wert %s ist ung\u00fcltig.  Zul\u00e4ssige Werte sind 1, um nur \u00fcbereinstimmende Eintr\u00e4ge zur\u00fcckzugeben, die seit Beginn der Suche ge\u00e4ndert wurden, und 0, um auch vorhandene Eintr\u00e4ge einzuschlie\u00dfen, die dem Suchkriterium entsprechen
ERR_PSEARCH_INVALID_RETURN_ECS=Der angegebene returnECs-Wert %s ist ung\u00fcltig.  Zul\u00e4ssige Werte sind 1, damit die Eintrags\u00e4nderungsbenachrichtigungssteuerung bei aktualisierten Eintr\u00e4gen eingeschlossen wird, oder 0, um die Steuerung von \u00fcbereinstimmenden Eintr\u00e4gen auszuschlie\u00dfen
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=Der angegebene Filter f\u00fcr \u00fcbereinstimmende Werte ist ung\u00fcltig: %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=Fehler beim Versuch, die LDIF-Datei %s zum Lesen zu \u00f6ffnen:  %s
ERR_LDIF_FILE_READ_ERROR=Fehler beim Versuch, den Inhalt der LDIF-Datei %s zu lesen: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=Fehler beim Versuch, LDIF-Datei %s zum Schreiben zu \u00f6ffnen: %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=Fehler beim Schreiben von Daten in LDIF-Datei %s: %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=%d Eintr\u00e4ge verarbeitet
INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF-Verarbeitung vollst\u00e4ndig.  %d Eintr\u00e4ge geschrieben
ERR_LDAPPWMOD_FAILED=Der LDAP-Passwort\u00e4nderungsvorgang ist mit Ergebniscode %d fehlgeschlagen
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=Fehlermeldung:  %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=\u00dcbereinstimmender DN:  %s
INFO_LDAPPWMOD_SUCCESSFUL=Der LDAP-Passwort\u00e4nderungsvorgang war erfolgreich
INFO_LDAPPWMOD_ADDITIONAL_INFO=Zus\u00e4tzliche Info: %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=Generiertes Passwort: %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=Der Assertionswert sollte Base64-enkodiert sein, es ist aber ein Fehler beim Entschl\u00fcsseln des Werts aufgetreten
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=Der Assertionswert kann nicht aus der angegebenen Datei gelesen werden: %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=Dieses Dienstprogramm dient zur Durchf\u00fchrung von LDAP-Vergleichsvorg\u00e4ngen im Directory-Server
INFO_LDAPMODIFY_TOOL_DESCRIPTION=Dieses Dienstprogramm dient zur Durchf\u00fchrung von LDAP-\u00c4nderungs-, -Hinzuf\u00fcge-, -L\u00f6sch- und DN-\u00c4nderungsvorg\u00e4ngen im Directory-Server
INFO_LDAPPWMOD_TOOL_DESCRIPTION=Dieses Dienstprogramm dient zur Durchf\u00fchrung von LDAP-\u00c4nderungsvorg\u00e4ngen im Directory-Server
INFO_LDAPSEARCH_TOOL_DESCRIPTION=Dieses Dienstprogramm dient zur Durchf\u00fchrung von LDAP-Suchvorg\u00e4ngen im Directory-Server
ERR_LDAPCOMPARE_NO_ATTR=Es wurde kein Attribut zur Verwendung als Ziel f\u00fcr den Vergleich angegeben
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=Ung\u00fcltige Attributzeichenkette '%s'. Die Attributzeichenkette muss in einer der folgenden Formen vorliegen: 'attribute:value', 'attribute::base64value' oder 'attribute:<valueFilePath'
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# \u00c4nderungstyp best\u00e4ndige Suche: %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# Vorheriger Eintrags-DN best\u00e4ndige Suche: %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# Antwortsteuerung Kontoverwendbarkeit
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   Das Konto ist verwendbar
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   Zeitdauer, bis das Passwort abl\u00e4uft: %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   Das Konto ist nicht verwendbar
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   Das Konto wurde deaktiviert
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   Das Passwort wurde zur\u00fcckgesetzt
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   Das Passwort ist abgelaufen
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   Verbleibende Kulanzanmeldungen: %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   Das Konto ist gesperrt
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   Zeitdauer, bis das Konto entsperrt wird: %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# Gesamtzahl \u00fcbereinstimmender Eintr\u00e4ge: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=Das Steuerelement f\u00fcr die einfache Seitenansicht der Ergebnisse kann nur mit einem einzelnen Suchfilter verwendet werden
ERR_TOOL_RESULT_CODE=Ergebniscode:  %d (%s)
ERR_TOOL_MATCHED_DN=\u00dcbereinstimmender DN:  %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=Die angegebene Sortierreihenfolge ist ung\u00fcltig: %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=Wenn das Argument --%s angegeben ist, dann muss auch das Argument --%s angebgeben werden
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=Die angegebene Virtual List View-Beschreibung ist ung\u00fcltig.  Der Wert muss in der Form 'beforeCount:afterCount:offset:contentCount' (wobei Offset den Index des Zieleintrags und contentCount die gesch\u00e4tzte Gesamtzahl an Ergebnissen bzw. Null angibt, wenn diese unbekannt ist), oder 'beforeCount:afterCount:assertionValue' (wobei der Eintrag der erste Eintrag sein sollte, dessen prim\u00e4rer Sortierwert gr\u00f6\u00dfergleich dem angegebenen assertionValue ist) vorliegen.  In beiden F\u00e4llen ist beforeCount die Anzahl der zur\u00fcckzugebenden Eintr\u00e4ge vor dem Zielwert und afterCount die Anzahl der zur\u00fcckzugebenden Eintr\u00e4ge nach dem Zielwert
WARN_LDAPSEARCH_SORT_ERROR=# Serverseitige Sortierung fehlgeschlagen:  %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV Ziel-Offset: %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV Inhaltsmenge: %d
WARN_LDAPSEARCH_VLV_ERROR=# Verarbeitung der virtuellen Listenansicht fehlgeschlagen: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=Die in der Steuerung geteffectiverights enthaltene Authorisierungs-ID "%s" ist ung\u00fcltig, da sie nicht mit "dn:" beginnt, um einen Benutzer-DN anzuzeigen
ERR_LDAPCOMPARE_ERROR_READING_FILE=Fehler beim Lesen von Datei '%s'.  Stellen Sie sicher, dass die Datei vorhanden ist und Sie die Lesezugriffsrechte hierf\u00fcr besitzen  Details: %s
ERR_LDAPCOMPARE_FILENAME_AND_DNS=Beide Eintrags-DNs und ein Dateiname wurden f\u00fcr den Vergleichsvorgang angegeben.  Diese Argumente sind nicht kompatibel
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_es.properties
@@ -13,7 +13,101 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Columna en la que ajustar l\u00edneas largas (0 para ning\u00fan ajuste)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=Archivo que contiene los ND de las entradas que comparar
INFO_DESCRIPTION_SUBENTRIES=Use el control de subentradas para especificar que las subentradas sean visibles, pero que las entradas normales no lo sean
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=El ND de base para la b\u00fasqueda. Si no se especifica un ND de base, se utilizar\u00e1 el DSE ra\u00edz
INFO_SEARCH_DESCRIPTION_BASEDN=ND base de b\u00fasqueda
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=N\u00famero m\u00e1ximo de entradas que se devolver\u00e1n de la b\u00fasqueda
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Duraci\u00f3n m\u00e1xima de tiempo en segundos permitida para la b\u00fasqueda
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=Directiva de deshacer referencia de alias ('nunca', 'siempre', 'b\u00fasqueda' o 'buscar')
INFO_DESCRIPTION_TYPES_ONLY=Recuperar s\u00f3lo los nombres de atributo, pero no sus valores
INFO_DESCRIPTION_ASSERTION_FILTER=Utilizar el control de aserci\u00f3n LDAP con el filtro especificado
INFO_DESCRIPTION_PREREAD_ATTRS=Utilizar el control de pre-lectura ReadEntry de LDAP
INFO_DESCRIPTION_POSTREAD_ATTRS=Utilizar el control de post-lectura ReadEntry de LDAP
INFO_DESCRIPTION_PROXY_AUTHZID=Utilizar el control de autorizaci\u00f3n de proxy con el Id. de autorizaci\u00f3n dado
INFO_DESCRIPTION_PSEARCH_INFO=Utilizar el control de b\u00fasqueda persistente
INFO_SEARCH_DESCRIPTION_FILENAME=Archivo que contiene una lista de cadenas de filtro de b\u00fasqueda
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=Utilizar el control de valores coincidentes de LDAP con el filtro especificado
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=Se debe escribir la ruta al archivo de salida con las entradas coincidentes.  Si no se especifica, los datos se escribir\u00e1n en la salida est\u00e1ndar
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=Archivo en el que se escribir\u00e1 la salida
INFO_MAKELDIF_DESCRIPTION_LDIF=La ruta al archivo LDIF que escribir
INFO_MAKELDIF_DESCRIPTION_SEED=La semilla que se utilizar\u00e1 para inicializar el generador de n\u00fameros aleatorios
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=No se ha encontrado la ruta para buscar recursos MakeLDIF (p.ej. archivos de datos) en el directorio de trabajo actual o en la ruta del directorio de plantillas
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=Archivo en el que se deben escribir los datos actualizados
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=Id. de autorizaci\u00f3n para la entrada de usuario cuya contrase\u00f1a se debe cambiar
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=Nueva contrase\u00f1a que proporcionar al usuario de destino
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=Ruta a un archivo que contiene la nueva contrase\u00f1a que proporcionar al usuario de destino
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Contrase\u00f1a actual para el usuario de destino
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=Ruta a un archivo que contiene la contrase\u00f1a actual para el usuario de destino
INFO_DESCRIPTION_COUNT_ENTRIES=Contar el n\u00famero de entradas devueltas por el servidor
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=Utilizar el control de resultados paginado de forma simple con el tama\u00f1o de p\u00e1gina dado
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=Archivo LDIF que contiene los cambios que se van a aplicar
INFO_DESCRIPTION_SORT_ORDER=Ordenar los resultados mediante el orden especificado
INFO_DESCRIPTION_VLV=Utilizar el control de vista de lista virtual para recuperar la p\u00e1gina de resultados especificados
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=Utilizar el control geteffectiverights con el authzid especificado
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Especifica la lista de atributos espec\u00edfica del control geteffectiverights
ERR_CANNOT_INITIALIZE_ARGS=Se ha producido un error inesperado al tratar de inicializar los argumentos de l\u00ednea de comandos:  %s
ERR_ERROR_PARSING_ARGS=Se ha producido un error al analizar los argumentos de l\u00ednea de comandos: %s
INFO_PROCESSING_OPERATION=Procesando solicitud %s para %s
INFO_OPERATION_FAILED=error de operaci\u00f3n %s
INFO_OPERATION_SUCCESSFUL=operaci\u00f3n %s correcta para ND %s
INFO_PROCESSING_COMPARE_OPERATION=Comparando el tipo %s con valor %s en la entrada %s
INFO_COMPARE_OPERATION_RESULT_FALSE=La operaci\u00f3n de comparaci\u00f3n ha devuelto el valor false para la entrada %s
INFO_COMPARE_OPERATION_RESULT_TRUE=La operaci\u00f3n de comparaci\u00f3n ha devuelto el valor true para la entrada %s
ERR_SEARCH_NO_FILTERS=No se han especificado filtros para la solicitud de b\u00fasqueda
INFO_LDAPMODIFY_PREREAD_ENTRY=Entrada de destino antes de la operaci\u00f3n:
INFO_LDAPMODIFY_POSTREAD_ENTRY=Entrada de destino despu\u00e9s de la operaci\u00f3n:
ERR_PSEARCH_MISSING_DESCRIPTOR=La solicitud para utilizar el control de b\u00fasqueda persistente no incluye un descriptor que indique las opciones que utilizar con dicho control
ERR_PSEARCH_DOESNT_START_WITH_PS=El descriptor de b\u00fasqueda persistente %s no comenzaba por la cadena 'ps' requerida
ERR_PSEARCH_INVALID_CHANGE_TYPE=El valor de tipo de cambio especificado %s no es v\u00e1lido.  Los tipos de cambio reconocidos son add, delete, modify, modifydn y any
ERR_PSEARCH_INVALID_CHANGESONLY=El valor changesOnly %s especificado no es v\u00e1lido.  Los valores permitidos son 1 para devolver s\u00f3lo las entradas coincidentes que hayan cambiado desde el inicio de la b\u00fasqueda o 0 para incluir tambi\u00e9n las entradas existentes que coincidan con los criterios de b\u00fasqueda
ERR_PSEARCH_INVALID_RETURN_ECS=El valor returnECs %s especificado no es v\u00e1lido.  Los valores permitidos son 1 para solicitar que el control de notificaci\u00f3n de cambios de entrada se incluya en entradas actualizadas o 0 para excluir el control de las entradas coincidentes
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=El filtro de valores coincidentes especificado no era v\u00e1lido:  %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=Se ha producido un error al tratar de abrir el archivo de LDIF %s para lectura: %s
ERR_LDIF_FILE_READ_ERROR=Se ha producido un error al tratar de leer los contenidos del archivo de LDIF %s: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=Se ha producido un error al intentar abrir el archivo LDIF %s para escritura:  %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=Se ha producido un error al escribir datos en el archivo LDIF %s:  %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=%d entradas procesadas
INFO_MAKELDIF_PROCESSING_COMPLETE=Procesamiento LDIF completo.  %d entradas escritas
ERR_LDAPPWMOD_FAILED=Se ha producido un error en la operaci\u00f3n de modificaci\u00f3n de contrase\u00f1a LDAP con el c\u00f3digo de resultado %d
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=Mensaje de error:  %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=ND coincidente:  %s
INFO_LDAPPWMOD_SUCCESSFUL=La operaci\u00f3n de modificaci\u00f3n de contrase\u00f1a de LDAP ha sido correcta
INFO_LDAPPWMOD_ADDITIONAL_INFO=Informaci\u00f3n adicional:  %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=Contrase\u00f1a generada:  %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=Se ha indicado que el valor de aserci\u00f3n estaba codificado en base64, pero se ha producido un error al intentar descodificar el valor
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=No se puede leer el valor de aserci\u00f3n desde el archivo especificado:  %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=Esta utilidad se puede utilizar para realizar operaciones de comparaci\u00f3n de LDAP en Directory Server
INFO_LDAPMODIFY_TOOL_DESCRIPTION=Esta utilidad se puede utilizar para realizar operaciones de modificar, agregar, eliminar y modificar ND en Directory Server
INFO_LDAPPWMOD_TOOL_DESCRIPTION=Esta utilidad se puede utilizar para realizar operaciones de modificaci\u00f3n de contrase\u00f1a en Directory Server
INFO_LDAPSEARCH_TOOL_DESCRIPTION=Esta utilidad se puede utilizar para realizar operaciones de b\u00fasqueda de LDAP en Directory Server
ERR_LDAPCOMPARE_NO_ATTR=No se ha especificado ning\u00fan atributo para su uso como destino para la comparaci\u00f3n
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=Cadena de atributo no v\u00e1lida '%s'. La cadena de atributo debe tener una de las siguientes formas: 'atributo:valor', 'atributo::valorBase64', o 'atributo:<rutaArchivoValor'
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# Tipo de cambio de b\u00fasqueda persistente:  %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# ND de entrada anterior de b\u00fasqueda persistente:  %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# Control de respuesta de usabilidad de cuenta
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   La cuenta es utilizable
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   Tiempo para que caduque la contrase\u00f1a:  %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   La cuenta no es utilizable
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   Se ha desactivado la cuenta
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   Se ha restablecido la contrase\u00f1a
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   La contrase\u00f1a ha caducado
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   N\u00famero de inicios de sesi\u00f3n de gracia restantes:  %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   La cuenta est\u00e1 bloqueada
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   Tiempo para el desbloqueo de la cuenta:  %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# N\u00famero total de entradas coincidentes: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=S\u00f3lo puede emplearse el control de resultados paginado de forma simple con un \u00fanico filtro de b\u00fasqueda
ERR_TOOL_RESULT_CODE=C\u00f3digo de resultado:  %d (%s)
ERR_TOOL_MATCHED_DN=ND coincidente:  %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=El orden especificado no era v\u00e1lido:  %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=Si se especifica el argumento --%s, tambi\u00e9n se debe especificar el argumento --%s
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=El descriptor de vista de lista virtual especificado no era v\u00e1lido.  Debe ser un valor con la forma 'beforeCount:afterCount:offset:contentCount' (donde offset especifica el \u00edndice de la entrada de destino y contentCount especifica el n\u00famero total de resultados estimado o cero si se desconoce) o 'beforeCount:afterCount:assertionValue' (donde la entrada debe ser la primera entrada cuyo valor de ordenaci\u00f3n principal sea mayor o igual al valor de aserci\u00f3n especificado).  En cualquier caso, beforeCount es el n\u00famero de entradas que devolver antes del valor de destino y afterCount es el n\u00famero de entradas que devolver despu\u00e9s del valor de destino
WARN_LDAPSEARCH_SORT_ERROR=# No pudo realizarse la ordenaci\u00f3n del lado del servidor:  %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# Desplazamiento de destino de VLV:  %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# Recuento de contenido de VLV:  %d
WARN_LDAPSEARCH_VLV_ERROR=# No pudo realizarse el procesamiento de la vista de lista virtual: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=El Id. de autorizaci\u00f3n "%s" contenido en el control geteffectiverights no es v\u00e1lido ya que no empieza por "dn:" para indicar un ND de usuario
ERR_LDAPCOMPARE_ERROR_READING_FILE=Se ha producido un error al leer el archivo '%s'.  Compruebe si existe el archivo y si posee derechos de acceso de lectura para \u00e9ste.  Detalles: %s
ERR_LDAPCOMPARE_FILENAME_AND_DNS=Se han proporcionado ambos ND de entrada y un nombre de archivo para la operaci\u00f3n de comparaci\u00f3n  Estos argumentos no son compatibles
INFO_LDIFDIFF_DESCRIPTION_USE_COMPARE_RESULT=Utilice los resultados de comparaci\u00f3n de LDAP como un c\u00f3digo de salida para se\\u00F1alar diferencias entre los dos archivos LDIF
INFO_LDAPCOMPARE_DESCRIPTION_USE_COMPARE_RESULT=Utilice los resultados de comparaci\u00f3n de LDAP como un c\u00f3digo de salida para las comparaci\u00f3nes LDAP
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_fr.properties
@@ -13,7 +13,101 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Taille maximum d'une ligne dans le fichier de sortie (0 = pas de limite)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=Fichier contenant les DN des entr\u00e9es \u00e0 comparer
INFO_DESCRIPTION_SUBENTRIES=Utilisez le contr\u00f4le de sous-entr\u00e9es pour sp\u00e9cifier que les sous-entr\u00e9es sont visibles et que les entr\u00e9es normales sont masqu\u00e9es
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=Le DN de base pour la recherche. En l'absence de DN de base, le DSE racine sera utilis\u00e9
INFO_SEARCH_DESCRIPTION_BASEDN=Rechercher DN de base
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=Nombre maximum d'entr\u00e9es \u00e0 renvoyer depuis la recherche
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Dur\u00e9e maximum en secondes \u00e0 autoriser pour la recherche
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=Strat\u00e9gie de d\u00e9r\u00e9f\u00e9rencement d'alias ('never', 'always', 'search ou 'find')
INFO_DESCRIPTION_TYPES_ONLY=R\u00e9cup\u00e9rer uniquement les noms d'attribut, pas leurs valeurs
INFO_DESCRIPTION_ASSERTION_FILTER=Utiliser le contr\u00f4le de l'assertion LDAP avec le filtre fourni
INFO_DESCRIPTION_PREREAD_ATTRS=Utiliser le contr\u00f4le de pr\u00e9lecture ReadEntry de LDAP
INFO_DESCRIPTION_POSTREAD_ATTRS=Utiliser le contr\u00f4le de postlecture ReadEntry de LDAP
INFO_DESCRIPTION_PROXY_AUTHZID=Utiliser le contr\u00f4le d'autorisation mise en proxy avec l'ID d'autorisation donn\u00e9e
INFO_DESCRIPTION_PSEARCH_INFO=Utiliser le contr\u00f4le de recherche persistente
INFO_SEARCH_DESCRIPTION_FILENAME=Fichier contenant une liste des cha\u00eenes de filtres de recherche
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=Utiliser le contr\u00f4le des valeurs avec correspondance LDAP avec le filtre fourni
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=Le chemin vers le fichier de sortie dans lequel les entr\u00e9es correspondantes devraient \u00eatre \u00e9crites.  En son absence, les donn\u00e9es seront alors \u00e9crites dans la sortie standard
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=Fichier dans lequel la sortie devrait \u00eatre \u00e9crite
INFO_MAKELDIF_DESCRIPTION_LDIF=Le chemin vers le fichier LDIF \u00e0 \u00e9crire
INFO_MAKELDIF_DESCRIPTION_SEED=Le germe \u00e0 utiliser pour initialiser le g\u00e9n\u00e9rateur de nombres al\u00e9atoire
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=Impossible de trouver le chemin pour rechercher les ressources MakeLDIF (par exemple, des fichiers de donn\u00e9es) dans le r\u00e9pertoire de travail actuel ou dans le chemin du r\u00e9pertoire de mod\u00e8les
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=Fichier dans lequel les donn\u00e9es mises \u00e0 jour devraient \u00eatre \u00e9crites
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=ID d'autorisation pour l'entr\u00e9e utilisateur dont le mot de passe devrait \u00eatre chang\u00e9
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=Nouveau mot de passe \u00e0 fournir pour l'utilisateur cible
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=Chemin vers un fichier contenant le nouveau mot de passe \u00e0 fournir pour l'utilisateur cible
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Mot de passe actuel pour l'utilisateur cible
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=Chemin vers un fichier contenant le mot de passe actuel pour l'utilisateur cible
INFO_DESCRIPTION_COUNT_ENTRIES=Compter le nombre d'entr\u00e9es renvoy\u00e9es par le serveur
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=Utiliser le contr\u00f4le de r\u00e9sultats sur page simple avec la taille de feuille donn\u00e9e
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=Fichier LDIF contenant les modifications \u00e0 appliquer
INFO_DESCRIPTION_SORT_ORDER=Trier les r\u00e9sultats selon l'ordre de tri indiqu\u00e9
INFO_DESCRIPTION_VLV=Utiliser l'affichage de liste virtuelle pour r\u00e9cup\u00e9rer la page de r\u00e9sultats sp\u00e9cifi\u00e9e
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=Utiliser le contr\u00f4le geteffectiverights avec authzid autoris\u00e9
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Sp\u00e9cifie la liste d'attributs sp\u00e9cifiques de contr\u00f4le geteffectiverights
ERR_CANNOT_INITIALIZE_ARGS=Une erreur inattendue s'est produite lors de la tentative d'initialisation des arguments de ligne de commande\u00a0: %s
ERR_ERROR_PARSING_ARGS=Une erreur s'est produite lors de l'analyse des arguments de ligne de commande\u00a0: %s
INFO_PROCESSING_OPERATION=Effectue l'action de la demande %s pour %s
INFO_OPERATION_FAILED=\u00c9chec de %s
INFO_OPERATION_SUCCESSFUL=%s r\u00e9ussie pour le DN %s
INFO_PROCESSING_COMPARE_OPERATION=Comparaison de type %s avec la valeur %s dans l'entr\u00e9e %s
INFO_COMPARE_OPERATION_RESULT_FALSE=L'op\u00e9ration de comparaison a renvoy\u00e9 false pour l'entr\u00e9e %s
INFO_COMPARE_OPERATION_RESULT_TRUE=L'op\u00e9ration de comparaison a renvoy\u00e9 true pour l'entr\u00e9e %s
ERR_SEARCH_NO_FILTERS=Aucun filtre sp\u00e9cifi\u00e9 pour la requ\u00eate de recherche
INFO_LDAPMODIFY_PREREAD_ENTRY=Entr\u00e9e cible avant l'op\u00e9ration\u00a0:
INFO_LDAPMODIFY_POSTREAD_ENTRY=Entr\u00e9e cible apr\u00e8s l'op\u00e9ration\u00a0:
ERR_PSEARCH_MISSING_DESCRIPTOR=La requ\u00eate d'utilisation du contr\u00f4le de recherche persistente n'incluait pas de descripteur indiquant les options \u00e0 utiliser avec ce contr\u00f4le
ERR_PSEARCH_DOESNT_START_WITH_PS=Le descripteur de recherche persistente %s ne s'est pas lanc\u00e9 avec la cha\u00eene 'ps' demand\u00e9e
ERR_PSEARCH_INVALID_CHANGE_TYPE=La valeur de type de changement indiqu\u00e9e %s est invalide.  Les types de changement reconnus sont ajouter, supprimer, modifier, modifydn et autres
ERR_PSEARCH_INVALID_CHANGESONLY=La valeur changesOnly indiqu\u00e9e %s est invalide.  Les valeurs autoris\u00e9es sont 1, pour renvoyer uniquement les entr\u00e9es correspondantes ayant \u00e9t\u00e9 modifi\u00e9es depuis le d\u00e9but de la recherche, ou 0, pour inclure aussi les entr\u00e9es existantes correspondant aux crit\u00e8res de recherche
ERR_PSEARCH_INVALID_RETURN_ECS=La valeur returnECs indiqu\u00e9e %s est invalide.  Les valeurs autoris\u00e9es sont 1, pour demander l'inclusion du contr\u00f4le de notification de modification des entr\u00e9es dans les entr\u00e9es mises \u00e0 jour, ou 0, pour exclure le contr\u00f4le des entr\u00e9es correspondantes
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=Le filtre de valeurs avec correspondance fourni \u00e9tait invalide\u00a0:   %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=Une erreur s'est produite lors de la tentative d'ouverture du fichier LDIF %s pour la lecture\u00a0: %s
ERR_LDIF_FILE_READ_ERROR=Une erreur s'est produite lors de la tentative de lecture du contenu du fichier LDIF %s\u00a0: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=Une erreur s'est produite lors de la tentative d'ouverture du fichier LDIF %s pour \u00e9crire\u00a0:  %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=Une erreur s'est produite lors de l'\u00e9criture des donn\u00e9es dans le fichier LDIF %s\u00a0:  %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=%d entr\u00e9es trait\u00e9es
INFO_MAKELDIF_PROCESSING_COMPLETE=Traitement LDIF termin\u00e9.  %d entr\u00e9es \u00e9crites
ERR_LDAPPWMOD_FAILED=\u00c9chec de l'op\u00e9ration de modification du mot de passe LDAP, avec le code de r\u00e9sultat %d
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=Message d'erreur\u00a0: %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=DN correspondant\u00a0: %s
INFO_LDAPPWMOD_SUCCESSFUL=L'op\u00e9ration de modification du mot de passe LDAP a \u00e9t\u00e9 effectu\u00e9e avec succ\u00e8s
INFO_LDAPPWMOD_ADDITIONAL_INFO=Informations suppl\u00e9mentaires\u00a0:  %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=Mot de passe g\u00e9n\u00e9r\u00e9\u00a0:  %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=La valeur assertion \u00e9tait indiqu\u00e9e comme cod\u00e9e en base64, mais une erreur s'est produite lors de la tentative de d\u00e9codage de la valeur
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=Impossible de lire la valeur d'assertion dans le fichier sp\u00e9cifi\u00e9\u00a0: %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=Cet utilitaire permet d'effectuer des op\u00e9rations de comparaison de LDAP dans Directory Server
INFO_LDAPMODIFY_TOOL_DESCRIPTION=Cet utilitaire permet d'effectuer les op\u00e9rations LDAP suivantes dans Directory Server\u00a0: modify, add, delete et modify DN
INFO_LDAPPWMOD_TOOL_DESCRIPTION=Cet utilitaire permet d'effectuer des op\u00e9rations de modification de mots de passe de LDAP dans Directory Server
INFO_LDAPSEARCH_TOOL_DESCRIPTION=Cet utilitaire permet d'effectuer des op\u00e9rations de recherche de LDAP dans Directory Server
ERR_LDAPCOMPARE_NO_ATTR=Aucun attribut n'a \u00e9t\u00e9 sp\u00e9cifi\u00e9 pour utilisation comme cible de la comparaison
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=Cha\u00eene d'attribut non valide\u00a0: '%s'. La cha\u00eene d'attribut doit avoir l'un des formats suivants\u00a0: 'attribut:valeur', 'attribut::valeurbase64' ou 'attribut:<cheminFichierValeurs'
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# Persistent search change type:  %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=#  DN d'entr\u00e9e pr\u00e9c\u00e9dente de recherche persistante :  %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=#  Contr\u00f4le de r\u00e9ponse d'utilisabilit\u00e9 du compte
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   Le compte est utilisable
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   D\u00e9lai avant expiration du mot de passe\u00a0:  %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   Le compte n'est pas utilisable
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   Le compte a \u00e9t\u00e9 d\u00e9sactiv\u00e9
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   Le mot de passe a \u00e9t\u00e9 r\u00e9initialis\u00e9
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   Le mot de passe a expir\u00e9
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#    Nombre de connexions restantes : %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#  Le compte est verrouill\u00e9
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#  D\u00e9lai avant verrouillage du compte\u00a0:  %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# Total number of matching entries: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=Vous ne pouvez utiliser le contr\u00f4le simple de r\u00e9sultats pagin\u00e9s qu'avec un seul filtre de recherche
ERR_TOOL_RESULT_CODE=Code de r\u00e9sultat\u00a0: %d (%s)
ERR_TOOL_MATCHED_DN=DN correspondant\u00a0: %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=L'ordre de tri indiqu\u00e9 \u00e9tait invalide\u00a0:   %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=Si cet argument %s est indiqu\u00e9, l'argument --%s doit aussi \u00eatre donn\u00e9
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=Le descripteur indiqu\u00e9 de l'affichage de liste virtuelle \u00e9tait invalide.  Cela doit \u00eatre une valeur de la forme suivante: 'beforeCount:afterCount:offset:contentCount' (o\u00f9 offset indique l'index de l'entr\u00e9e cible et contentCount le nombre total estim\u00e9 de r\u00e9sultats, z\u00e9ro s'il est inconnu) ou 'beforeCount:afterCount:assertionValue' (o\u00f9 l'entr\u00e9e devrait \u00eatre la premi\u00e8re entr\u00e9e dont la valeur de tri de noeud principal est sup\u00e9rieure ou \u00e9gale \u00e0 l'assertionValue fournie).  Dans les deux cas, beforeCount est le nombre d'entr\u00e9es \u00e0 renvoyer avant la valeur cible et afterCount est le nombre d'entr\u00e9es \u00e0 renvoyer apr\u00e8s la valeur cible
WARN_LDAPSEARCH_SORT_ERROR=# \u00c9chec du tri c\u00f4t\u00e9 serveur\u00a0: %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=#  D\u00e9calage de la cible VLV\u00a0:  %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=#  Nombre contenus VLV\u00a0: %d
WARN_LDAPSEARCH_VLV_ERROR=# \u00c9chec du traitement de l'affichage de la liste virtuelle\u00a0: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=L'ID d'autorisation "%s" contenu dans le contr\u00f4le geteffectiverights est invalide car il ne doit pas commencer par "dn:" pour indiquer un DN utilisateur
ERR_LDAPCOMPARE_ERROR_READING_FILE=Une erreur s'est produite lors de la lecture du fichier '%s'.  V\u00e9rifiez que ce fichier existe et que vous disposez de droits de lecture le concernant  D\u00e9tails\u00a0: %s
ERR_LDAPCOMPARE_FILENAME_AND_DNS=Vous avez fourni \u00e0 la fois des DN d'entr\u00e9e et un nom de fichier pour l'op\u00e9ration de comparaison.  Ces arguments ne sont pas compatibles
INFO_LDIFDIFF_DESCRIPTION_USE_COMPARE_RESULT=Utiliser le r\u00e9sultat de comparaison LDAP en tant que code de sortie pour signaler les diff\u00e9rences entre deux fichiers LDIF
INFO_LDAPCOMPARE_DESCRIPTION_USE_COMPARE_RESULT=Utiliser le r\u00e9sultat de comparaison LDAP en tant que code de sortie pour les comparaisons LDAP
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ja.properties
@@ -13,7 +13,99 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u9577\u3044\u884c\u3092\u6298\u308a\u8fd4\u3059\u6841 (0 \u306f\u6298\u308a\u8fd4\u3057\u306a\u3057)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=\u6bd4\u8f03\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u306e DN \u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb
INFO_DESCRIPTION_SUBENTRIES=\u30b5\u30d6\u30a8\u30f3\u30c8\u30ea\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u3001\u901a\u5e38\u306e\u30a8\u30f3\u30c8\u30ea\u306f\u8868\u793a\u305b\u305a\u306b\u30b5\u30d6\u30a8\u30f3\u30c8\u30ea\u3092\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u6307\u5b9a\u3057\u307e\u3059
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=\u30d9\u30fc\u30b9 DN \u3092\u691c\u7d22\u3057\u307e\u3059
INFO_SEARCH_DESCRIPTION_BASEDN=\u30d9\u30fc\u30b9 DN \u3092\u691c\u7d22\u3057\u307e\u3059
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=\u691c\u7d22\u304b\u3089\u8fd4\u3059\u30a8\u30f3\u30c8\u30ea\u306e\u6700\u5927\u6570
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=\u691c\u7d22\u3092\u5b9f\u884c\u53ef\u80fd\u306a\u6700\u5927\u6642\u9593 (\u79d2)
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=\u30a8\u30a4\u30ea\u30a2\u30b9\u9593\u63a5\u53c2\u7167\u30dd\u30ea\u30b7\u30fc ('never'\u3001'always'\u3001'search'\u3001\u307e\u305f\u306f 'find')
INFO_DESCRIPTION_TYPES_ONLY=\u5c5e\u6027\u540d\u3092\u53d6\u5f97\u3059\u308b\u3060\u3051\u3067\u3001\u305d\u306e\u5024\u306f\u53d6\u5f97\u3057\u307e\u305b\u3093
INFO_DESCRIPTION_ASSERTION_FILTER=\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a3\u30eb\u30bf\u3067 LDAP \u8868\u660e\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_PREREAD_ATTRS=LDAP ReadEntry \u8aad\u307f\u8fbc\u307f\u524d\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_POSTREAD_ATTRS=LDAP ReadEntry \u8aad\u307f\u8fbc\u307f\u5f8c\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_PROXY_AUTHZID=\u6307\u5b9a\u3055\u308c\u305f\u8a8d\u53ef ID \u306b\u5bfe\u3057\u3066\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\u3055\u308c\u305f\u8a8d\u53ef\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_PSEARCH_INFO=\u6301\u7d9a\u7684\u691c\u7d22\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_SEARCH_DESCRIPTION_FILENAME=\u691c\u7d22\u30d5\u30a3\u30eb\u30bf\u6587\u5b57\u5217\u306e\u30ea\u30b9\u30c8\u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a3\u30eb\u30bf\u3067 LDAP \u4e00\u81f4\u5024\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=\u4e00\u81f4\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u3092\u66f8\u304d\u8fbc\u3080\u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u30d1\u30b9\u3002  \u3053\u308c\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u3001\u30c7\u30fc\u30bf\u306f\u6a19\u6e96\u51fa\u529b\u306b\u66f8\u304d\u8fbc\u307e\u308c\u307e\u3059
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=\u51fa\u529b\u304c\u66f8\u304d\u8fbc\u307e\u308c\u308b\u30d5\u30a1\u30a4\u30eb
INFO_MAKELDIF_DESCRIPTION_LDIF=\u66f8\u304d\u8fbc\u307f\u5148\u306e LDIF \u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9
INFO_MAKELDIF_DESCRIPTION_SEED=\u4e71\u6570\u767a\u751f\u95a2\u6570\u306e\u521d\u671f\u5316\u306b\u4f7f\u7528\u3059\u308b\u30b7\u30fc\u30c9
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=MakeLDIF \u30ea\u30bd\u30fc\u30b9 (\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u306a\u3069) \u306e\u691c\u7d22\u30d1\u30b9\u304c\u3001\u73fe\u5728\u306e\u4f5c\u696d\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3082\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30d1\u30b9\u5185\u306b\u3082\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=\u66f4\u65b0\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306e\u66f8\u304d\u8fbc\u307f\u5148\u30d5\u30a1\u30a4\u30eb
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5909\u66f4\u3059\u308b\u30e6\u30fc\u30b6\u30fc\u30a8\u30f3\u30c8\u30ea\u306e\u8a8d\u53ef ID
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=\u30bf\u30fc\u30b2\u30c3\u30c8\u30e6\u30fc\u30b6\u30fc\u306b\u6307\u5b9a\u3059\u308b\u65b0\u898f\u30d1\u30b9\u30ef\u30fc\u30c9
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=\u30bf\u30fc\u30b2\u30c3\u30c8\u30e6\u30fc\u30b6\u30fc\u306b\u6307\u5b9a\u3059\u308b\u65b0\u898f\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=\u30bf\u30fc\u30b2\u30c3\u30c8\u30e6\u30fc\u30b6\u30fc\u306e\u73fe\u5728\u306e\u30d1\u30b9\u30ef\u30fc\u30c9
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=\u30bf\u30fc\u30b2\u30c3\u30c8\u30e6\u30fc\u30b6\u30fc\u306e\u73fe\u5728\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u542b\u3080\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9
INFO_DESCRIPTION_COUNT_ENTRIES=\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u8fd4\u3055\u308c\u305f\u30a8\u30f3\u30c8\u30ea\u306e\u6570\u3092\u6570\u3048\u307e\u3059
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=\u6307\u5b9a\u3055\u308c\u305f\u30da\u30fc\u30b8\u30b5\u30a4\u30ba\u3092\u4f7f\u3063\u305f\u5358\u7d14\u306a\u30da\u30fc\u30b8\u30f3\u30b0\u306e\u7d50\u679c\u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=\u9069\u7528\u3059\u308b\u5909\u66f4\u3092\u542b\u3080 LDIF \u30d5\u30a1\u30a4\u30eb
INFO_DESCRIPTION_SORT_ORDER=\u6307\u5b9a\u3055\u308c\u305f\u30bd\u30fc\u30c8\u9806\u5e8f\u3092\u4f7f\u3063\u3066\u7d50\u679c\u3092\u30bd\u30fc\u30c8\u3057\u307e\u3059
INFO_DESCRIPTION_VLV=\u4eee\u60f3\u30ea\u30b9\u30c8\u8868\u793a\u5236\u5fa1\u3092\u4f7f\u3063\u3066\u3001\u6307\u5b9a\u3055\u308c\u305f\u7d50\u679c\u30da\u30fc\u30b8\u3092\u53d6\u5f97\u3057\u307e\u3059
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=\u6307\u5b9a\u3055\u308c\u305f authzid \u306b\u5bfe\u3057\u3066 geteffectiverights \u5236\u5fa1\u3092\u4f7f\u7528\u3057\u307e\u3059
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=geteffectiverights \u5236\u5fa1\u56fa\u6709\u306e\u5c5e\u6027\u30ea\u30b9\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059
ERR_CANNOT_INITIALIZE_ARGS=\u30b3\u30de\u30f3\u30c9\u884c\u5f15\u6570\u306e\u521d\u671f\u5316\u4e2d\u306b\u4e88\u671f\u3057\u306a\u3044\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
ERR_ERROR_PARSING_ARGS=\u30b3\u30de\u30f3\u30c9\u884c\u5f15\u6570\u306e\u89e3\u6790\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
INFO_PROCESSING_OPERATION=%2$s \u306e %1$s \u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u3044\u307e\u3059
INFO_OPERATION_FAILED=%s \u306e\u64cd\u4f5c\u304c\u5931\u6557\u3057\u307e\u3057\u305f
INFO_OPERATION_SUCCESSFUL=DN %2$s \u306b\u5bfe\u3057\u3066 %1$s \u306e\u64cd\u4f5c\u304c\u6210\u529f\u3057\u307e\u3057\u305f
INFO_PROCESSING_COMPARE_OPERATION=\u30bf\u30a4\u30d7 %1$s \u3092\u30a8\u30f3\u30c8\u30ea %3$s \u5185\u306e\u5024 %2$s \u3068\u6bd4\u8f03\u3057\u3066\u3044\u307e\u3059
INFO_COMPARE_OPERATION_RESULT_FALSE=\u6bd4\u8f03\u64cd\u4f5c\u306b\u3088\u308a\u30a8\u30f3\u30c8\u30ea %s \u306b\u5bfe\u3057\u3066 false \u304c\u8fd4\u3055\u308c\u307e\u3057\u305f
INFO_COMPARE_OPERATION_RESULT_TRUE=\u6bd4\u8f03\u64cd\u4f5c\u306b\u3088\u308a\u30a8\u30f3\u30c8\u30ea %s \u306b\u5bfe\u3057\u3066 true \u304c\u8fd4\u3055\u308c\u307e\u3057\u305f
ERR_SEARCH_NO_FILTERS=\u691c\u7d22\u8981\u6c42\u306b\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a3\u30eb\u30bf\u304c\u3042\u308a\u307e\u305b\u3093
INFO_LDAPMODIFY_PREREAD_ENTRY=\u64cd\u4f5c\u524d\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30a8\u30f3\u30c8\u30ea:
INFO_LDAPMODIFY_POSTREAD_ENTRY=\u64cd\u4f5c\u5f8c\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30a8\u30f3\u30c8\u30ea:
ERR_PSEARCH_MISSING_DESCRIPTOR=\u6301\u7d9a\u7684\u691c\u7d22\u5236\u5fa1\u306e\u4f7f\u7528\u8981\u6c42\u306b\u3001\u3053\u306e\u5236\u5fa1\u3067\u4f7f\u7528\u3059\u308b\u30aa\u30d7\u30b7\u30e7\u30f3\u3092\u793a\u3059\u8a18\u8ff0\u5b50\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093\u3067\u3057\u305f
ERR_PSEARCH_DOESNT_START_WITH_PS=\u6301\u7d9a\u7684\u691c\u7d22\u8a18\u8ff0\u5b50 %s \u306e\u5148\u982d\u306b\u5fc5\u9808\u306e 'ps' \u6587\u5b57\u5217\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f
ERR_PSEARCH_INVALID_CHANGE_TYPE=\u6307\u5b9a\u3055\u308c\u305f\u5909\u66f4\u30bf\u30a4\u30d7\u306e\u5024 %s \u304c\u7121\u52b9\u3067\u3059\u3002  \u8a8d\u8b58\u3055\u308c\u308b\u5909\u66f4\u30bf\u30a4\u30d7\u306f\u3001add\u3001delete\u3001modify\u3001modifydn\u3001\u304a\u3088\u3073 any \u3067\u3059
ERR_PSEARCH_INVALID_CHANGESONLY=\u6307\u5b9a\u3055\u308c\u305f changesOnly \u5024 %s \u306f\u7121\u52b9\u3067\u3059\u3002  \u4f7f\u7528\u53ef\u80fd\u306a\u5024\u306f\u3001\u4e00\u81f4\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u306e\u3046\u3061\u691c\u7d22\u306e\u958b\u59cb\u5f8c\u306b\u5909\u66f4\u3055\u308c\u305f\u30a8\u30f3\u30c8\u30ea\u306e\u307f\u3092\u8fd4\u3059\u5834\u5408\u306f 1\u3001\u691c\u7d22\u6761\u4ef6\u306b\u4e00\u81f4\u3059\u308b\u65e2\u5b58\u306e\u30a8\u30f3\u30c8\u30ea\u3082\u542b\u3081\u308b\u5834\u5408\u306f 0 \u3067\u3059
ERR_PSEARCH_INVALID_RETURN_ECS=\u6307\u5b9a\u3055\u308c\u305f returnECs \u5024 %s \u306f\u7121\u52b9\u3067\u3059\u3002  \u4f7f\u7528\u53ef\u80fd\u306a\u5024\u306f\u3001\u66f4\u65b0\u3055\u308c\u305f\u30a8\u30f3\u30c8\u30ea\u306b\u30a8\u30f3\u30c8\u30ea\u5909\u66f4\u901a\u77e5\u5236\u5fa1\u3092\u542b\u3081\u308b\u5834\u5408\u306f 1\u3001\u4e00\u81f4\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u304b\u3089\u5236\u5fa1\u3092\u9664\u5916\u3059\u308b\u5834\u5408\u306f 0 \u3067\u3059
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=\u6307\u5b9a\u3055\u308c\u305f\u4e00\u81f4\u5024\u30d5\u30a3\u30eb\u30bf\u306f\u7121\u52b9\u3067\u3057\u305f:  %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=LDIF \u30d5\u30a1\u30a4\u30eb %s \u3092\u8aad\u307f\u53d6\u308a\u7528\u306b\u958b\u3044\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
ERR_LDIF_FILE_READ_ERROR=LDIF \u30d5\u30a1\u30a4\u30eb %s \u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=LDIF \u30d5\u30a1\u30a4\u30eb %s \u3092\u66f8\u304d\u8fbc\u307f\u7528\u306b\u958b\u3044\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=\u30c7\u30fc\u30bf\u3092 LDIF \u30d5\u30a1\u30a4\u30eb %s \u306b\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f:  %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=%d \u30a8\u30f3\u30c8\u30ea\u304c\u51e6\u7406\u3055\u308c\u307e\u3057\u305f
INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF \u306e\u51e6\u7406\u304c\u5b8c\u4e86\u3057\u307e\u3057\u305f\u3002  %d \u30a8\u30f3\u30c8\u30ea\u304c\u66f8\u304d\u8fbc\u307e\u308c\u307e\u3057\u305f
ERR_LDAPPWMOD_FAILED=LDAP \u30d1\u30b9\u30ef\u30fc\u30c9\u5909\u66f4\u64cd\u4f5c\u306f\u3001\u7d50\u679c\u30b3\u30fc\u30c9 %d \u3067\u5931\u6557\u3057\u307e\u3057\u305f
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8:  %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=\u4e00\u81f4\u3057\u305f DN:  %s
INFO_LDAPPWMOD_SUCCESSFUL=LDAP \u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u5909\u66f4\u64cd\u4f5c\u306b\u6210\u529f\u3057\u307e\u3057\u305f
INFO_LDAPPWMOD_ADDITIONAL_INFO=\u8ffd\u52a0\u60c5\u5831:  %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=\u751f\u6210\u3055\u308c\u305f\u30d1\u30b9\u30ef\u30fc\u30c9:  %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=\u8868\u660e\u5024\u306f Base64 \u3067\u7b26\u53f7\u5316\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u793a\u3055\u308c\u307e\u3057\u305f\u304c\u3001\u5024\u306e\u5fa9\u53f7\u5316\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=\u6307\u5b9a\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u8868\u660e\u5024\u3092\u8aad\u307f\u53d6\u308c\u307e\u305b\u3093:  %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=\u3053\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u5185\u3067 LDAP \u6bd4\u8f03\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059
INFO_LDAPMODIFY_TOOL_DESCRIPTION=\u3053\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u5185\u3067 LDAP \u5909\u66f4\u3001\u8ffd\u52a0\u3001\u524a\u9664\u3001\u304a\u3088\u3073 DN \u5909\u66f4\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059
INFO_LDAPPWMOD_TOOL_DESCRIPTION=\u3053\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u5185\u3067 LDAP \u30d1\u30b9\u30ef\u30fc\u30c9\u5909\u66f4\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059
INFO_LDAPSEARCH_TOOL_DESCRIPTION=\u3053\u306e\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u30fc\u3092\u4f7f\u3063\u3066\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30b5\u30fc\u30d0\u30fc\u5185\u3067 LDAP \u691c\u7d22\u64cd\u4f5c\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059
ERR_LDAPCOMPARE_NO_ATTR=\u6bd4\u8f03\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u5c5e\u6027\u304c\u6307\u5b9a\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=\u7121\u52b9\u306a\u5c5e\u6027\u6587\u5b57\u5217 '%s' \u3067\u3059\u3002\u5c5e\u6027\u6587\u5b57\u5217\u306f\u3001\u6b21\u306e\u3044\u305a\u308c\u304b\u306e\u5f62\u5f0f\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059: '\u5c5e\u6027:\u5024'\u3001'\u5c5e\u6027::base64 \u5f62\u5f0f\u306e\u5024'\u3001\u307e\u305f\u306f '\u5c5e\u6027:<\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u306e\u5024'
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# \u6301\u7d9a\u691c\u7d22\u306e\u5909\u66f4\u30bf\u30a4\u30d7:  %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# \u6301\u7d9a\u691c\u7d22\u306e\u524d\u306e\u30a8\u30f3\u30c8\u30ea DN:  %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# \u30a2\u30ab\u30a6\u30f3\u30c8\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u30fc\u5fdc\u7b54\u5236\u5fa1
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   \u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u4f7f\u7528\u53ef\u80fd\u3067\u3059
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   \u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u671f\u9650\u5207\u308c\u306b\u306a\u308b\u307e\u3067\u306e\u6642\u9593:  %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   \u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   \u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u975e\u30a2\u30af\u30c6\u30a3\u30d6\u306b\u3055\u308c\u3066\u3044\u307e\u3059
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   \u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u30ea\u30bb\u30c3\u30c8\u3055\u308c\u307e\u3057\u305f
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   \u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u671f\u9650\u304c\u5207\u308c\u3066\u3044\u307e\u3059
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   \u6b8b\u3055\u308c\u305f\u7336\u4e88\u30ed\u30b0\u30a4\u30f3\u306e\u56de\u6570:  %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   \u30a2\u30ab\u30a6\u30f3\u30c8\u306f\u30ed\u30c3\u30af\u3055\u308c\u3066\u3044\u307e\u3059
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   \u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u30ed\u30c3\u30af\u89e3\u9664\u3055\u308c\u308b\u307e\u3067\u306e\u6642\u9593:  %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# \u4e00\u81f4\u3059\u308b\u30a8\u30f3\u30c8\u30ea\u306e\u7dcf\u6570: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=\u5358\u7d14\u306a\u30da\u30fc\u30b8\u30f3\u30b0\u306e\u7d50\u679c\u5236\u5fa1\u306f\u3001\u5358\u4e00\u306e\u691c\u7d22\u30d5\u30a3\u30eb\u30bf\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059
ERR_TOOL_RESULT_CODE=\u7d50\u679c\u30b3\u30fc\u30c9:  %d (%s)
ERR_TOOL_MATCHED_DN=\u4e00\u81f4\u3057\u305f DN:  %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=\u6307\u5b9a\u3055\u308c\u305f\u30bd\u30fc\u30c8\u9806\u5e8f\u304c\u7121\u52b9\u3067\u3057\u305f:  %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=--%s \u5f15\u6570\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001--%s \u5f15\u6570\u3082\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=\u6307\u5b9a\u3055\u308c\u305f\u4eee\u60f3\u30ea\u30b9\u30c8\u8868\u793a\u8a18\u8ff0\u5b50\u304c\u7121\u52b9\u3067\u3057\u305f\u3002  \u3053\u306e\u5024\u306e\u66f8\u5f0f\u306f\u3001'beforeCount:afterCount:offset:contentCount' (offset \u306b\u306f\u30bf\u30fc\u30b2\u30c3\u30c8\u30a8\u30f3\u30c8\u30ea\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u6307\u5b9a\u3057\u3001contentCount \u306b\u306f\u63a8\u5b9a\u3055\u308c\u308b\u7d50\u679c\u306e\u5408\u8a08\u307e\u305f\u306f 0 (\u4e0d\u660e\u306e\u5834\u5408) \u3092\u6307\u5b9a\u3059\u308b)\u3001\u307e\u305f\u306f 'beforeCount:afterCount:assertionValue' (\u30a8\u30f3\u30c8\u30ea\u306f\u6307\u5b9a\u3055\u308c\u305f assertionValue \u4ee5\u4e0a\u306e\u4e3b\u30bd\u30fc\u30c8\u5024\u3092\u6301\u3064\u6700\u521d\u306e\u30a8\u30f3\u30c8\u30ea\u306b\u3059\u308b) \u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002  \u3069\u3061\u3089\u306e\u5834\u5408\u3082\u3001beforeCount \u306f\u30bf\u30fc\u30b2\u30c3\u30c8\u5024\u306e\u524d\u306b\u8fd4\u3059\u30a8\u30f3\u30c8\u30ea\u6570\u306b\u3001afterCount \u306f\u30bf\u30fc\u30b2\u30c3\u30c8\u5024\u306e\u3042\u3068\u306b\u8fd4\u3059\u30a8\u30f3\u30c8\u30ea\u6570\u306b\u306a\u308a\u307e\u3059
WARN_LDAPSEARCH_SORT_ERROR=# \u30b5\u30fc\u30d0\u30fc\u5074\u306e\u30bd\u30fc\u30c8\u304c\u5931\u6557\u3057\u307e\u3057\u305f:  %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV \u30bf\u30fc\u30b2\u30c3\u30c8\u30aa\u30d5\u30bb\u30c3\u30c8:  %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV \u30b3\u30f3\u30c6\u30f3\u30c4\u6570:  %d
WARN_LDAPSEARCH_VLV_ERROR=# \u4eee\u60f3\u30ea\u30b9\u30c8\u8868\u793a\u306e\u51e6\u7406\u304c\u5931\u6557\u3057\u307e\u3057\u305f: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=geteffectiverights \u5236\u5fa1\u306b\u542b\u307e\u308c\u308b\u8a8d\u53ef ID "%s" \u304c\u7121\u52b9\u3067\u3059\u3002\u5148\u982d\u306b\u30e6\u30fc\u30b6\u30fc DN \u3092\u793a\u3059 "dn:" \u304c\u3042\u308a\u307e\u305b\u3093
ERR_LDAPCOMPARE_ERROR_READING_FILE=\u30d5\u30a1\u30a4\u30eb '%s' \u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u3001\u8aad\u307f\u53d6\u308a\u30a2\u30af\u30bb\u30b9\u6a29\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u8a73\u7d30: %s
ERR_LDAPCOMPARE_FILENAME_AND_DNS=\u30a8\u30f3\u30c8\u30ea DN \u3068\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u4e21\u65b9\u304c\u6bd4\u8f03\u64cd\u4f5c\u306b\u6307\u5b9a\u3055\u308c\u307e\u3057\u305f\u3002\u3053\u308c\u3089\u306e\u5f15\u6570\u306f\u4e92\u63db\u6027\u304c\u3042\u308a\u307e\u305b\u3093
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_ko.properties
@@ -13,7 +13,96 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\uae34 \ud589\uc744 \ub798\ud551\ud560 \uc5f4(0 = \ub798\ud551 \uc548 \ud568)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=\ube44\uad50\ud560 \ud56d\ubaa9\uc758 DN\uc744 \ud3ec\ud568\ud558\ub294 \ud30c\uc77c
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=\uae30\ubcf8 DN\uc744 \uac80\uc0c9\ud569\ub2c8\ub2e4.
INFO_SEARCH_DESCRIPTION_BASEDN=\uae30\ubcf8 DN\uc744 \uac80\uc0c9\ud569\ub2c8\ub2e4.
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=\uac80\uc0c9\uc5d0\uc11c \ubc18\ud658\ud560 \ucd5c\ub300 \ud56d\ubaa9 \uc218
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=\ud5c8\uc6a9\ub418\ub294 \ucd5c\ub300 \uac80\uc0c9 \uc2dc\uac04(\ucd08)
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=\ubcc4\uce6d \uc5ed\ucc38\uc870 \uc815\ucc45('never', 'always', 'search' \ub610\ub294 'find')
INFO_DESCRIPTION_TYPES_ONLY=\uac12\uc740 \uc81c\uc678\ud558\uace0 \uc18d\uc131 \uc774\ub984\ub9cc \uac80\uc0c9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_ASSERTION_FILTER=\uc81c\uacf5\ub41c \ud544\ud130\ub97c \uac00\uc9c4 LDAP \uba85\uc81c \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_PREREAD_ATTRS=LDAP ReadEntry pre-read \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_POSTREAD_ATTRS=LDAP ReadEntry post-read \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_PROXY_AUTHZID=\uc9c0\uc815\ub41c \uad8c\ud55c \ubd80\uc5ec \uc544\uc774\ub514\ub97c \uac00\uc9c4 \ud504\ub85d\uc2dc \uc778\uc99d \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_PSEARCH_INFO=\uc601\uad6c \uac80\uc0c9 \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_SEARCH_DESCRIPTION_FILENAME=\uac80\uc0c9 \ud544\ud130 \ubb38\uc790\uc5f4 \ubaa9\ub85d\uc744 \ud3ec\ud568\ud558\ub294 \ud30c\uc77c
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=\uc81c\uacf5\ub41c \ud544\ud130\ub97c \uac00\uc9c4 LDAP \uc77c\uce58 \uac12 \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=\uc77c\uce58 \ud56d\ubaa9\uc744 \uae30\ub85d\ud560 \ucd9c\ub825 \ud30c\uc77c \uacbd\ub85c.  \uc774 \uac12\uc744 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc73c\uba74 \ub370\uc774\ud130\uac00 \ud45c\uc900 \ucd9c\ub825\uc73c\ub85c \uae30\ub85d\ub429\ub2c8\ub2e4.
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=\ucd9c\ub825\uc744 \uae30\ub85d\ud560 \ud30c\uc77c
INFO_MAKELDIF_DESCRIPTION_LDIF=\uae30\ub85d\ud560 LDIF \ud30c\uc77c \uacbd\ub85c
INFO_MAKELDIF_DESCRIPTION_SEED=\ub09c\uc218 \uc0dd\uc131\uae30\ub97c \ucd08\uae30\ud654\ud558\ub294 \ub370 \uc0ac\uc6a9\ud558\ub294 \uc2dc\ub4dc
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=\ud604\uc7ac \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac \ub610\ub294 \ud15c\ud50c\ub9ac\ud2b8 \ub514\ub809\ud1a0\ub9ac \uacbd\ub85c\uc5d0 \uc5c6\ub294 MakeLDIF \uc790\uc6d0(\uc608: \ub370\uc774\ud130 \ud30c\uc77c)\uc744 \ucc3e\uae30 \uc704\ud55c \uacbd\ub85c
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=\uc5c5\ub370\uc774\ud2b8\ub41c \ub370\uc774\ud130\ub97c \uae30\ub85d\ud560 \ud30c\uc77c
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=\ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud560 \uc0ac\uc6a9\uc790 \ud56d\ubaa9\uc5d0 \ub300\ud55c \uad8c\ud55c \ubd80\uc5ec \uc544\uc774\ub514
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=\ub300\uc0c1 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc81c\uacf5\ud560 \uc0c8 \ube44\ubc00\ubc88\ud638
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=\ub300\uc0c1 \uc0ac\uc6a9\uc790\uc5d0\uac8c \uc81c\uacf5\ud560 \uc0c8 \ube44\ubc00\ubc88\ud638\ub97c \ud3ec\ud568\ud558\ub294 \ud30c\uc77c \uacbd\ub85c
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=\ub300\uc0c1 \uc0ac\uc6a9\uc790\uc5d0 \ub300\ud55c \ud604\uc7ac \ube44\ubc00\ubc88\ud638
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=\ub300\uc0c1 \uc0ac\uc6a9\uc790\uc5d0 \ub300\ud55c \ud604\uc7ac \ube44\ubc00\ubc88\ud638\ub97c \ud3ec\ud568\ud558\ub294 \ud30c\uc77c \uacbd\ub85c
INFO_DESCRIPTION_COUNT_ENTRIES=\uc11c\ubc84\uc5d0\uc11c \ubc18\ud658\ub418\ub294 \ud56d\ubaa9 \uc218\ub97c \uacc4\uc0b0\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=\uc9c0\uc815\ub41c \ud398\uc774\uc9c0 \ud06c\uae30\ub97c \uac00\uc9c4 \ub2e8\uc21c \ud398\uc774\uc9c0 \uacb0\uacfc \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=\uc801\uc6a9\ud560 \ubcc0\uacbd \uc0ac\ud56d\uc744 \ud3ec\ud568\ud558\ub294 LDIF \ud30c\uc77c
INFO_DESCRIPTION_SORT_ORDER=\uc81c\uacf5\ub41c \uc815\ub82c \uc21c\uc11c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uacb0\uacfc\ub97c \uc815\ub82c\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_VLV=\uac00\uc0c1 \ubaa9\ub85d \ubcf4\uae30 \uc81c\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc9c0\uc815\ub41c \uacb0\uacfc \ud398\uc774\uc9c0\ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=geteffectiverights \uc81c\uc5b4\ub97c \uc81c\uacf5\ub41c authzid\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=geteffectiverights \uc81c\uc5b4 \uad00\ub828 \uc18d\uc131 \ubaa9\ub85d\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.
ERR_CANNOT_INITIALIZE_ARGS=\uba85\ub839\uc904 \uc778\uc218\ub97c \ucd08\uae30\ud654\ud558\ub294 \ub3d9\uc548 \uc608\uae30\uce58 \uc54a\uc740 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
ERR_ERROR_PARSING_ARGS=\uba85\ub839\uc904 \uc778\uc218\ub97c \uad6c\ubb38 \ubd84\uc11d\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
INFO_PROCESSING_OPERATION=%2$s\uc5d0 \ub300\ud55c %1$s \uc694\uccad\uc744 \ucc98\ub9ac\ud558\ub294 \uc911
INFO_OPERATION_FAILED=%s \uc791\uc5c5\uc774 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4.
INFO_OPERATION_SUCCESSFUL=DN %2$s\uc5d0 \ub300\ud55c %1$s \uc791\uc5c5\uc774 \uc131\uacf5\ud588\uc2b5\ub2c8\ub2e4.
INFO_PROCESSING_COMPARE_OPERATION=%1$s \uc720\ud615\uc744 %3$s \ud56d\ubaa9\uc758 %2$s \uac12\uacfc \ube44\uad50\ud558\ub294 \uc911
INFO_COMPARE_OPERATION_RESULT_FALSE=\ube44\uad50 \uc791\uc5c5\uc774 %s \ud56d\ubaa9\uc5d0 \ub300\ud574 false\ub97c \ubc18\ud658\ud588\uc2b5\ub2c8\ub2e4.
INFO_COMPARE_OPERATION_RESULT_TRUE=\ube44\uad50 \uc791\uc5c5\uc774 %s \ud56d\ubaa9\uc5d0 \ub300\ud574 true\ub97c \ubc18\ud658\ud588\uc2b5\ub2c8\ub2e4.
ERR_SEARCH_NO_FILTERS=\uac80\uc0c9 \uc694\uccad\uc5d0 \ub300\ud55c \ud544\ud130\ub97c \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
INFO_LDAPMODIFY_PREREAD_ENTRY=\uc791\uc5c5 \uc774\uc804\uc758 \ub300\uc0c1 \ud56d\ubaa9:
INFO_LDAPMODIFY_POSTREAD_ENTRY=\uc791\uc5c5 \uc774\ud6c4\uc758 \ub300\uc0c1 \ud56d\ubaa9:
ERR_PSEARCH_MISSING_DESCRIPTOR=\uc601\uad6c \uac80\uc0c9 \uc81c\uc5b4 \uc0ac\uc6a9 \uc694\uccad\uc5d0 \ud574\ub2f9 \uc81c\uc5b4\uc640 \ud568\uaed8 \uc0ac\uc6a9\ud560 \uc635\uc158\uc744 \ub098\ud0c0\ub0b4\ub294 \uc124\uba85\uc790\uac00 \ud3ec\ud568\ub418\uc5b4 \uc788\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
ERR_PSEARCH_DOESNT_START_WITH_PS=\uc601\uad6c \uac80\uc0c9 \uc124\uba85\uc790 %s\uc774(\uac00) \ud544\uc218 'ps' \ubb38\uc790\uc5f4\ub85c \uc2dc\uc791\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
ERR_PSEARCH_INVALID_CHANGE_TYPE=\uc81c\uacf5\ub41c \ubcc0\uacbd \uc720\ud615 \uac12 %s\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.  \uc778\uc2dd\ub418\ub294 \ubcc0\uacbd \uc720\ud615\uc740 add, delete, modify, modifydn \ubc0f any\uc785\ub2c8\ub2e4.
ERR_PSEARCH_INVALID_CHANGESONLY=\uc81c\uacf5\ub41c changesOnly \uac12 %s\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.  \ud5c8\uc6a9\ub418\ub294 \uac12\uc740 \uac80\uc0c9 \uc2dc\uc791 \uc774\ud6c4 \ubcc0\uacbd\ub41c \uc77c\uce58 \ud56d\ubaa9\ub9cc \ubc18\ud658\ud558\ub294 \uacbd\uc6b0 1\uc774\uace0, \uac80\uc0c9 \uae30\uc900\uacfc \uc77c\uce58\ud558\ub294 \uae30\uc874 \ud56d\ubaa9\ub3c4 \ud3ec\ud568\ud558\ub294 \uacbd\uc6b0 0\uc785\ub2c8\ub2e4.
ERR_PSEARCH_INVALID_RETURN_ECS=\uc81c\uacf5\ub41c returnECs \uac12 %s\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.  \ud5c8\uc6a9\ub418\ub294 \uac12\uc740 \uc5c5\ub370\uc774\ud2b8\ub41c \ud56d\ubaa9\uc5d0 \ud56d\ubaa9 \ubcc0\uacbd \uc54c\ub9bc \uc81c\uc5b4\ub97c \ud3ec\ud568\ud558\ub3c4\ub85d \uc694\uccad\ud558\ub294 \uacbd\uc6b0 1\uc774\uace0, \uc77c\uce58 \ud56d\ubaa9\uc5d0\uc11c \uc81c\uc5b4\ub97c \uc81c\uc678\ud558\ub294 \uacbd\uc6b0 0\uc785\ub2c8\ub2e4.
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=\uc81c\uacf5\ub41c \uc77c\uce58 \uac12 \ud544\ud130\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4: %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=\uc77d\uae30 \uc704\ud574 LDIF \ud30c\uc77c %s\uc744(\ub97c) \uc5ec\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
ERR_LDIF_FILE_READ_ERROR=LDIF \ud30c\uc77c %s\uc758 \ub0b4\uc6a9\uc744 \uc77d\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=\uc4f0\uae30 \uc704\ud574 LDIF \ud30c\uc77c %s\uc744(\ub97c) \uc5ec\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=LDIF \ud30c\uc77c %s\uc5d0 \ub370\uc774\ud130\ub97c \uc4f0\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4: %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=%d\uac1c \ud56d\ubaa9\uc744 \ucc98\ub9ac\ud588\uc2b5\ub2c8\ub2e4.
INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF \ucc98\ub9ac\ub97c \uc644\ub8cc\ud588\uc2b5\ub2c8\ub2e4.  %d\uac1c \ud56d\ubaa9\uc744 \uae30\ub85d\ud588\uc2b5\ub2c8\ub2e4.
ERR_LDAPPWMOD_FAILED=LDAP \ube44\ubc00\ubc88\ud638 \uc218\uc815 \uc791\uc5c5\uc774 \uc2e4\ud328\ud558\uace0 \uacb0\uacfc \ucf54\ub4dc %d\uc774(\uac00) \ud45c\uc2dc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=\uc624\ub958 \uba54\uc2dc\uc9c0: %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=\uc77c\uce58\ud558\ub294 DN: %s
INFO_LDAPPWMOD_SUCCESSFUL=LDAP \ube44\ubc00\ubc88\ud638 \uc218\uc815 \uc791\uc5c5\uc774 \uc131\uacf5\ud588\uc2b5\ub2c8\ub2e4.
INFO_LDAPPWMOD_ADDITIONAL_INFO=\ucd94\uac00 \uc815\ubcf4: %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=\uc0dd\uc131\ub41c \ube44\ubc00\ubc88\ud638: %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=\uba85\uc81c \uac12\uc774 base64\ub85c \uc778\ucf54\ub529\ub41c \uac83\uc73c\ub85c \ud45c\uc2dc\ub418\uc9c0\ub9cc \uac12\uc744 \ud574\ub3c5\ud558\ub294 \ub3d9\uc548 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=\uc9c0\uc815\ub41c \ud30c\uc77c\uc5d0\uc11c \uba85\uc81c \uac12\uc744 \uc77d\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4: %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=\uc774 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0\uc11c LDAP \ube44\uad50 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
INFO_LDAPMODIFY_TOOL_DESCRIPTION=\uc774 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0\uc11c LDAP \uc218\uc815, DN \ucd94\uac00, \uc0ad\uc81c, \uc218\uc815 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
INFO_LDAPPWMOD_TOOL_DESCRIPTION=\uc774 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0\uc11c LDAP \ube44\ubc00\ubc88\ud638 \uc218\uc815 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_TOOL_DESCRIPTION=\uc774 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub514\ub809\ud1a0\ub9ac \uc11c\ubc84\uc5d0\uc11c LDAP \uac80\uc0c9 \uc791\uc5c5\uc744 \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
ERR_LDAPCOMPARE_NO_ATTR=\ube44\uad50 \ub300\uc0c1\uc73c\ub85c \uc0ac\uc6a9\ud560 \uc18d\uc131\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=\uc18d\uc131 \ubb38\uc790\uc5f4 '%s'\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc18d\uc131 \ubb38\uc790\uc5f4\uc740 'attribute:value', 'attribute::base64value', 'attribute:<valueFilePath' \ud615\uc2dd \uc911 \ud558\ub098\uc5ec\uc57c \ud569\ub2c8\ub2e4.
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# \uc601\uad6c \uac80\uc0c9 \ubcc0\uacbd \uc720\ud615: %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# \uc601\uad6c \uac80\uc0c9 \uc774\uc804 \ud56d\ubaa9 DN: %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# \uacc4\uc815 \uac00\uc6a9\uc131 \uc751\ub2f5 \uc81c\uc5b4
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   \uacc4\uc815\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   \ube44\ubc00\ubc88\ud638 \ub9cc\ub8cc \uc2dc\uae4c\uc9c0 \ub0a8\uc740 \uc2dc\uac04:  %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   \uacc4\uc815\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   \uacc4\uc815\uc774 \ube44\ud65c\uc131\ud654\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   \ube44\ubc00\ubc88\ud638\uac00 \uc7ac\uc124\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   \ube44\ubc00\ubc88\ud638\uac00 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   \ub0a8\uc740 \uc720\uc608 \ub85c\uadf8\uc778 \ud69f\uc218: %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   \uacc4\uc815\uc774 \uc7a0\uacbc\uc2b5\ub2c8\ub2e4.
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   \uacc4\uc815\uc774 \uc7a0\uae08 \ud574\uc81c\ub420 \ub54c\uae4c\uc9c0 \ub0a8\uc740 \uc2dc\uac04: %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# \uc77c\uce58\ud558\ub294 \ucd1d \ud56d\ubaa9 \uc218: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=\ub2e8\uc21c \ud398\uc774\uc9c0 \uacb0\uacfc \uc81c\uc5b4\ub294 \ub2e8\uc77c \uac80\uc0c9 \ud544\ud130\ub97c \ud1b5\ud574\uc11c\ub9cc \uc0ac\uc6a9\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4.
ERR_TOOL_RESULT_CODE=\uacb0\uacfc \ucf54\ub4dc: %d(%s)
ERR_TOOL_MATCHED_DN=\uc77c\uce58\ud558\ub294 DN: %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=\uc81c\uacf5\ub41c \uc815\ub82c \uc21c\uc11c\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4: %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=--%s \uc778\uc218\ub97c \uc81c\uacf5\ud560 \uacbd\uc6b0 --%s \uc778\uc218\ub3c4 \ud568\uaed8 \uc81c\uacf5\ud574\uc57c \ud569\ub2c8\ub2e4.
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=\uc81c\uacf5\ub41c \uac00\uc0c1 \ubaa9\ub85d \ubcf4\uae30 \uc124\uba85\uc790\uac00 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.  'beforeCount:afterCount:offset:contentCount'(\uc5ec\uae30\uc11c offset\uc740 \ub300\uc0c1 \ud56d\ubaa9\uc758 \uc0c9\uc778\uc744 \uc9c0\uc815\ud558\uace0 contentCount\ub294 \ucd1d \uc608\uc0c1 \uacb0\uacfc \uc218\ub97c \uc9c0\uc815\ud568, \uc54c \uc218 \uc5c6\ub294 \uacbd\uc6b0 0) \ub610\ub294 'beforeCount:afterCount:assertionValue'(\uc5ec\uae30\uc11c \ud56d\ubaa9\uc740 \uae30\ubcf8 \uc815\ub82c \uac12\uc774 \uc81c\uacf5\ub41c assertionValue\ubcf4\ub2e4 \ud06c\uac70\ub098 \uac19\uc740 \uccab \ubc88\uc9f8 \ud56d\ubaa9\uc784) \ud615\uc2dd\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4.  \uc5b4\ub5a4 \uacbd\uc6b0\uc774\uac74 beforeCount\ub294 \ub300\uc0c1 \uac12 \uc774\uc804\uc5d0 \ubc18\ud658\ub418\ub294 \ud56d\ubaa9 \uc218\uc774\uace0 afterCount\ub294 \ub300\uc0c1 \uac12 \uc774\ud6c4\uc5d0 \ubc18\ud658\ub418\ub294 \ud56d\ubaa9 \uc218\uc785\ub2c8\ub2e4.
WARN_LDAPSEARCH_SORT_ERROR=# \uc11c\ubc84\uce21 \uc815\ub82c \uc2e4\ud328: %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV \ub300\uc0c1 \uc624\ud504\uc14b: %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV \ucee8\ud150\ud2b8 \uc218: %d
WARN_LDAPSEARCH_VLV_ERROR=# \uac00\uc0c1 \ubaa9\ub85d \ubcf4\uae30 \ucc98\ub9ac \uc2e4\ud328: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=\uc0ac\uc6a9\uc790 DN\uc744 \ub098\ud0c0\ub0b4\ub294 "dn:"\uc73c\ub85c \uc2dc\uc791\ud558\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc5d0 geteffectiverights \uc81c\uc5b4\uc5d0 \ud3ec\ud568\ub41c \uc778\uc99d \uc544\uc774\ub514 \"%s\"\uc774(\uac00) \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_pl.properties
@@ -14,7 +14,48 @@
#  Copyright 2016 ForgeRock AS.
#
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=Kolumna na kt\u00f3rej zawijane b\u0119d\u0105 d\u0142ugie linie (0 aby wy\u0142\u0105czy\u0107 zawijanie)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=Plik zawieraj\u0105cy DNy wpis\u00f3w do por\u00f3wnania
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=Szukaj bazowej DN
INFO_SEARCH_DESCRIPTION_BASEDN=Szukaj bazowej DN
INFO_MAKELDIF_DESCRIPTION_LDIF=\u015acie\u017cka do pliku LDIF, kt\u00f3ry ma by\u0107 zapisany
INFO_DESCRIPTION_VLV=U\u017cyj wirtualnej kontroli widoku listy do odebrania podanej strony wynik\u00f3w
INFO_DESCRIPTION_TYPES_ONLY=Przywr\u00f3\u0107 tylko nazwy atrybut\u00f3w ale nie ich warto\u015bci
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=U\u017cyj prostej stronicowej kontroli rezultat\u00f3w z podan\u0105 wielko\u015bci\u0105 strony
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=U\u017cyj kontroli pasuj\u0105cych warto\u015bci LDAP z podanym filtrem
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=ID autoryzacji u\u017cytkownika, kt\u00f3rego has\u0142o powinno zosta\u0107 zmienione
INFO_DESCRIPTION_COUNT_ENTRIES=Licz ilo\u015b\u0107 wpis\u00f3w zwr\u00f3conych przez serwer
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=Aktualne has\u0142o docelowego u\u017cytkownika
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=Maksymalny czas w sekundach przeznaczony na operacj\u0119 szukania
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=Nowe has\u0142o dla docelowego u\u017cytkownika
INFO_DESCRIPTION_ASSERTION_FILTER=U\u017cyj kontroli za\u0142o\u017ce\u0144 LDAP za pomoc\u0105 podanego filtra
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=Okre\u015bla specyficzn\u0105 list\u0119 atrybut\u00f3w geteffectiverights
INFO_DESCRIPTION_PSEARCH_INFO=U\u017cyj kontroli uporczywego szukania
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=\u015acie\u017cka pliku zawieraj\u0105cego nowe has\u0142o dla docelowego u\u017cytkownika
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=Plik do kt\u00f3rego wynik powinien by\u0107 zapisany
INFO_DESCRIPTION_POSTREAD_ATTRS=U\u017cyj kontroli LDAP ReadEntry po odczycie
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=Plik LDIF zawieraj\u0105cy zmiany do zastosowania
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=Maksymalna ilo\u015b\u0107 wpis\u00f3w zwracana przez mechanizm wyszukiwania
INFO_SEARCH_DESCRIPTION_FILENAME=Plik zawieraj\u0105cy list\u0119 ci\u0105g\u00f3w filtr\u00f3w wyszukiwania
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=Polityka dereferencji alias\u00f3w ('never', 'always', 'search', or 'find')
INFO_DESCRIPTION_PREREAD_ATTRS=U\u017cyj kontroli LDAP ReadEntry przed odczytem
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=Plik do kt\u00f3rego powinny by\u0107 zapisane uaktualnione dane
INFO_MAKELDIF_DESCRIPTION_SEED=Ziarno u\u017cyte do inicjalizacji generatora liczb losowych
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=\u015acie\u017cka pliku zawieraj\u0105cego aktualne has\u0142o docelowego u\u017cytkownika
INFO_DESCRIPTION_PROXY_AUTHZID=U\u017cyj po\u015brednicz\u0105cej kontroli autoryzacji z podanym ID autoryzacji
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=U\u017cyj kontroli geteffectiverights z podanym authzid
INFO_DESCRIPTION_SORT_ORDER=Sortuj wyniki u\u017cywaj\u0105c podanej kolejno\u015bci sortowania
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=\u015acie\u017cka pliku, do kt\u00f3rego zostan\u0105 zapisane pasuj\u0105ce wpisy.  Je\u015bli nie podano, wtedy dane zostan\u0105 wypisane na standardowym wyj\u015bciu
INFO_PROCESSING_OPERATION=Przetwarzam \u017c\u0105danie %s dla %s
ERR_ERROR_PARSING_ARGS=Wyst\u0105pi\u0142 b\u0142\u0105d podczas przetwarzania argument\u00f3w wiersza polece\u0144:  %s
INFO_LDAPMODIFY_TOOL_DESCRIPTION=To narz\u0119dzie mo\u017ce by\u0107 u\u017cyte do przeprowadzenia operacji modyfikacji, dodania, usuni\u0119cia LDAP i modyfikacji DN na Directory Server
INFO_OPERATION_SUCCESSFUL=Operacja %s powiod\u0142a si\u0119 dla DN %s
ERR_TOOL_RESULT_CODE=Kod Rezultatu: %d (%s)
INFO_LDAPSEARCH_TOOL_DESCRIPTION=To narz\u0119dzie mo\u017ce by\u0107 u\u017cyte do przeprowadzenia operacji szukania LDAP na Directory Server
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=To narz\u0119dzie mo\u017ce by\u0107 u\u017cyte do przeprowadzenia operacji por\u00f3wnania LDAP na Directory Server
ERR_LDAPCOMPARE_ERROR_READING_FILE=An error occurred reading file '%s'.  Check that the file exists and that you have read access rights to it.  Szczeg\u00f3\u0142y: %s
INFO_OPERATION_FAILED=Operacja %s nie powiod\u0142a si\u0119
ERR_TOOL_MATCHED_DN=Pasuj\u0105ce DN:  %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=Pasuj\u0105ce DN:  %s
ERR_CANNOT_INITIALIZE_ARGS=Nieoczekiwany b\u0142\u0105d wyst\u0105pi\u0142 podczas pr\u00f3by inicjalizacji argument\u00f3w wiersza polece\u0144:  %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# Ca\u0142kowita ilo\u015b\u0107 pasuj\u0105cych wpis\u00f3w: %d
INFO_LDAPPWMOD_TOOL_DESCRIPTION=To narz\u0119dzie mo\u017ce by\u0107 u\u017cyte do przeprowadzenia operacji modyfikacji has\u0142a LDAP na Directory Server
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_CN.properties
@@ -13,7 +13,99 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u5bf9\u8f83\u957f\u7684\u884c\u8fdb\u884c\u6362\u884c\u7684\u5217\uff080 \u8868\u793a\u4e0d\u6362\u884c\uff09
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=\u5305\u542b\u8981\u6bd4\u8f83\u7684\u6761\u76ee DN \u7684\u6587\u4ef6
INFO_DESCRIPTION_SUBENTRIES=\u4f7f\u7528\u5b50\u6761\u76ee\u63a7\u4ef6\u6765\u6307\u5b9a\u5b50\u6761\u76ee\u53ef\u89c1\u53ca\u666e\u901a\u6761\u76ee\u4e0d\u53ef\u89c1
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=\u641c\u7d22\u57fa DN
INFO_SEARCH_DESCRIPTION_BASEDN=\u641c\u7d22\u57fa DN
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=\u4ece\u641c\u7d22\u64cd\u4f5c\u8fd4\u56de\u7684\u6700\u5927\u6761\u76ee\u6570
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=\u641c\u7d22\u64cd\u4f5c\u5141\u8bb8\u6267\u884c\u7684\u6700\u957f\u65f6\u95f4\uff08\u4ee5\u79d2\u4e3a\u5355\u4f4d\uff09
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=\u522b\u540d\u89e3\u9664\u5f15\u7528\u7b56\u7565\uff08'never'\u3001'always'\u3001'search' \u6216 'find'\uff09
INFO_DESCRIPTION_TYPES_ONLY=\u4ec5\u68c0\u7d22\u5c5e\u6027\u540d\u79f0\uff0c\u800c\u4e0d\u68c0\u7d22\u5c5e\u6027\u503c
INFO_DESCRIPTION_ASSERTION_FILTER=\u5c06 LDAP \u58f0\u660e\u63a7\u5236\u7528\u4e8e\u63d0\u4f9b\u7684\u8fc7\u6ee4\u5668
INFO_DESCRIPTION_PREREAD_ATTRS=\u4f7f\u7528 LDAP ReadEntry \u9884\u8bfb\u53d6\u63a7\u5236
INFO_DESCRIPTION_POSTREAD_ATTRS=\u4f7f\u7528 LDAP ReadEntry \u540e\u8bfb\u53d6\u63a7\u5236
INFO_DESCRIPTION_PROXY_AUTHZID=\u5c06\u4ee3\u7406\u6388\u6743\u63a7\u5236\u7528\u4e8e\u7ed9\u5b9a\u6388\u6743 ID
INFO_DESCRIPTION_PSEARCH_INFO=\u4f7f\u7528\u6301\u4e45\u6027\u641c\u7d22\u63a7\u5236
INFO_SEARCH_DESCRIPTION_FILENAME=\u5305\u542b\u641c\u7d22\u8fc7\u6ee4\u5668\u5b57\u7b26\u4e32\u5217\u8868\u7684\u6587\u4ef6
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=\u5c06 LDAP \u5339\u914d\u503c\u63a7\u5236\u7528\u4e8e\u63d0\u4f9b\u7684\u8fc7\u6ee4\u5668
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=\u5e94\u5728\u5176\u4e2d\u5199\u5165\u5339\u914d\u6761\u76ee\u7684\u8f93\u51fa\u6587\u4ef6\u7684\u8def\u5f84\u3002\u5982\u679c\u672a\u63d0\u4f9b\u8be5\u8def\u5f84\uff0c\u5219\u4f1a\u5c06\u6570\u636e\u5199\u5165\u6807\u51c6\u8f93\u51fa\u4e2d
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=\u5e94\u5728\u5176\u4e2d\u5199\u5165\u8f93\u51fa\u7684\u6587\u4ef6
INFO_MAKELDIF_DESCRIPTION_LDIF=\u8981\u5199\u5165\u7684 LDIF \u6587\u4ef6\u7684\u8def\u5f84
INFO_MAKELDIF_DESCRIPTION_SEED=\u7528\u4e8e\u521d\u59cb\u5316\u968f\u673a\u6570\u751f\u6210\u5668\u7684\u521d\u59cb\u5316\u5411\u91cf
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=\u5728\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55\u6216\u6a21\u677f\u76ee\u5f55\u8def\u5f84\u4e2d\u627e\u4e0d\u5230\u7528\u4e8e\u67e5\u627e MakeLDIF \u8d44\u6e90\uff08\u5982\u6570\u636e\u6587\u4ef6\uff09\u7684\u8def\u5f84
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=\u5e94\u5728\u5176\u4e2d\u5199\u5165\u66f4\u65b0\u6570\u636e\u7684\u6587\u4ef6
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=\u5e94\u66f4\u6539\u5bc6\u7801\u7684\u7528\u6237\u6761\u76ee\u7684\u6388\u6743 ID
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=\u4e3a\u76ee\u6807\u7528\u6237\u63d0\u4f9b\u7684\u65b0\u5bc6\u7801
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=\u5305\u542b\u4e3a\u76ee\u6807\u7528\u6237\u63d0\u4f9b\u7684\u65b0\u5bc6\u7801\u7684\u6587\u4ef6\u7684\u8def\u5f84
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=\u76ee\u6807\u7528\u6237\u7684\u5f53\u524d\u5bc6\u7801
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=\u5305\u542b\u76ee\u6807\u7528\u6237\u7684\u5f53\u524d\u5bc6\u7801\u7684\u6587\u4ef6\u7684\u8def\u5f84
INFO_DESCRIPTION_COUNT_ENTRIES=\u8ba1\u7b97\u670d\u52a1\u5668\u8fd4\u56de\u7684\u6761\u76ee\u6570
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=\u5c06\u7b80\u5355\u5206\u9875\u7ed3\u679c\u63a7\u5236\u7528\u4e8e\u7ed9\u5b9a\u9875\u9762\u5927\u5c0f
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=\u5305\u542b\u8981\u5e94\u7528\u7684\u66f4\u6539\u7684 LDIF \u6587\u4ef6
INFO_DESCRIPTION_SORT_ORDER=\u4f7f\u7528\u63d0\u4f9b\u7684\u6392\u5e8f\u987a\u5e8f\u5bf9\u7ed3\u679c\u8fdb\u884c\u6392\u5e8f
INFO_DESCRIPTION_VLV=\u4f7f\u7528\u865a\u62df\u5217\u8868\u89c6\u56fe\u63a7\u5236\u68c0\u7d22\u6307\u5b9a\u7684\u7ed3\u679c\u9875
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=\u5c06 geteffectiverights \u63a7\u5236\u7528\u4e8e\u63d0\u4f9b\u7684 authzid
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=\u6307\u5b9a\u7279\u5b9a\u4e8e geteffectiverights \u63a7\u5236\u7684\u5c5e\u6027\u5217\u8868
ERR_CANNOT_INITIALIZE_ARGS=\u5728\u5c1d\u8bd5\u521d\u59cb\u5316\u547d\u4ee4\u884c\u53c2\u6570\u65f6\u51fa\u73b0\u610f\u5916\u9519\u8bef: %s
ERR_ERROR_PARSING_ARGS=\u5728\u89e3\u6790\u547d\u4ee4\u884c\u53c2\u6570\u65f6\u51fa\u73b0\u9519\u8bef: %s
INFO_PROCESSING_OPERATION=\u6b63\u5728\u5904\u7406 %2$s \u7684 %1$s \u8bf7\u6c42
INFO_OPERATION_FAILED=%s \u64cd\u4f5c\u5931\u8d25
INFO_OPERATION_SUCCESSFUL=DN %2$s \u7684 %1$s \u64cd\u4f5c\u6210\u529f
INFO_PROCESSING_COMPARE_OPERATION=\u6b63\u5728\u5c06\u6761\u76ee %3$s \u4e2d\u7684\u7c7b\u578b %1$s \u4e0e\u503c %2$s \u8fdb\u884c\u6bd4\u8f83
INFO_COMPARE_OPERATION_RESULT_FALSE=\u6761\u76ee %s \u7684\u6bd4\u8f83\u64cd\u4f5c\u8fd4\u56de\u5047
INFO_COMPARE_OPERATION_RESULT_TRUE=\u6761\u76ee %s \u7684\u6bd4\u8f83\u64cd\u4f5c\u8fd4\u56de\u771f
ERR_SEARCH_NO_FILTERS=\u6ca1\u6709\u4e3a\u641c\u7d22\u8bf7\u6c42\u6307\u5b9a\u8fc7\u6ee4\u5668
INFO_LDAPMODIFY_PREREAD_ENTRY=\u64cd\u4f5c\u4e4b\u524d\u7684\u76ee\u6807\u6761\u76ee:
INFO_LDAPMODIFY_POSTREAD_ENTRY=\u64cd\u4f5c\u4e4b\u540e\u7684\u76ee\u6807\u6761\u76ee:
ERR_PSEARCH_MISSING_DESCRIPTOR=\u4f7f\u7528\u6301\u4e45\u6027\u641c\u7d22\u63a7\u5236\u7684\u8bf7\u6c42\u4e0d\u5305\u542b\u6307\u793a\u8be5\u63a7\u5236\u4f7f\u7528\u7684\u9009\u9879\u7684\u63cf\u8ff0\u7b26
ERR_PSEARCH_DOESNT_START_WITH_PS=\u6301\u4e45\u6027\u641c\u7d22\u63cf\u8ff0\u7b26 %s \u6ca1\u6709\u4ee5\u5fc5\u9700\u7684 'ps' \u5b57\u7b26\u4e32\u5f00\u5934
ERR_PSEARCH_INVALID_CHANGE_TYPE=\u63d0\u4f9b\u7684\u66f4\u6539\u7c7b\u578b\u503c %s \u65e0\u6548\u3002\u53ef\u8bc6\u522b\u7684\u66f4\u6539\u7c7b\u578b\u4e3a add\u3001delete\u3001modify\u3001modifydn \u548c any
ERR_PSEARCH_INVALID_CHANGESONLY=\u63d0\u4f9b\u7684 changesOnly \u503c %s \u65e0\u6548\u3002\u5141\u8bb8\u7684\u503c\u4e3a 1\uff08\u4ec5\u8fd4\u56de\u5728\u5f00\u59cb\u641c\u7d22\u540e\u53d1\u751f\u66f4\u6539\u7684\u5339\u914d\u6761\u76ee\uff09\u6216 0\uff08\u8fd8\u5305\u62ec\u4e0e\u641c\u7d22\u6761\u4ef6\u5339\u914d\u7684\u73b0\u6709\u6761\u76ee\uff09
ERR_PSEARCH_INVALID_RETURN_ECS=\u63d0\u4f9b\u7684 returnECs \u503c %s \u65e0\u6548\u3002\u5141\u8bb8\u7684\u503c\u4e3a 1\uff08\u8bf7\u6c42\u5728\u66f4\u65b0\u7684\u6761\u76ee\u4e2d\u5305\u542b\u6761\u76ee\u66f4\u6539\u901a\u77e5\u63a7\u5236\uff09\u6216 0\uff08\u4ece\u5339\u914d\u6761\u76ee\u4e2d\u6392\u9664\u8be5\u63a7\u5236\uff09
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=\u63d0\u4f9b\u7684\u5339\u914d\u503c\u8fc7\u6ee4\u5668\u65e0\u6548: %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=\u5728\u5c1d\u8bd5\u6253\u5f00 LDIF \u6587\u4ef6 %s \u4ee5\u8fdb\u884c\u8bfb\u53d6\u65f6\u51fa\u73b0\u9519\u8bef: %s
ERR_LDIF_FILE_READ_ERROR=\u5728\u5c1d\u8bd5\u8bfb\u53d6 LDIF \u6587\u4ef6 %s \u7684\u5185\u5bb9\u65f6\u51fa\u73b0\u9519\u8bef: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=\u5728\u5c1d\u8bd5\u6253\u5f00 LDIF \u6587\u4ef6 %s \u4ee5\u5199\u5165\u6570\u636e\u65f6\u51fa\u73b0\u9519\u8bef: %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=\u5728\u5c06\u6570\u636e\u5199\u5165 LDIF \u6587\u4ef6 %s \u65f6\u51fa\u73b0\u9519\u8bef: %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=\u5df2\u5904\u7406 %d \u4e2a\u6761\u76ee
INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF \u5904\u7406\u5b8c\u6210\u3002\u5df2\u5199\u5165 %d \u4e2a\u6761\u76ee
ERR_LDAPPWMOD_FAILED=LDAP \u5bc6\u7801\u4fee\u6539\u64cd\u4f5c\u5931\u8d25\uff0c\u5176\u7ed3\u679c\u4ee3\u7801\u4e3a %d
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=\u9519\u8bef\u6d88\u606f: %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=\u5339\u914d DN: %s
INFO_LDAPPWMOD_SUCCESSFUL=LDAP \u5bc6\u7801\u4fee\u6539\u64cd\u4f5c\u6210\u529f
INFO_LDAPPWMOD_ADDITIONAL_INFO=\u5176\u4ed6\u4fe1\u606f: %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=\u751f\u6210\u7684\u5bc6\u7801: %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=\u6307\u793a\u58f0\u660e\u503c\u4e3a base64 \u7f16\u7801\uff0c\u4f46\u5728\u5c1d\u8bd5\u5bf9\u8be5\u503c\u8fdb\u884c\u89e3\u7801\u65f6\u51fa\u73b0\u9519\u8bef
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=\u65e0\u6cd5\u4ece\u6307\u5b9a\u7684\u6587\u4ef6\u4e2d\u8bfb\u53d6\u58f0\u660e\u503c: %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=\u6b64\u5b9e\u7528\u7a0b\u5e8f\u53ef\u7528\u4e8e\u5728\u76ee\u5f55\u670d\u52a1\u5668\u4e2d\u6267\u884c LDAP \u6bd4\u8f83\u64cd\u4f5c
INFO_LDAPMODIFY_TOOL_DESCRIPTION=\u6b64\u5b9e\u7528\u7a0b\u5e8f\u53ef\u7528\u4e8e\u5728\u76ee\u5f55\u670d\u52a1\u5668\u4e2d\u6267\u884c LDAP \u4fee\u6539\u3001\u6dfb\u52a0\u3001\u5220\u9664\u548c\u4fee\u6539 DN \u64cd\u4f5c
INFO_LDAPPWMOD_TOOL_DESCRIPTION=\u6b64\u5b9e\u7528\u7a0b\u5e8f\u53ef\u7528\u4e8e\u5728\u76ee\u5f55\u670d\u52a1\u5668\u4e2d\u6267\u884c LDAP \u5bc6\u7801\u4fee\u6539\u64cd\u4f5c
INFO_LDAPSEARCH_TOOL_DESCRIPTION=\u6b64\u5b9e\u7528\u7a0b\u5e8f\u53ef\u7528\u4e8e\u5728\u76ee\u5f55\u670d\u52a1\u5668\u4e2d\u6267\u884c LDAP \u641c\u7d22\u64cd\u4f5c
ERR_LDAPCOMPARE_NO_ATTR=\u6ca1\u6709\u6307\u5b9a\u7528\u4f5c\u6bd4\u8f83\u76ee\u6807\u7684\u5c5e\u6027
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=\u5c5e\u6027\u5b57\u7b26\u4e32 '%s' \u65e0\u6548\u3002\u5c5e\u6027\u5b57\u7b26\u4e32\u5fc5\u987b\u4e3a\u4ee5\u4e0b\u683c\u5f0f\u4e4b\u4e00\uff1a'attribute:value'\u3001'attribute::base64value' \u6216 'attribute:<valueFilePath'
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# \u6301\u4e45\u6027\u641c\u7d22\u66f4\u6539\u7c7b\u578b: %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# \u4ee5\u524d\u7684\u6301\u4e45\u6027\u641c\u7d22\u6761\u76ee DN: %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# \u5e10\u6237\u53ef\u7528\u6027\u54cd\u5e94\u63a7\u5236
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   \u5e10\u6237\u53ef\u7528
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   \u8ddd\u5bc6\u7801\u5230\u671f\u7684\u65f6\u95f4: %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   \u5e10\u6237\u4e0d\u53ef\u7528
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   \u5df2\u53d6\u6d88\u6fc0\u6d3b\u5e10\u6237
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   \u5df2\u91cd\u7f6e\u5bc6\u7801
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   \u5bc6\u7801\u5df2\u8fc7\u671f
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   \u8fc7\u6e21\u767b\u5f55\u5269\u4f59\u6b21\u6570: %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   \u5e10\u6237\u5df2\u9501\u5b9a
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   \u8ddd\u89e3\u9664\u5e10\u6237\u9501\u5b9a\u7684\u65f6\u95f4: %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# \u5339\u914d\u6761\u76ee\u603b\u6570: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=\u7b80\u5355\u5206\u9875\u7ed3\u679c\u63a7\u5236\u53ea\u80fd\u4e0e\u5355\u4e00\u641c\u7d22\u8fc7\u6ee4\u5668\u4e00\u8d77\u4f7f\u7528
ERR_TOOL_RESULT_CODE=\u7ed3\u679c\u4ee3\u7801: %d (%s)
ERR_TOOL_MATCHED_DN=\u5339\u914d DN: %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=\u63d0\u4f9b\u7684\u6392\u5e8f\u987a\u5e8f\u65e0\u6548: %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=\u5982\u679c\u63d0\u4f9b\u4e86 --%s \u53c2\u6570\uff0c\u5219\u8fd8\u5fc5\u987b\u63d0\u4f9b --%s \u53c2\u6570
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=\u63d0\u4f9b\u7684\u865a\u62df\u5217\u8868\u89c6\u56fe\u63cf\u8ff0\u7b26\u65e0\u6548\u3002\u5b83\u5fc5\u987b\u662f\u5177\u6709\u4ee5\u4e0b\u683c\u5f0f\u7684\u503c\uff1a'beforeCount:afterCount:offset:contentCount'\uff08\u5176\u4e2d\uff0coffset \u6307\u5b9a\u76ee\u6807\u6761\u76ee\u7d22\u5f15\uff1bcontentCount \u6307\u5b9a\u4f30\u8ba1\u7684\u7ed3\u679c\u603b\u6570\uff0c\u5982\u679c\u672a\u77e5\uff0c\u5219\u4e3a\u96f6\uff09\u6216 'beforeCount:afterCount:assertionValue'\uff08\u5176\u4e2d\uff0c\u6761\u76ee\u5e94\u8be5\u662f\u4e3b\u6392\u5e8f\u503c\u5927\u4e8e\u6216\u7b49\u4e8e\u63d0\u4f9b\u7684 assertionValue \u7684\u7b2c\u4e00\u4e2a\u6761\u76ee\uff09\u3002\u5728\u8fd9\u4e24\u79cd\u683c\u5f0f\u4e2d\uff0cbeforeCount \u662f\u5728\u76ee\u6807\u503c\u4e4b\u524d\u8fd4\u56de\u7684\u6761\u76ee\u6570\uff0cafterCount \u662f\u5728\u76ee\u6807\u503c\u4e4b\u540e\u8fd4\u56de\u7684\u6761\u76ee\u6570
WARN_LDAPSEARCH_SORT_ERROR=# \u670d\u52a1\u5668\u7aef\u6392\u5e8f\u5931\u8d25: %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV \u76ee\u6807\u504f\u79fb: %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV \u5185\u5bb9\u8ba1\u6570: %d
WARN_LDAPSEARCH_VLV_ERROR=# \u865a\u62df\u5217\u8868\u89c6\u56fe\u5904\u7406\u5931\u8d25: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=geteffectiverights \u63a7\u5236\u4e2d\u5305\u542b\u7684\u6388\u6743 ID "%s" \u65e0\u6548\uff0c\u56e0\u4e3a\u5b83\u4e0d\u662f\u4ee5 "dn:" \u5f00\u5934\uff08\u8868\u793a\u7528\u6237 DN\uff09
ERR_LDAPCOMPARE_ERROR_READING_FILE=\u8bfb\u53d6\u6587\u4ef6 '%s' \u65f6\u51fa\u73b0\u9519\u8bef\u3002\u68c0\u67e5\u8be5\u6587\u4ef6\u662f\u5426\u5b58\u5728\uff0c\u4ee5\u53ca\u60a8\u662f\u5426\u6709\u6743\u8bfb\u53d6\u8be5\u6587\u4ef6\u3002\u8be6\u7ec6\u4fe1\u606f: %s
ERR_LDAPCOMPARE_FILENAME_AND_DNS=\u5df2\u63d0\u4f9b\u7528\u4e8e\u6bd4\u8f83\u64cd\u4f5c\u7684\u6761\u76ee DN \u548c\u6587\u4ef6\u540d\u3002\u8fd9\u4e9b\u53c2\u6570\u4e0d\u517c\u5bb9
opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools_zh_TW.properties
@@ -13,7 +13,96 @@
# Copyright 2009 Sun Microsystems, Inc.
# Portions Copyright 2016 ForgeRock AS.
#
# MakeLDIF tool
#
INFO_MAKELDIF_DESCRIPTION_WRAP_COLUMN=\u8981\u5c0d\u9577\u53e5\u63db\u884c\u7684\u6b04 (0 \u8868\u793a\u4e0d\u63db\u884c)
INFO_LDAPCOMPARE_DESCRIPTION_FILENAME=\u542b\u6709\u8981\u6bd4\u8f03\u4e4b\u9805\u76ee DN \u7684\u6a94\u6848
INFO_LDIFSEARCH_DESCRIPTION_BASEDN=\u641c\u5c0b\u57fa\u5e95 DN
INFO_SEARCH_DESCRIPTION_BASEDN=\u641c\u5c0b\u57fa\u5e95 DN
INFO_SEARCH_DESCRIPTION_SIZE_LIMIT=\u641c\u5c0b\u6240\u50b3\u56de\u7684\u9805\u76ee\u6578\u4e0a\u9650
INFO_SEARCH_DESCRIPTION_TIME_LIMIT=\u57f7\u884c\u641c\u5c0b\u7684\u6642\u9593\u9577\u5ea6\u4e0a\u9650 (\u79d2)
INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY=\u89e3\u9664\u5225\u540d\u53c3\u7167\u7b56\u7565 (\u300c\u6c38\u9060\u4e0d\u300d\u3001\u300c\u81ea\u52d5\u300d\u3001\u300c\u641c\u5c0b\u300d\u3001\u300c\u5c0b\u627e\u300d)
INFO_DESCRIPTION_TYPES_ONLY=\u53ea\u64f7\u53d6\u5c6c\u6027\u540d\u7a31\uff0c\u4f46\u4e0d\u6703\u64f7\u53d6\u5176\u503c
INFO_DESCRIPTION_ASSERTION_FILTER=\u900f\u904e\u6240\u63d0\u4f9b\u7684\u7be9\u9078\u5668\u4f7f\u7528 LDAP \u6307\u5b9a\u63a7\u5236
INFO_DESCRIPTION_PREREAD_ATTRS=\u4f7f\u7528 LDAP ReadEntry \u8b80\u53d6\u524d\u63a7\u5236
INFO_DESCRIPTION_POSTREAD_ATTRS=\u4f7f\u7528 LDAP ReadEntry \u8b80\u53d6\u5f8c\u63a7\u5236
INFO_DESCRIPTION_PROXY_AUTHZID=\u900f\u904e\u6307\u5b9a\u7684\u6388\u6b0a ID \u4f7f\u7528\u4ee3\u7406\u6388\u6b0a\u63a7\u5236
INFO_DESCRIPTION_PSEARCH_INFO=\u4f7f\u7528\u6301\u7e8c\u641c\u5c0b\u63a7\u5236
INFO_SEARCH_DESCRIPTION_FILENAME=\u542b\u6709\u641c\u5c0b\u7be9\u9078\u5668\u5b57\u4e32\u6e05\u55ae\u7684\u6a94\u6848
INFO_DESCRIPTION_MATCHED_VALUES_FILTER=\u900f\u904e\u6240\u63d0\u4f9b\u7684\u7be9\u9078\u5668\u4f7f\u7528 LDAP \u76f8\u7b26\u503c\u63a7\u5236
INFO_LDIFSEARCH_DESCRIPTION_OUTPUT_FILENAME=\u61c9\u5beb\u5165\u76f8\u7b26\u9805\u76ee\u4e4b\u8f38\u51fa\u6a94\u6848\u7684\u8def\u5f91\u3002\u82e5\u672a\u63d0\u4f9b\u6b64\u9805\u76ee\uff0c\u8cc7\u6599\u5c07\u6703\u5beb\u5165\u81f3\u6a19\u6e96\u8f38\u51fa
INFO_LDIFDIFF_DESCRIPTION_OUTPUT_FILENAME=\u61c9\u5beb\u5165\u8f38\u51fa\u7684\u6a94\u6848
INFO_MAKELDIF_DESCRIPTION_LDIF=\u8981\u5beb\u5165\u4e4b LDIF \u6a94\u6848\u7684\u8def\u5f91
INFO_MAKELDIF_DESCRIPTION_SEED=\u7528\u4ee5\u521d\u59cb\u5316\u4e82\u6578\u7522\u751f\u5668\u7684\u7a2e\u5b50
INFO_MAKELDIF_DESCRIPTION_RESOURCE_PATH=\u5728\u76ee\u524d\u7684\u5de5\u4f5c\u76ee\u9304\u6216\u7bc4\u672c\u76ee\u9304\u8def\u5f91\u4e2d\uff0c\u627e\u4e0d\u5230\u5c0b\u627e MakeLDIF \u8cc7\u6e90 (\u5982\u8cc7\u6599\u6a94) \u7684\u8def\u5f91
INFO_LDIFMODIFY_DESCRIPTION_OUTPUT_FILENAME=\u61c9\u5beb\u5165\u66f4\u65b0\u8cc7\u6599\u7684\u6a94\u6848
INFO_LDAPPWMOD_DESCRIPTION_AUTHZID=\u61c9\u8b8a\u66f4\u5bc6\u78bc\u4e4b\u4f7f\u7528\u8005\u9805\u76ee\u7684\u6388\u6b0a ID
INFO_LDAPPWMOD_DESCRIPTION_NEWPW=\u8981\u70ba\u76ee\u6a19\u4f7f\u7528\u8005\u63d0\u4f9b\u7684\u65b0\u5bc6\u78bc
INFO_LDAPPWMOD_DESCRIPTION_NEWPWFILE=\u6a94\u6848\u7684\u8def\u5f91\uff0c\u8a72\u6a94\u6848\u4e2d\u5305\u542b\u8981\u70ba\u76ee\u6a19\u4f7f\u7528\u8005\u63d0\u4f9b\u7684\u65b0\u5bc6\u78bc
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPW=\u76ee\u6a19\u4f7f\u7528\u8005\u76ee\u524d\u7684\u5bc6\u78bc
INFO_LDAPPWMOD_DESCRIPTION_CURRENTPWFILE=\u6a94\u6848\u7684\u8def\u5f91\uff0c\u8a72\u6a94\u6848\u4e2d\u5305\u542b\u76ee\u6a19\u4f7f\u7528\u8005\u76ee\u524d\u7684\u5bc6\u78bc
INFO_DESCRIPTION_COUNT_ENTRIES=\u8a08\u7b97\u4f3a\u670d\u5668\u6240\u50b3\u56de\u7684\u9805\u76ee\u6578
INFO_DESCRIPTION_SIMPLE_PAGE_SIZE=\u900f\u904e\u6307\u5b9a\u7684\u9801\u9762\u5927\u5c0f\u4f7f\u7528\u7c21\u6613\u5206\u9801\u7d50\u679c\u63a7\u5236
INFO_LDAPMODIFY_DESCRIPTION_FILENAME=\u542b\u6709\u8981\u5957\u7528\u4e4b\u8b8a\u66f4\u7684 LDIF \u6a94\u6848
INFO_DESCRIPTION_SORT_ORDER=\u4f7f\u7528\u63d0\u4f9b\u7684\u6392\u5e8f\u9806\u5e8f\u9032\u884c\u7d50\u679c\u7684\u6392\u5e8f
INFO_DESCRIPTION_VLV=\u4f7f\u7528\u865b\u64ec\u6e05\u55ae\u6aa2\u8996\u63a7\u5236\u4f86\u64f7\u53d6\u6307\u5b9a\u7684\u7d50\u679c\u9801\u9762
INFO_DESCRIPTION_EFFECTIVERIGHTS_USER=\u900f\u904e\u6240\u63d0\u4f9b\u7684 authzid \u4f7f\u7528 geteffectiverights \u63a7\u5236
INFO_DESCRIPTION_EFFECTIVERIGHTS_ATTR=\u6307\u5b9a geteffectiverights \u63a7\u5236\u7684\u7279\u5b9a\u5c6c\u6027\u6e05\u55ae
ERR_CANNOT_INITIALIZE_ARGS=\u5617\u8a66\u521d\u59cb\u5316\u6307\u4ee4\u884c\u5f15\u6578\u6642\uff0c\u767c\u751f\u672a\u9810\u671f\u7684\u932f\u8aa4: %s
ERR_ERROR_PARSING_ARGS=\u5256\u6790\u6307\u4ee4\u884c\u5f15\u6578\u6642\u767c\u751f\u932f\u8aa4: %s
INFO_PROCESSING_OPERATION=\u6b63\u5728\u8655\u7406 %2$s \u7684 %1$s \u8acb\u6c42
INFO_OPERATION_FAILED=%s \u4f5c\u696d\u5df2\u5931\u6557
INFO_OPERATION_SUCCESSFUL=%s \u4f5c\u696d (\u91dd\u5c0d DN %s) \u6210\u529f
INFO_PROCESSING_COMPARE_OPERATION=\u6bd4\u8f03\u9805\u76ee %3$s \u4e2d\u7684\u985e\u578b %1$s \u8207\u503c %2$s
INFO_COMPARE_OPERATION_RESULT_FALSE=\u6bd4\u8f03\u4f5c\u696d\u5c0d\u9805\u76ee %s \u50b3\u56de false
INFO_COMPARE_OPERATION_RESULT_TRUE=\u6bd4\u8f03\u4f5c\u696d\u5c0d\u9805\u76ee %s \u50b3\u56de true
ERR_SEARCH_NO_FILTERS=\u672a\u6307\u5b9a\u641c\u5c0b\u8acb\u6c42\u7684\u7be9\u9078\u5668
INFO_LDAPMODIFY_PREREAD_ENTRY=\u4f5c\u696d\u524d\u7684\u76ee\u6a19\u9805\u76ee:
INFO_LDAPMODIFY_POSTREAD_ENTRY=\u4f5c\u696d\u5f8c\u7684\u76ee\u6a19\u9805\u76ee:
ERR_PSEARCH_MISSING_DESCRIPTOR=\u4f7f\u7528\u6301\u7e8c\u641c\u5c0b\u63a7\u5236\u7684\u8acb\u6c42\u4e0d\u5305\u542b\u63cf\u8ff0\u5143\uff0c\u4ee5\u6307\u51fa\u8981\u7528\u65bc\u8a72\u63a7\u5236\u7684\u9078\u9805
ERR_PSEARCH_DOESNT_START_WITH_PS=\u6301\u7e8c\u641c\u5c0b\u63cf\u8ff0\u5143 %s \u4e26\u975e\u4ee5\u5fc5\u8981\u7684\u300cps\u300d\u5b57\u4e32\u958b\u982d
ERR_PSEARCH_INVALID_CHANGE_TYPE=\u63d0\u4f9b\u7684\u8b8a\u66f4\u985e\u578b\u503c %s \u7121\u6548\u3002\u53ef\u8fa8\u8b58\u7684\u8b8a\u66f4\u985e\u578b\u5305\u62ec add\u3001delete\u3001modify\u3001modifydn \u8207 any
ERR_PSEARCH_INVALID_CHANGESONLY=\u63d0\u4f9b\u7684 changesOnly \u503c %s \u7121\u6548\u3002\u5141\u8a31\u7684\u503c\u70ba 1 \u6216 0\uff0c\u524d\u8005\u53ea\u6703\u50b3\u56de\u641c\u5c0b\u958b\u59cb\u5f8c\u6709\u6240\u8b8a\u66f4\u7684\u76f8\u7b26\u9805\u76ee\uff0c\u5f8c\u8005\u5247\u9084\u5305\u62ec\u7b26\u5408\u641c\u5c0b\u689d\u4ef6\u7684\u73fe\u6709\u9805\u76ee
ERR_PSEARCH_INVALID_RETURN_ECS=\u63d0\u4f9b\u7684 returnECs \u503c %s \u7121\u6548\u3002\u5141\u8a31\u7684\u503c\u70ba 1 \u6216 0\uff0c\u524d\u8005\u6703\u8acb\u6c42\u5728\u66f4\u65b0\u7684\u9805\u76ee\u4e2d\u7d0d\u5165\u9805\u76ee\u8b8a\u66f4\u901a\u77e5\u63a7\u5236\uff0c\u5f8c\u8005\u5247\u6703\u5f9e\u76f8\u7b26\u9805\u76ee\u4e2d\u6392\u9664\u8a72\u63a7\u5236
ERR_LDAP_MATCHEDVALUES_INVALID_FILTER=\u63d0\u4f9b\u7684\u76f8\u7b26\u503c\u7be9\u9078\u5668\u7121\u6548: %s
ERR_LDIF_FILE_CANNOT_OPEN_FOR_READ=\u5617\u8a66\u958b\u555f LDIF \u6a94\u6848 %s \u9032\u884c\u8b80\u53d6\u6642\u767c\u751f\u932f\u8aa4: %s
ERR_LDIF_FILE_READ_ERROR=\u5617\u8a66\u8b80\u53d6 LDIF \u6a94\u6848 %s \u7684\u5167\u5bb9\u6642\u767c\u751f\u932f\u8aa4: %s
ERR_MAKELDIF_UNABLE_TO_CREATE_LDIF=\u5617\u8a66\u958b\u555f LDIF \u6a94\u6848 %s \u9032\u884c\u5beb\u5165\u6642\u767c\u751f\u932f\u8aa4: %s
ERR_MAKELDIF_ERROR_WRITING_LDIF=\u5c07\u8cc7\u6599\u5beb\u5165\u81f3 LDIF \u6a94\u6848 %s \u6642\u767c\u751f\u932f\u8aa4: %s
INFO_MAKELDIF_PROCESSED_N_ENTRIES=\u5df2\u8655\u7406 %d \u500b\u9805\u76ee
INFO_MAKELDIF_PROCESSING_COMPLETE=LDIF \u8655\u7406\u5b8c\u6210\u3002\u5df2\u5beb\u5165 %d \u500b\u9805\u76ee
ERR_LDAPPWMOD_FAILED=LDAP \u5bc6\u78bc\u4fee\u6539\u4f5c\u696d\u5931\u6557\uff0c\u7d50\u679c\u78bc\u70ba %d
ERR_LDAPPWMOD_FAILURE_ERROR_MESSAGE=\u932f\u8aa4\u8a0a\u606f: %s
ERR_LDAPPWMOD_FAILURE_MATCHED_DN=\u76f8\u7b26 DN: %s
INFO_LDAPPWMOD_SUCCESSFUL=LDAP \u5bc6\u78bc\u4fee\u6539\u4f5c\u696d\u6210\u529f
INFO_LDAPPWMOD_ADDITIONAL_INFO=\u9644\u52a0\u8cc7\u8a0a: %s
INFO_LDAPPWMOD_GENERATED_PASSWORD=\u7522\u751f\u7684\u5bc6\u78bc: %s
INFO_COMPARE_CANNOT_BASE64_DECODE_ASSERTION_VALUE=\u5df2\u5c07\u6307\u5b9a\u503c\u6307\u5b9a\u70ba base64 \u7de8\u78bc\uff0c\u4f46\u5728\u5617\u8a66\u5c0d\u503c\u9032\u884c\u89e3\u78bc\u6642\u767c\u751f\u932f\u8aa4
INFO_COMPARE_CANNOT_READ_ASSERTION_VALUE_FROM_FILE=\u7121\u6cd5\u5f9e\u6307\u5b9a\u7684\u6a94\u6848\u8b80\u53d6\u6307\u5b9a\u503c: %s
INFO_LDAPCOMPARE_TOOL_DESCRIPTION=\u6b64\u516c\u7528\u7a0b\u5f0f\u53ef\u7528\u65bc\u57f7\u884c\u76ee\u9304\u4f3a\u670d\u5668\u4e2d\u7684 LDAP \u6bd4\u8f03\u4f5c\u696d
INFO_LDAPMODIFY_TOOL_DESCRIPTION=\u6b64\u516c\u7528\u7a0b\u5f0f\u53ef\u7528\u65bc\u57f7\u884c\u76ee\u9304\u4f3a\u670d\u5668\u4e2d\u7684 LDAP \u4fee\u6539\u3001\u589e\u52a0\u3001\u522a\u9664\u8207\u4fee\u6539 DN \u4f5c\u696d
INFO_LDAPPWMOD_TOOL_DESCRIPTION=\u6b64\u516c\u7528\u7a0b\u5f0f\u53ef\u7528\u65bc\u57f7\u884c\u76ee\u9304\u4f3a\u670d\u5668\u4e2d\u7684 LDAP \u5bc6\u78bc\u4fee\u6539\u4f5c\u696d
INFO_LDAPSEARCH_TOOL_DESCRIPTION=\u6b64\u516c\u7528\u7a0b\u5f0f\u53ef\u7528\u65bc\u57f7\u884c\u76ee\u9304\u4f3a\u670d\u5668\u4e2d\u7684 LDAP \u641c\u5c0b\u4f5c\u696d
ERR_LDAPCOMPARE_NO_ATTR=\u672a\u63d0\u4f9b\u4efb\u4f55\u5c6c\u6027\u4f5c\u70ba\u6bd4\u8f03\u7684\u76ee\u6a19
ERR_LDAPCOMPARE_INVALID_ATTR_STRING=\u7121\u6548\u7684\u5c6c\u6027\u5b57\u4e32\u300c%s\u300d\u3002\u5c6c\u6027\u5b57\u4e32\u5fc5\u9808\u70ba\u4e0b\u5217\u5176\u4e2d\u4e00\u7a2e\u683c\u5f0f\uff1a\u300cattribute:value\u300d\u3001\u300cattribute::base64value\u300d\u6216\u300cattribute:<valueFilePath\u300d
INFO_LDAPSEARCH_PSEARCH_CHANGE_TYPE=# \u6301\u7e8c\u641c\u5c0b\u8b8a\u66f4\u985e\u578b: %s
INFO_LDAPSEARCH_PSEARCH_PREVIOUS_DN=# \u6301\u7e8c\u641c\u5c0b\u5148\u524d\u9805\u76ee DN: %s
INFO_LDAPSEARCH_ACCTUSABLE_HEADER=# \u5e33\u865f\u53ef\u7528\u6027\u56de\u61c9\u63a7\u5236
INFO_LDAPSEARCH_ACCTUSABLE_IS_USABLE=#   \u5e33\u865f\u662f\u53ef\u7528\u7684
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_EXPIRATION=#   \u5bc6\u78bc\u5230\u671f\u524d\u7684\u6642\u9593: %s
INFO_LDAPSEARCH_ACCTUSABLE_NOT_USABLE=#   \u5e33\u865f\u7121\u6cd5\u4f7f\u7528
INFO_LDAPSEARCH_ACCTUSABLE_ACCT_INACTIVE=#   \u5e33\u865f\u5df2\u88ab\u95dc\u9589
INFO_LDAPSEARCH_ACCTUSABLE_PW_RESET=#   \u5bc6\u78bc\u5df2\u91cd\u8a2d
INFO_LDAPSEARCH_ACCTUSABLE_PW_EXPIRED=#   \u5bc6\u78bc\u5df2\u904e\u671f
INFO_LDAPSEARCH_ACCTUSABLE_REMAINING_GRACE=#   \u5269\u9918\u5bec\u9650\u767b\u5165\u6b21\u6578: %d
INFO_LDAPSEARCH_ACCTUSABLE_LOCKED=#   \u5e33\u865f\u5df2\u9396\u5b9a
INFO_LDAPSEARCH_ACCTUSABLE_TIME_UNTIL_UNLOCK=#   \u5e33\u865f\u89e3\u9664\u9396\u5b9a\u524d\u7684\u6642\u9593: %s
INFO_LDAPSEARCH_MATCHING_ENTRY_COUNT=# \u76f8\u7b26\u9805\u76ee\u7684\u7e3d\u6578: %d
ERR_PAGED_RESULTS_REQUIRES_SINGLE_FILTER=\u7c21\u6613\u5206\u9801\u7d50\u679c\u63a7\u5236\u53ea\u80fd\u8207\u55ae\u4e00\u641c\u5c0b\u7be9\u9078\u5668\u642d\u914d\u4f7f\u7528
ERR_TOOL_RESULT_CODE=\u7d50\u679c\u78bc: %d (%s)
ERR_TOOL_MATCHED_DN=\u76f8\u7b26 DN: %s
ERR_LDAP_SORTCONTROL_INVALID_ORDER=\u63d0\u4f9b\u7684\u6392\u5e8f\u9806\u5e8f\u7121\u6548: %s
ERR_LDAPSEARCH_VLV_REQUIRES_SORT=\u82e5\u63d0\u4f9b\u4e86 --%s \u5f15\u6578\uff0c\u5247\u5fc5\u9808\u540c\u6642\u6307\u5b9a --%s \u5f15\u6578
ERR_LDAPSEARCH_VLV_INVALID_DESCRIPTOR=\u63d0\u4f9b\u7684\u865b\u64ec\u6e05\u55ae\u6aa2\u8996\u63cf\u8ff0\u5143\u7121\u6548\u3002\u6b64\u63cf\u8ff0\u5143\u7684\u503c\u5fc5\u9808\u70ba\u300cbeforeCount:afterCount:offset:contentCount\u300d\u5f62\u5f0f (\u5176\u4e2d\uff0coffset \u6703\u6307\u5b9a\u76ee\u6a19\u9805\u76ee\u7684\u7d22\u5f15\uff0ccontentCount \u6703\u6307\u5b9a\u4f30\u8a08\u7684\u7d50\u679c\u7e3d\u6578\uff0c\u4f46\u82e5\u672a\u77e5\u5247\u70ba\u96f6)\uff0c\u6216\u70ba\u300cbeforeCount:afterCount:assertionValue\u300d\u5f62\u5f0f (\u5176\u4e2d\uff0c\u8a72\u9805\u76ee\u61c9\u662f\u7b2c\u4e00\u500b\u4e3b\u8981\u6392\u5e8f\u503c\u5927\u65bc\u6216\u7b49\u65bc\u6240\u63d0\u4f9b assertionValue \u7684\u9805\u76ee)\u7121\u8ad6\u662f\u4f55\u7a2e\u60c5\u6cc1\uff0cbeforeCount \u90fd\u662f\u5728\u76ee\u6a19\u503c\u4e4b\u524d\u50b3\u56de\u7684\u9805\u76ee\u6578\uff0c\u800c afterCount \u5247\u662f\u5728\u76ee\u6a19\u503c\u4e4b\u5f8c\u50b3\u56de\u7684\u9805\u76ee\u6578
WARN_LDAPSEARCH_SORT_ERROR=# \u4f3a\u670d\u5668\u7aef\u6392\u5e8f\u5931\u6557: %s
INFO_LDAPSEARCH_VLV_TARGET_OFFSET=# VLV \u76ee\u6a19\u504f\u79fb: %d
INFO_LDAPSEARCH_VLV_CONTENT_COUNT=# VLV \u5167\u5bb9\u8a08\u6578: %d
WARN_LDAPSEARCH_VLV_ERROR=# \u865b\u64ec\u6e05\u55ae\u6aa2\u8996\u8655\u7406\u5931\u6557: %s
ERR_EFFECTIVERIGHTS_INVALID_AUTHZID=geteffectiverights \u63a7\u5236\u5167\u542b\u7684\u6388\u6b0a ID\u300c%s\u300d\u7121\u6548\uff0c\u56e0\u70ba\u5b83\u4e26\u975e\u4ee5\u300cdn:\u300d\u958b\u982d\u4ee5\u8868\u793a\u4f7f\u7528\u8005 DN
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/LDAPCompareITCase.java
@@ -85,9 +85,7 @@
        try (PrintStream outStream = new PrintStream(out.asOutputStream());
             PrintStream errStream = new PrintStream(err.asOutputStream())) {
            LDAPCompare ldapCompare = new LDAPCompare(outStream, errStream);
            ldapCompare.run(arguments);
            LDAPCompare.run(outStream, errStream, arguments);
            checkOuputStreams(out, err, expectedOut, expectedErr);
        } catch (final LDAPToolException ae) {
            checkOuputStreams(out, err, expectedOut, expectedErr);
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/LDAPSearchITCase.java
@@ -79,8 +79,7 @@
        try (PrintStream outStream = new PrintStream(out.asOutputStream());
             PrintStream errStream = new PrintStream(err.asOutputStream())) {
            LDAPSearch ldapSearch = new LDAPSearch(outStream, errStream);
            ldapSearch.run(arguments);
            LDAPSearch.run(outStream, errStream, arguments);
            checkOuputStreams(out, err, expectedOut, expectedErr);
        } catch (final LDAPToolException e) {
            checkOuputStreams(out, err, expectedOut, expectedErr);
opendj-ldap-toolkit/src/test/java/com/forgerock/opendj/ldap/tools/MakeLDIFITCase.java
@@ -127,9 +127,11 @@
    @Test
    public void testMakeLDIFSupportsLineFolding() throws Exception {
        final Path tempOutputFile = Paths.get(TEST_RESOURCE_PATH, TEMP_OUTPUT_FILE);
        run(args("-o", tempOutputFile.toString(), VALID_TEMPLATE_FILE_PATH),
        run(args("-o", tempOutputFile.toString(),
                 "-t", "80",
                 VALID_TEMPLATE_FILE_PATH),
                SUCCESS, INFO_MAKELDIF_PROCESSING_COMPLETE.get(2));
        assertFilesAreEquals(TEMP_OUTPUT_FILE, "expected_output.ldif");
        assertFilesAreEquals(TEMP_OUTPUT_FILE, "expected_output_80_column.ldif");
        Files.delete(tempOutputFile);
    }
@@ -137,9 +139,9 @@
    @Test
    public void testMakeLDIFSupportsLineFoldingAndLineWrapping() throws Exception {
        final Path tempOutputFile = Paths.get(TEST_RESOURCE_PATH, TEMP_OUTPUT_FILE);
        run(args("-o", tempOutputFile.toString(), "-w", "80", VALID_TEMPLATE_FILE_PATH),
        run(args("-o", tempOutputFile.toString(), "-t", "0", VALID_TEMPLATE_FILE_PATH),
                SUCCESS, INFO_MAKELDIF_PROCESSING_COMPLETE.get(2));
        assertFilesAreEquals(TEMP_OUTPUT_FILE, "expected_output_80_column.ldif");
        assertFilesAreEquals(TEMP_OUTPUT_FILE, "expected_output.ldif");
        Files.delete(tempOutputFile);
    }
@@ -150,8 +152,7 @@
    private void run(final String[] arguments, final boolean expectsSuccess, final LocalizableMessage expectedOutput)
            throws Exception {
        final MakeLDIF makeLDIF = new MakeLDIF(outStream, errStream);
        int retCode = makeLDIF.run(arguments);
        final int retCode = MakeLDIF.run(outStream, errStream, arguments);
        checkOuputStreams(out, err, expectedOutput, "");
        if (expectsSuccess) {
            assertThat(retCode).isEqualTo(0);
opendj-server-legacy/src/main/java/org/opends/server/tools/InstallDSArgumentParser.java
@@ -388,7 +388,7 @@
                    .buildArgument();
    addDefaultArgument(certNicknameArg);
    connectTimeoutArg = connectTimeOutHiddenArgument();
    connectTimeoutArg = connectTimeOutArgument();
    addArgument(connectTimeoutArg);
    acceptLicense = acceptLicenseArgument();