--- /dev/null
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
--- /dev/null
+What is Passwd?
+===============
+
+:Last update: $Date: 2008/10/09 17:12:03 $
+:Revision: $Revision: 1.5.2.2 $
+:Contact: sork@lists.horde.org
+
+.. contents:: Contents
+.. section-numbering::
+
+Passwd is the Horde password changing application. Right now, Passwd provides
+fairly complete support for changing passwords via Poppassd, LDAP, Unix expect
+scripts, the Unix smbpasswd command for SMB/CIFS passwords, Kolab, ADSI, Pine,
+Serv-U FTP, VMailMgr, vpopmail, and SQL passwords.
+
+This software is OSI Certified Open Source Software. OSI Certified is a
+certification mark of the `Open Source Initiative`_.
+
+.. _`Open Source Initiative`: http://www.opensource.org/
+
+
+Obtaining Passwd
+------------------
+
+Further information on Passwd and the latest version can be obtained at
+
+ http://www.horde.org/passwd/
+
+
+Documentation
+-------------
+
+The following documentation is available in the Passwd distribution:
+
+:README_: This file
+:COPYING_: Copyright and license information
+:`docs/CHANGES`_: Changes by release
+:`docs/CREDITS`_: Project developers
+:`docs/INSTALL`_: Installation instructions and notes
+:`docs/TODO`_: Development TODO list
+
+
+Installation
+------------
+
+Instructions for installing Passwd can be found in the file INSTALL_ in the
+``docs/`` directory of the Passwd distribution.
+
+
+Assistance
+----------
+
+If you encounter problems with Passwd, help is available!
+
+The Horde Frequently Asked Questions List (FAQ), available on the Web at
+
+ http://www.horde.org/faq/
+
+The Horde Project runs a number of mailing lists, for individual applications
+and for issues relating to the project as a whole. Information, archives, and
+subscription information can be found at
+
+ http://www.horde.org/mail/
+
+Lastly, Horde developers, contributors and users also make occasional
+appearances on IRC, on the channel #horde on the freenode Network
+(irc.freenode.net).
+
+
+Licensing
+---------
+
+For licensing and copyright information, please see the file COPYING_ in the
+Passwd distribution.
+
+Thanks,
+
+The Sork team
+
+
+.. _README: ?f=README.html
+.. _COPYING: http://www.horde.org/licenses/gpl.php
+.. _docs/CHANGES: ?f=CHANGES.html
+.. _docs/CREDITS: ?f=CREDITS.html
+.. _INSTALL:
+.. _docs/INSTALL: ?f=INSTALL.html
+.. _docs/TODO: ?f=TODO.html
--- /dev/null
+backends.php
+conf.php
+conf.bak.php
+hooks.php
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+/**
+ * $Horde: passwd/config/backends.php.dist,v 1.41.2.7 2010/02/11 11:15:43 jan Exp $
+ *
+ * This file is where you specify what backends people use to change
+ * their passwords. There are a number of properties that you can set
+ * for each backend:
+ *
+ * name: This is the plaintext, english name that you want displayed
+ * to people if you are using the drop down server list. Also
+ * displayed on the main page (input form).
+ *
+ * password policy: The password policies for this backend. You are responsible
+ * for the sanity checks of these options. Options are:
+ * minLength Minimum length of the password
+ * maxLength Maximum length of the password
+ * maxSpace Maximum number of white space characters
+ *
+ * The following are the types of characters required
+ * in a password. Either specific characters, character
+ * classes, or both can be required. Specific types are:
+ *
+ * minUpper Minimum number of uppercase characters
+ * minLower Minimum number of lowercase characters
+ * minNumeric Minimum number of numeric characters (0-9)
+ * minAlphaNum Minimum number of alphanumeric characters
+ * minAlpha Minimum number of alphabetic characters
+ * minSymbol Minimum number of alphabetic characters
+ *
+ * Alternatively (or in addition to), the minimum number of
+ * character classes can be configured by setting the
+ * following. The valid range is 0 through 4 character
+ * classes may be required for a password. The classes are:
+ * 'upper', 'lower', 'number', and 'symbol'. For example:
+ * A password of 'p@ssw0rd' satisfies three classes ('number',
+ * 'lower', and 'symbol'), while 'passw0rd' only satisfies
+ * two classes ('lower' and 'symbols').
+ *
+ * minClasses Minimum number (0 through 4) of character classes.
+ *
+ * driver: The Passwd driver used to change the password. Valid
+ * Valid values are currently:
+ * ldap Change the password on a ldap server
+ * smbldap Change the password on a ldap server for both
+ * ldap and samba auth
+ * sql Change the password for sql authentication
+ * (exim, pam_mysql, horde)
+ * poppassd Change the password via a poppassd server
+ * smbpasswd Change the password via the smbpasswd command
+ * expect Change the password via an expect script
+ * vmailmgr Change the password via a local vmailmgr daemon
+ * vpopmail Change the password for sql based vpopmail
+ * servuftp Change the password via a servuftp server
+ * pine Change the password in a Pine-encoded file
+ * composite Allows you to chain multiple drivers together
+ *
+ * no_reset: Do not reset the authenticated user's credentials on success.
+ *
+ * params: A params array containing any additional information that the
+ * Passwd driver needs.
+ *
+ * The following is a list of supported encryption/hashing
+ * methods supported by Passwd.
+ *
+ * 1) plain
+ * 2) crypt or crypt-des
+ * 3) crypt-md5
+ * 4) crypt-blowfish
+ * 5) md5-hex
+ * 6) md5-base64
+ * 7) smd5
+ * 8) sha
+ * 9) ssha
+ *
+ * md5 passwords have caused some problems in the past because
+ * there are different definitions of what is a "md5
+ * password". Systems implement them in a different
+ * manner. If you are using OpenLDAP as your backend or
+ * have migrated your passwords from your OS based passwd
+ * file, you will need to use the md5-base64 hashing
+ * method. If you are using a SQL database or used the PHP
+ * md5() method to create your passwords, you will need to
+ * use the md5-hex hashing method.
+ *
+ * preferred: This is only useful if you want to use the same
+ * backend.php file for different machines: if the Hostname
+ * of the Passwd Machine is identical to one of those in
+ * the preferred list, then the corresponding option in the
+ * select box will include SELECTED, i.e. it is selected
+ * per default. Otherwise the first entry in the list is
+ * selected.
+ *
+ * show_encryption: If you are using the sql or the vpopmail backend
+ * you have the choice whether or not to store the
+ * encryption type with the password. If you are
+ * using for example an SQL based PAM you will most
+ * likely not want to store the encryption type as it
+ * would cause PAM to never match the passwords.
+ *
+ */
+
+$backends['hordesql'] = array (
+ 'name' => 'Horde Authentication',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8,
+ 'maxSpace' => 0,
+ 'minUpper' => 1,
+ 'minLower' => 1,
+ 'minNumeric' => 1,
+ 'minSymbol' => 1
+ ),
+ 'driver' => 'sql',
+ 'params' => array_merge($conf['sql'],
+ array('table' => 'horde_users',
+ 'user_col' => 'user_uid',
+ 'pass_col' => 'user_pass',
+ 'show_encryption' => false)),
+);
+
+$backends['poppassd'] = array(
+ 'name' => 'Example Poppassd Server',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'poppassd',
+ 'params' => array(
+ 'host' => 'localhost',
+ 'port' => 106
+ )
+);
+
+$backends['servuftp'] = array(
+ 'name' => 'Example Serv-U FTP Server',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'servuftp',
+ 'params' => array(
+ 'host' => 'localhost',
+ 'port' => 106,
+ 'timeout' => 30
+ )
+);
+
+$backends['expect'] = array(
+ 'name' => 'Example Expect Script',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'expect',
+ 'params' => array(
+ 'program' => '/usr/bin/expect',
+ 'script' => dirname(__FILE__) . '/../scripts/passwd_expect',
+ 'params' => '-telnet -host localhost -output /tmp/passwd.log'
+ )
+);
+
+$backends['sudo_expect'] = array(
+ 'name' => 'Example Expect with Sudo Script',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'procopen',
+ 'params' => array(
+ 'program' => '/usr/bin/expect ' . dirname(__FILE__) . '/../scripts/passwd_expect -sudo'
+ )
+);
+
+$backends['smbpasswd'] = array(
+ 'name' => 'Example Samba Server',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'smbpasswd',
+ 'params' => array(
+ 'program' => '/usr/bin/smbpasswd',
+ 'host' => 'localhost'
+ )
+);
+
+// NOTE: to set the ldap userdn, see horde/config/hooks.php
+$backends['ldap'] = array(
+ 'name' => 'Example LDAP Server',
+ 'preferred' => 'www.example.com',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8
+ ),
+ 'driver' => 'ldap',
+ 'params' => array(
+ 'host' => 'localhost',
+ 'port' => 389,
+ 'basedn' => 'o=example.com',
+ 'uid' => 'uid',
+ // these attributes will enable shadow password policies.
+ // 'shadowlastchange' => 'shadowlastchange',
+ // 'shadowmin' => 'shadowmin',
+ // this will be appended to the username when looking for the userdn.
+ 'realm' => '',
+ 'encryption' => 'crypt',
+ // make sure the host == cn in the server certificate
+ 'tls' => false
+ )
+);
+
+// NOTE: to set the ldap userdn, see horde/config/hooks.php
+$backends['ldapadmin'] = array(
+ 'name' => 'Example LDAP Server with Admin Bindings',
+ 'preferred' => 'www.example.com',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8
+ ),
+ 'driver' => 'ldap',
+ 'params' => array(
+ 'host' => 'localhost',
+ 'port' => 389,
+ 'basedn' => 'o=example.com',
+ 'admindn' => 'cn=admin,o=example.com',
+ 'adminpw' => 'somepassword',
+
+ // LDAP object key attribute
+ 'uid' => 'uid',
+
+ // these attributes will enable shadow password policies.
+ // 'shadowlastchange' => 'shadowlastchange',
+ // 'shadowmin' => 'shadowmin',
+ 'attribute' => 'clearPassword',
+
+ // this will be appended to the username when looking for the userdn.
+ 'realm' => '',
+
+ // Use this filter when searching for the user's DN.
+ 'filter' => '',
+
+ // Hash method to use when storing the password
+ 'encryption' => 'crypt',
+
+ // Only applies to LDAP servers. If set, should be 0 or 1. See the LDAP
+ // documentation about the corresponding parameter REFERRALS.
+ // Windows 2003 Server require to set this parameter to 0
+ //'referrals' => 0,
+
+
+ // Whether to enable TLS for this LDAP connection
+ // Note: make sure the host matches cn in the server certificate
+ 'tls' => false
+ )
+);
+
+// NOTE: to set the ldap userdn, see horde/config/hooks.php
+// NOTE: to make work with samba 2.x schema you must change lm_attribute and
+// nt_attribute
+$backends['smbldap'] = array(
+ 'name' => 'Example Samba/LDAP Server',
+ 'preferred' => 'www.example.com',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8
+ ),
+ 'driver' => 'smbldap',
+ 'params' => array(
+ 'host' => 'localhost',
+ 'port' => 389,
+ 'basedn' => 'o=example.com',
+ 'uid' => 'uid',
+ // This will be appended to the username when looking for the userdn.
+ 'realm' => '',
+ 'encryption' => 'crypt',
+ // Make sure the host == cn in the server certificate.
+ 'tls' => false,
+ // If any of the following attributes are commented out, they
+ // won't be set on the LDAP server.
+ 'lm_attribute' => 'sambaLMPassword',
+ 'nt_attribute' => 'sambaNTPassword',
+ 'pw_set_attribute' => 'sambaPwdLastSet',
+ 'pw_expire_attribute' => 'sambaPwdMustChange',
+ // The number of days until samba passwords expire. If this
+ // is commented out, passwords will never expire.
+ 'pw_expire_time' => 180,
+ )
+);
+
+$backends['sql'] = array (
+ 'name' => 'Exampe SQL Server',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8,
+ 'maxSpace' => 0,
+ 'minUpper' => 1,
+ 'minLower' => 1,
+ 'minNumeric' => 1,
+ 'minSymbol' => 1
+ ),
+ 'driver' => 'sql',
+ 'params' => array(
+ 'phptype' => 'mysql',
+ 'hostspec' => 'localhost',
+ 'username' => 'dbuser',
+ 'password' => 'dbpasswd',
+ 'encryption' => 'md5-hex',
+ 'database' => 'db',
+ 'table' => 'users',
+ 'user_col' => 'user_uid',
+ 'pass_col' => 'user_pass',
+ 'show_encryption' => false
+ // The following two settings allow you to specify custom queries for
+ // lookup and modify functions if special functions need to be
+ // performed. In places where a username or a password needs to be
+ // used, refer to this placeholder reference:
+ // %d -> gets substituted with the domain
+ // %u -> gets substituted with the user
+ // %U -> gets substituted with the user without a domain part
+ // %p -> gets substituted with the plaintext password
+ // %e -> gets substituted with the encrypted password
+ //
+ // 'query_lookup' => 'SELECT user_pass FROM horde_users WHERE user_uid = %u',
+ // 'query_modify' => 'UPDATE horde_users SET user_pass = %e WHERE user_uid = %u',
+ )
+);
+
+$backends['vmailmgr'] = array(
+ 'name' => 'Example VMailMgr Server',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'vmailmgr',
+ 'params' => array(
+ 'vmailinc' => '/your/path/to/the/vmail.inc'
+ )
+);
+
+$backends['vpopmail'] = array (
+ 'name' => 'Example Vpopmail Server',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8,
+ 'maxSpace' => 0,
+ 'minUpper' => 0,
+ 'minLower' => 0,
+ 'minNumeric' => 0
+ ),
+ 'driver' => 'vpopmail',
+ 'params' => array(
+ 'phptype' => 'mysql',
+ 'hostspec' => 'localhost',
+ 'username' => '',
+ 'password' => '',
+ 'encryption' => 'crypt',
+ 'database' => 'vpopmail',
+ 'table' => 'vpopmail',
+ 'name' => 'pw_name',
+ 'domain' => 'pw_domain',
+ 'passwd' => 'pw_passwd',
+ 'clear_passwd' => 'pw_clear_passwd',
+ 'use_clear_passwd' => true,
+ 'show_encryption' => true
+ )
+);
+
+$backends['pine'] = array(
+ 'name' => 'Example Pine Password File',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'pine',
+ 'no_reset' => true,
+ 'params' => array(
+ // FTP server information.
+ 'host' => 'localhost',
+ 'port' => '21',
+ 'path' => '',
+ 'file' => '.pinepw',
+ // Connect using the just-passed-in password?
+ 'use_new_passwd' => false,
+ // Host string to look for in the encrypted file.
+ 'imaphost' => 'localhost'
+ )
+);
+
+$backends['kolab'] = array(
+ 'name' => 'Local Kolab Server',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8
+ ),
+ 'driver' => 'kolab',
+ 'params' => array()
+);
+
+$backends['myscript'] = array(
+ 'name' => 'example.com',
+ 'preferred' => 'localhost',
+ 'password policy' => array(),
+ 'driver' => 'procopen',
+ 'params' => array(
+ 'program' => '/path/to/my/script + myargs'
+ )
+);
+
+// This is an example configuration for the http driver. This allows
+// connecting to an arbitrary URL that contains a password change form.
+// The params 'username','oldPasswd','passwd1', and 'passwd2' params should be
+// set to the name of the respective form input elements on the html form. If
+// there are additional form fields that the form requires, define them in the
+// 'fields' array in the form 'formFieldName' => 'formFieldValue'. The driver
+// attempts to determine the success or failure based on searching the returned
+// html page for the values listed in the 'eval_results' array.
+$backends['http'] = array (
+ 'name' => 'Email password on IMAP server',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8,
+ 'maxSpace' => 0,
+ 'minUpper' => 0,
+ 'minLower' => 1,
+ 'minNumeric' => 1,
+ 'minSymbol' => 0
+ ),
+ 'driver' => 'http',
+ 'params' => array(
+ 'url' => 'http://www.example.com/psoft/servlet/psoft.hsphere.CP',
+ 'username' => 'mbox',
+ 'oldPasswd' => 'old_password',
+ 'passwd1' => 'password',
+ 'passwd2' => 'password2',
+ 'fields' => array(
+ 'action' => 'change_mbox_password',
+ 'ftemplate' => 'design/mail_passw.html'
+ ),
+ 'eval_results' => array(
+ 'success' => 'Password successfully changed',
+ 'badPass' => 'Bad old password',
+ 'badUser' => 'Mailbox not found'
+ )
+ )
+);
+
+$backends['soap'] = array(
+ 'name' => 'Example SOAP Server',
+ 'preferred' => '',
+ 'password policy' => array(),
+ 'driver' => 'soap',
+ 'params' => array(
+ // If this service doesn't have a WSDL, the 'location' and 'uri'
+ // parameters below must be specified instead.
+ 'wsdl' => 'http://www.example.com/service.wsdl',
+ 'method' => 'changePassword',
+ // This is the order of the arguments to the method specified above.
+ 'arguments' => array('username', 'oldpassword', 'newpassword'),
+ // These parameters are directly passed to the SoapClient object, see
+ // http://ww.php.net/manual/en/soapclient.soapclient.php for a
+ // complete list of possible parameters.
+ 'soap_params' => array(
+ 'location' => '',
+ 'uri' => '',
+ ),
+ )
+);
+
+// This is an example configuration for Postfix.admin 2.3.
+// Set the 'password_policy' section as you wish.
+// In most installations you probably only need to change the
+// hostspec and /or password fields.
+$backends['postfixadmin'] = array (
+ 'name' => 'Postfix Admin server',
+ 'preferred' => 'true',
+ 'password policy' => array(
+ 'minLength' => 6,
+ 'maxLength' => 20,
+ 'maxSpace' => 0,
+ 'minUpper' => 1,
+ 'minLower' => 1,
+ 'minNumeric' => 1,
+ 'minSymbol' => 0
+ ),
+ 'driver' => 'sql',
+ 'params' => array(
+ 'phptype' => 'mysql',
+ 'hostspec' => 'localhost',
+ 'username' => 'postfix',
+ 'password' => 'PASSWORD',
+ 'encryption' => 'crypt-md5',
+ 'database' => 'postfix',
+ 'table' => 'mailbox',
+ 'user_col' => 'username',
+ 'pass_col' => 'password',
+ 'show_encryption' => false,
+ // The following two settings allow you to specify custom queries for
+ // lookup and modify functions if special functions need to be
+ // performed. In places where a username or a password needs to be
+ // used, refer to this placeholder reference:
+ // %d -> gets substituted with the domain
+ // %u -> gets substituted with the user
+ // %U -> gets substituted with the user without a domain part
+ // %p -> gets substituted with the plaintext password
+ // %e -> gets substituted with the encrypted password
+ //
+ 'query_lookup' => 'SELECT password FROM mailbox WHERE username = %u and active = 1',
+ 'query_modify' => 'UPDATE mailbox SET password = %e WHERE username = %u'
+ )
+);
+
+// This is an example configuration for chaining multiple drivers to allow for
+// syncing of passwords across many backends using the composite driver as a
+// wrapper.
+//
+// Each of the subdrivers may contain an optional parameter called 'required'
+// that, when set to true, will cause the rest of the drivers be skipped if a
+// particular one fails.
+$backends['composite'] = array(
+ 'name' => 'Example All Services',
+ 'preferred' => '',
+ 'password policy' => array(
+ 'minLength' => 3,
+ 'maxLength' => 8,
+ 'minClasses' => 2,
+ ),
+ 'driver' => 'composite',
+ 'params' => array('drivers' => array(
+ 'sql' => array(
+ 'name' => 'Horde Authentication',
+ 'driver' => 'sql',
+ 'required' => true,
+ 'params' => array(
+ 'phptype' => 'mysql',
+ 'hostspec' => 'localhost',
+ 'username' => 'horde',
+ 'password' => '',
+ 'encryption' => 'md5-hex',
+ 'database' => 'horde',
+ 'table' => 'horde_users',
+ 'user_col' => 'user_uid',
+ 'pass_col' => 'user_pass',
+ 'show_encryption' => false
+ // 'query_lookup' => '',
+ // 'query_modify' => '',
+ ),
+ ),
+ 'smbpasswd' => array(
+ 'name' => 'Samba Server',
+ 'driver' => 'smbpasswd',
+ 'params' => array(
+ 'program' => '/usr/bin/smbpasswd',
+ 'host' => 'localhost',
+ ),
+ ),
+ )),
+);
--- /dev/null
+<?xml version="1.0"?>
+<!-- $Horde: passwd/config/conf.xml,v 1.12.2.1 2008/10/09 17:12:03 jan Exp $ -->
+<configuration>
+ <configsection name="menu" desc="Menu settings">
+ <configheader>Menu settings</configheader>
+ <configmultienum name="apps" desc="Select any applications that should be
+ linked in Passwd's menu">
+ <values>
+ <configspecial name="list-horde-apps" />
+ </values>
+ </configmultienum>
+ </configsection>
+
+ <configsection name="backend">
+ <configheader>Backend Settings</configheader>
+ <configenum name="backend_list" desc="Should we display a list of backends
+ (defined in config/backends.php) for users to choose from? The options are
+ 'shown', 'hidden'. If the backend list is hidden then you can use the
+ 'preferred' mechanism to auto-select from it based on an HTTP virtualhost or
+ another piece of data. If it is shown, the user will be able to pick from
+ any of the options.">hidden
+ <values>
+ <value>shown</value>
+ <value>hidden</value>
+ </values>
+ </configenum>
+ </configsection>
+
+ <configsection name="user">
+ <configboolean name="change" desc="Should we allow the user to specify the
+ username?">true</configboolean>
+ <configlist name="refused" required="false" desc="Define usernames for which
+ we will refuse to change passwords.">
+ root,bin,daemon,adm,lp,shutdown,halt,uucp,ftp,anonymous,nobody,httpd,operator,guest,diginext,bind,cyrus,courier,games,kmem,mailnull,man,mysql,news,postfix,sshd,tty,www
+ </configlist>
+ </configsection>
+
+ <configsection name="password">
+ <configboolean name="strengthtests" desc="Should strength tests be done on
+ the new password">false</configboolean>
+ </configsection>
+
+ <configsection name="hooks">
+ <configboolean name="full_name" desc="If this is checked, the full user name
+ is used to change the password, the user name without the domain part
+ otherwise. This setting is overridden by enabling the hook
+ below.">true</configboolean>
+ <configboolean name="default_username" desc="Use a custom hook for
+ determining the default username">false</configboolean>
+ <configboolean name="username" desc="Use a custom hook to translate the
+ username for the backend">false</configboolean>
+ <configboolean name="userdn" desc="If we are using the LDAP driver, use a
+ custom hook to provide a userdn for binding. By default the LDAP driver
+ finds out the correct userdn for binding by searching for the uid with the
+ configured base or binds with admindn if set.">false</configboolean>
+ </configsection>
+</configuration>
--- /dev/null
+<?php
+/**
+ * Passwd Hooks configuration file.
+ *
+ * THE HOOKS PROVIDED IN THIS FILE ARE EXAMPLES ONLY. DO NOT ENABLE THEM
+ * BLINDLY IF YOU DO NOT KNOW WHAT YOU ARE DOING. YOU HAVE TO CUSTOMIZE THEM
+ * TO MATCH YOUR SPECIFIC NEEDS AND SYSTEM ENVIRONMENT.
+ *
+ * For more information please see the horde/config/hooks.php.dist file.
+ *
+ * $Horde: passwd/config/hooks.php.dist,v 1.1.2.2 2009/06/12 08:43:47 jan Exp $
+ */
+
+// Here is an example _passwd_hook_username function to translate what the
+// user enters, in the username box, into what the backend expects. If we want
+// to add @example.com to the end of the username then enable the hook and use
+// this function.
+
+// if (!function_exists('_passwd_hook_username')) {
+// function _passwd_hook_username($userid, &$driver)
+// {
+// return $userid . '@example.com';
+// }
+// }
+
+// Here is another, more involed example of _passwd_hook_username. This one
+// demonstrates how to return a different $userid based on the driver type. It
+// also demonstrates how to do this using the composite driver.
+
+//if (!function_exists('_passwd_hook_username')) {
+// function _passwd_hook_username($userid, &$driver)
+// {
+// if (is_a($driver, 'Passwd_Driver_http')) {
+// return $userid . '@example.com';
+// } elseif (is_a($driver, 'Passwd_Driver_composite')) {
+// foreach ($driver->_params['drivers'] as $backend => $config) {
+// if ($backend == 'http') {
+// $driver->_params['drivers']['http']['params']['be_username'] = $userid . '@example.com';
+// break;
+// }
+// }
+ // Return the userid unmodified by default.
+// return $userid;
+// } else {
+// return $userid;
+// }
+// }
+//}
+
+// Here is an example _passwd_hook_default_username function to set the
+// username the passwd module sees when resetting passwords based on userid
+// and realm. The default is to take a username of user@domain.tld and change
+// it to user. If we want to leave it untouched, enable the hook and use this
+// function.
+
+// if (!function_exists('_passwd_hook_default_username')) {
+// function _passwd_hook_default_username($userid)
+// {
+// return $userid;
+// }
+// }
+
+// Here is an example _passwd_hook_userdn function that you can use to provide
+// your ldap server with a userdn so that you do not have to perform anonymous
+// binds. The function takes Auth::getAuth() as a parameter
+
+// if (!function_exists('_passwd_hook_userdn')) {
+// function _passwd_hook_userdn($auth)
+// {
+// return 'uid=' . $auth . ',o=example.com';
+// }
+// }
+
+// if (!function_exists('_passwd_password_changed')) {
+// function _passwd_password_changed($user, $oldpassword, $newpassword)
+// {
+// Horde::logMessage(sprintf('User %s has changed his password.', $user), __FILE__, __LINE__, PEAR_LOG_NOTICE);
+// }
+// }
--- /dev/null
+----------
+v3.1.4-cvs
+----------
+
+
+
+
+------
+v3.1.3
+------
+
+[jan] Fix examples using 'minSymbols' instead of 'minSymbol' (Bug #8854).
+[jan] Fix PHP error when changing passwords with LDAP driver (Bug #8686).
+
+
+------
+v3.1.2
+------
+
+[jan] Enable output compression (horde@albasoft.com, Bug #8649).
+[jan] Add Croatian translation (Valentin Vidic <valentin.vidic@carnet.hr>).
+[jan] Add option to configure referrals for LDAP driver (manilal@ejyothi.com,
+ Request #8582).
+[jan] Simplify and fix smbldap driver (Bug #8192).
+
+
+------
+v3.1.1
+------
+
+[cjh] SECURITY: Fix XSS when specifying an invalid backend key
+ (security@davidwharton.us, #8398).
+[jan] Add hook that's called after successfully changing the password.
+[jan] Add SOAP driver.
+[jan] Add example configuration for Postfix Admin (Michael Brennen
+ <michael@fishnet.us>).
+[jan] Fix binding to LDAP server if using the userdn hook.
+
+
+----
+v3.1
+----
+
+[cjh] Fix bad mode for STDERR in the procopen driver
+ (info@opensolutions.net, Bug #8022).
+
+
+--------
+v3.1-RC2
+--------
+
+[cjh] Don't include the old password in LDAP driver error messages
+ (Joffrey van Wageningen <joffrey-horde@coolhaven.info>).
+
+
+--------
+v3.1-RC1
+--------
+
+[cjh] Add missing enforcement of minSymbol password policy
+ (yann@pleiades.fr.eu.org, Bug #7260).
+[cjh] Only update smbldap attributes for Samba users, and update all attributes
+ at once instead of one at a time (marco@csita.unige.it, Request #5977).
+[cjh] Don't set smbldap attributes that are commented out in the config
+ (fabio.pedretti@ing.unibs.it, Request #5937).
+[jan] Move all Passwd-specific hook examples from Horde's config/ directory.
+[cjh] Add support for switching between encryption schemes
+ (ulrich-horde@topfen.net, Request #2865).
+[jan] Add support for sudo to the example expect script (Dennis Voetelink
+ <voetelink@ecn.nl>, Request #5300).
+[mas] Conform to WCAG 1.0 Priority 2/Section 508 accessibility guidelines.
+ (Request #4080)
+[jan] Add new expect driver that uses the expect PECL PHP extension (Duck
+ <duck@obala.net>).
+[mjr] Add new http driver for changing passwords via an existing web form.
+[mjr] Pass reference to driver to the _passwd_hook_username call.
+[jan] Add Turkish translation (METU <horde-tr@metu.edu.tr>).
+
+
+------
+v3.0.1
+------
+
+[jan] Add placeholders for domain and username parts to SQL driver queries
+ (Vilius Sumskas <vilius@lnk.lt>, Request #4985).
+[jan] Improve error checking in poppassd driver (Bug #4505,
+ horde@koornneef.net).
+[jan] Add Slovenian translation (Duck <duck@obala.net>).
+[jan] Compare hashing algorithms in passwords case insensitively
+ (andreas@altroot.de, Bug #2708).
+[jan] Allow password changing for special Kolab users (mzizka@hotmail.com,
+ Request #4128).
+[jan] Add Japanese translation (Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>).
+[ben] Better support for MS-SQL
+[cjh] Add support in the expect driver for rssh, scponly, and other programs
+ that can execute certain commands over ssh without providing a prompt
+ (Request #2887).
+
+
+----
+v3.0
+----
+
+[jan] Add configuration option to switch between using user names with and
+ without realms.
+[jan] Add Slovak translation (Ivan Noris <vix@vazka.sk>).
+
+
+--------
+v3.0-RC1
+--------
+
+[jan] Extend the expect script to allow setups with passwd as the login shell
+ (Request #2550, Lionel Elie Mamane <lmamane@debian.org>).
+[jan] Don't bind to LDAP anonymously if binding with userdn fails (Bug #2502).
+[cjh] Fix updating shadowlastchange attribute in ldap driver (Roel Gloudemans
+ <roel@gloudemans.info>).
+[jan] Extend the smbldap driver from the ldap driver to support all parameters
+ of the ldap driver (Request #2499).
+
+
+---------
+v3.0-BETA
+---------
+
+[cjh] Use Crypt_CHAP to generate smbldap passwords (Bug #1223).
+[stb] Add Kolab driver.
+[cjh] Allow using admin credentials in the LDAP driver (Bug #1409).
+[cjh] Use bind variables in SQL drivers (selsky@columbia.edu, Bug #1718).
+[cjh] Allow the list of refused usernames to be empty (Bug #1544).
+[cjh] If $conf['user']['change'] is false, don't trust form input for
+ the userid.
+[jan] Add Catalan translation (Joan Jorba Calsina <joan.jorba@rusc.net>).
+[cjh] Add ADSI and PSPASSWD windows password drivers (LRM
+ <lrm@ionline.com.br>).
+[jan] Add Persian (Western) translation (Vahid Ghafarpour
+ <vahid@ghafarpour.com>).
+[jan] Add shadowLastChange and shadowMin configuration items to LDAP driver
+ (Roel Gloudemans <roel@gloudemans.info>).
+[cjh] Add proc_open() driver (Samuel Nicolary <sam@nicolary.org>).
+[cjh] Add an SMB LDAP driver (Shane Boulter <sboulter@ariasolutions.com>).
+[cjh] Add SSL support to the LDAP driver (LRM <lrm@ionline.com.br>).
+[max] Add minSymbols and minClasses password policies. See comments in
+ config/backends.php.dist for more information.
+[max] Add optional 'required' parameters to composite driver's subdriver
+ configurations.
+[max] Add optional parameter 'no_reset' to the backend configs which prevents
+ reseting the authenticated user's credentials on password changes.
+[max] Properly reset authenticated user's credentials.
+[cjh] Use password encryption that's now implemented in the Auth:: package.
+[max] Add pine driver which changes a pine-encoded file using FTP.
+[max] Fix password checking when encryption requires a random salt.
+[max] Add composite driver which will replace all the groups stuff.
+[max] Add support for backend groups to allow syncing of multiple backends.
+[max] Add query_lookup and query_modify parameters to the sql driver.
+[ejr] Add tls support for ldap driver.
+[ejr] Fix error reporting in poppassd driver.
+[ejr] Add binddn hook submitted by Amith Varghese <amith@xalan.com>.
+[ejr] make sure oldpassword == horde_login_password before changing horde
+ cached password.
+[ejr] Fix md5 (md5-hex and md5-base64) encryption for ldap/sql (Amith Varghese
+ <amith@xalan.com>).
+[mc] Move templates to horde style directory layout, getName() -> getParam().
+[ejr] Implemented new CVS HEAD themes.
+[ejr] Updated to new CVS HEAD notification system.
+
+
+------
+v2.2.2
+------
+
+[jan] Close XSS when setting the parent frame's page title by javascript (cjh).
+[ejr] Configuration item for showing/changing username in the form.
+[jan] Allow to set the protocol version in the LDAP driver (ben@alkaloid.net).
+[cjh] Add crypt-blowfish and crypt-md5 encryption types. Also add crypt-des
+ for completion which is just an alias for crypt (max).
+[jan] Add Estonian translation (Toomas Aas <toomas.aas@raad.tartu.ee>).
+
+
+------
+v2.2.1
+------
+[jan] Bug #40: Fix smbpasswd driver with non-bash shells (Christopher Huyler
+ <chris@huyler.net>).
+[jan] Add Simplified Chinese translation (Zhang Bo <boozhang@sdb.ac.cn>).
+
+
+----------
+v2.2.1-RC1
+----------
+[jan] Add Indonesian language (Slamin <slamin@unej.ac.id>).
+[jan] Add Galician translation (Rafael Varela Pet <srrafa@usc.es>, Guillermo
+ Mendez <guille@usc.es>).
+[jan] Add Danish translation (Anders Bruun Olsen <anders@bruun-olsen.net>).
+[jan] Add Arabic (Syria) translation (Platinum Development Team
+ <devteam@platinum-sy.net>).
+[jan] Add Hungarian translation (Szabo Gyula <gyufi@sztaki.hu>).
+[jan] Add Romanian translation (Eugen Hoanca <eugenh@urban-grafx.ro>,
+ Marius Dragulescu <mariusd@urban-grafx.ro>).
+[jan] Add Lithuanian translation (Vilius Sumskas <vilius@lnk.lt>).
+[ejr] Fix BC breaks in vpopmail and sql drivers.
+
+
+----
+v2.2
+----
+
+[ejr] Allow bc for php versions that don't have the ctype extension.
+
+
+--------
+v2.2-RC2
+--------
+
+[ejr] Fix missing path for expect binary.
+[ejr] Add missing scripts/ directory and missing expect script.
+[ejr] Fix error reporting in expect driver (j.huinink@wanadoo.nl).
+[ejr] Remove old realm code that was previously missed.
+[ejr] Port servuftp driver to new backends.conf format.
+[ejr] Return actual error message text in poppassd driver (submitted by
+ Leena Heino <Leena.Heino@uta.fi>).
+[ejr] Change is_a(*, 'PEAR_Error') calls to PEAR::isError() calls for php bc.
+
+
+--------
+v2.2-RC1
+--------
+
+[ejr] Add vpopmail driver (Anton Nekhoroshikh <anton@valuehost.ru>).
+[mac] Add vmailmgr driver (Marco Kaiser <bate@php.net>).
+[ejr] Add expect script (Gaudenz Steinlin).
+[ejr] Change ldap code to do self-password changes, add phpdoc.
+[ejr] Update ldap driver (Tjeerd van der Zee).
+[ejr] Reset Horde/IMP cached credentials when changing password.
+[ejr] Add username hooks (mac).
+[ejr] Rewrite driver system, add backends.conf system (mc).
+[jan] Add Italian translation (Fichera Gianrico <gianrico.fichera@itesys.it>).
+[cjh] Close several small XSS vulnerabilities (Mitja Kolsek
+ <mitja.kolsek@acros.si>).
+
+
+----
+v2.1
+----
+
+[ejr] Add servuftp interface.
+[ejr] Add exim sql backend.
+[ejr] Add smbpasswd support.
+[ejr] Move to driver driven system.
+[mc] Add javascript checks for form input.
+[jan] Add Bulgarian translation (Miroslav Pendev <pendev@hotmail.com>).
+
+
+----
+v2.0
+----
+
+[ejr] Added optional checks for password lengths and strength testing.
+[ejr] Remove check for prefs.php in notconfigured.inc.
+[ejr] Change from short-tag <?= to long format <?php echo.
+[ejr] Fix spacing and look of Submit button.
+[ejr] Update contact info in docs/INSTALL for mailing list.
+[ejr] Added Norwegian (nn_NO) translation.
+[ejr] Added Swedish (sv_SE) translation.
--- /dev/null
+=========================
+ Passwd Development Team
+=========================
+
+
+Core Developers
+===============
+
+- Eric Rostetter <eric.rostetter@physics.utexas.edu>
+- Jan Schneider <jan@horde.org>
+
+
+Driver Developers
+=================
+
+- Anton Nekhoroshikh <anton@valuehost.ru>
+- Gaudenz Steinlin <gaudenz@soziologie.ch>
+- Ilya Krel <mail@krel.org>
+- Lucas <screen@brainkrash.com>
+- Luiz R Malheiros (malheiros@gmail.com)
+- Marco Kaiser <bate@php.net>
+- Mattias Webjörn Eriksson <mattias@webjorn.org>
+- Max Kalika <max@horde.org>
+- Mike Cochrane <mike@graftonhall.co.nz>
+- René Lund Jensen <lundeman@tbkol.dk>
+- Samuel Nicolary <sam@nicolary.org>
+- Shane Boulter <sboulter@ariasolutions.com>
+- Stuart Bingë <skbinge@gmail.com>
+- Tjeerd van der Zee <admin@xar.nl>
+
+
+Localization
+============
+
+===================== ======================================================
+Arabian (Syria) Platinum Development Team <devteam@platinum-sy.net>
+Brazilian Portuguese Darci Antonio Tartari <dtartari@portoriogrande.com.br>
+ Fabio de Almeida <fabiodealmeida@gmail.com>
+Bulgarian Miroslav Pendev <miro@cybershade.us>
+Catalan Joan Jorba Calsina <joan.jorba@rusc.net>
+Chinese (Simplified) Wenzhuo Zhang <wenzhuo@zhmail.com>
+ Anna Chen <annachen2008@yahoo.com.cn>
+Chinese (Traditional) David Chang <david@tmv.gov.tw>
+Croatian Valentin Vidic <valentin.vidic@carnet.hr>
+Czech Pavel Chytil <pavel@chytil.tk>
+Dutch Tjeerd van der Zee
+ Resan Sa-Ardnuam <horde@sa-ardnuam.nl>
+Danish Anders Bruun Olsen <anders@bruun-olsen.net>
+ Brian Truelsen <horde+i18n@briantruelsen.dk>
+Estonian Toomas Aas <toomas.aas@mail.ee>
+ Alar Sing <alar.sing@err.ee>
+Finnish Tero Matinlassi <terom@iki.fi>
+ Leena Heino <leena.heino@uta.fi>
+French Daniel Huhardeaux <daniel.huhardeaux@tootai.com>
+ Benoit St-André
+ Pierre Lachance <pl@pierrelachance.net>
+Galician Rafael Varela <rafael.varela@usc.es>
+ Guillermo Mendez <guille@usc.es>
+German Jens A Tkotz <jens.tkotz@f2h9.de>
+ Jan Schneider <jan@horde.org>
+Hungarian Robert Szokovacs
+ Gyula Szabo <gyufi@sztaki.hu>
+Indonesian Slamin <slamin@unej.ac.id>
+Italian Gianrico Fichera <gianrico.fichera@itesys.it>
+ Marko Djukic <marko@oblo.com>
+ Fabio Pedretti <fabio.pedretti@ing.unibs.it>
+Japanese Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>
+Lithuanian Darius Matuliauskas <darius@lnk.lt>
+ Vilius Šumskas <vilius@lnk.lt>
+Norwegian Nynorsk Per-Stian Vatne <psv@orsta.org>
+Persian MetaNET Amirkabir <persian-horde@metanetworking.com>
+Polish Mariusz Zynel <mariusz@solaris-x86.org>
+ Piotr Adamcio <adamcios@o2.pl>
+ Tadeusz Lesiecki <lesiecki@tmtsystem.pl>
+ Piotr Tarnowski <drfugazi@drfugazi.eu.org>
+Portuguese João César Marigonda <joao@webnow.com.br>
+ Manuel Menezes de Sequeira <Manuel.Sequeira>
+Romanian Marius Dragulescu <mariusd@urban-grafx.ro>
+ Eugen Hoanca <eugenh@urban-grafx.ro>
+Russian Illya Belov <belov@iop.irkps.ru>
+Slovak Ivan Noris <vix@vazka.sk>
+Slovenian Duck <duck@obala.net>
+Spanish Manuel Perez Ayala <mayala@unex.es>
+Swedish Mattias Webjörn Eriksson <mattias@webjorn>
+Turkish Middle East Technical University <horde-tr@metu.edu.tr>
+===================== ======================================================
+
+
+Inactive Developers
+===================
+
+- Mathieu Clabaut
+
+
+Special thanks
+==============
+
+- Thanks to John Wedoff, who helped debug a session/login problem.
+- Thanks to Oliver Schultze (OSL) for help with bug fixes, documentation
+ suggestions, and moral support.
+- Thanks to Tero Tapani Matinlassi for pointing out my bad coding when I
+ rushed the realm changes into effect, and even providing the solution!
+- Thanks to Tjeerd van der Zee and Mattias Webjörn Eriksson for all their help
+ and patience coding the LDAP support.
+- Thanks to Amith Varghese <amith@xalan.com> for various contributions
+ including the LDAP binddn hook.
--- /dev/null
+=======================
+ Installing Passwd 3.0
+=======================
+
+:Last update: $Date: 2009/06/10 08:20:39 $
+:Revision: $Revision: 1.31.2.4 $
+:Contact: sork@lists.horde.org
+
+.. contents:: Contents
+.. section-numbering::
+
+This document contains instructions for installing the Passwd Password
+Changing Application.
+
+For information on the capabilities and features of Passwd, see the file
+README_ in the top-level directory of the Passwd distribution.
+
+
+Obtaining Passwd
+==================
+
+Passwd can be obtained from the Horde website and FTP server, at
+
+ http://www.horde.org/passwd/
+
+ ftp://ftp.horde.org/pub/passwd/
+
+Or use the mirror closest to you:
+
+ http://www.horde.org/mirrors.php
+
+Bleeding-edge development versions of Passwd are available via CVS; see the
+file `horde/docs/HACKING`_ in the Horde distribution, or the website
+http://www.horde.org/source/, for information on accessing the Horde CVS
+repository.
+
+
+Prerequisites
+=============
+
+To function properly, Passwd **requires** the following:
+
+1. A working Horde installation.
+
+ Passwd runs within the `Horde Application Framework`_, a set of common
+ tools for Web applications written in PHP. You must install Horde before
+ installing Passwd.
+
+ .. Important:: Passwd 3.0 requires version 3.0+ of the Horde Framework -
+ earlier versions of Horde will **not** work.
+
+ .. _`Horde Application Framework`: http://www.horde.org/horde/
+
+ The Horde Framework can be obtained from the Horde website and FTP server,
+ at
+
+ http://www.horde.org/horde/
+
+ ftp://ftp.horde.org/pub/horde/
+
+ Many of Passwd's prerequisites are also Horde prerequisites.
+
+ .. Important:: Be sure to have completed all of the steps in the
+ `horde/docs/INSTALL`_ file for the Horde Framework before
+ installing Passwd.
+
+2. The following PHP capabilities, depending on the drivers you want use:
+
+ a. Character Type support ``--enable-ctype``
+
+ b. LDAP support ``--with-ldap`` [OPTIONAL]
+
+ LDAP support is required for the kolab, ldap, and smbldap drivers.
+
+ c. Mhash support ``--with-mhash`` [OPTIONAL]
+
+ Mhash support is necessary for the smbldap driver. See `LDAP
+ Implementation Information`_ for details.
+
+ d. Mcrypt support ``--with-mcrypt`` [OPTIONAL]
+
+ Mcrypt support is necessary for the smbldap driver. See `LDAP
+ Implementation Information`_ for details.
+
+ e. SOAP support ``--enable-soap`` [OPTIONAL]
+
+ SOAP support is necessary for the soap driver.
+
+3. The following PEAR modules:
+ (See `horde/docs/INSTALL`_ for instructions on installing PEAR modules)
+
+ a. Crypt_CHAP [OPTIONAL]
+
+ Passwd uses this package to encrypt passwords for the smbldap driver.
+
+The following items might be required, depending on the drivers you want to
+use:
+
+1. A poppassd server installed, running, and working on a system.
+
+2. An LDAP server installed, running, and working for authentication.
+
+3. A working smbpasswd program on the web server. It can access a remote
+ server, but the smbpasswd binary must be installed on the local system.
+
+4. A working SQL authentication system.
+
+5. Expect installed, and access to telnet or ssh to the machine where
+ passwords are stored/set (could be localhost).
+
+6. A SOAP service endpoint.
+
+
+Installing Passwd
+===================
+
+Passwd is written in PHP, and must be installed in a web-accessible directory.
+The precise location of this directory will differ from system to system.
+Conventionally, Passwd is installed directly underneath Horde in the web
+server's document tree.
+
+Since Passwd is written in PHP, there is no compilation necessary; simply
+expand the distribution where you want it to reside and rename the root
+directory of the distribution to whatever you wish to appear in the URL. For
+example, with the Apache web server's default document root of
+``/usr/local/apache/htdocs``, you would type::
+
+ cd /usr/local/apache/htdocs/horde
+ tar zxvf /path/to/passwd-x.y.z.tar.gz
+ mv passwd-x.y.z passwd
+
+and would then find Passwd at the URL::
+
+ http://your-server/horde/passwd/
+
+
+Configuring Passwd
+====================
+
+1. Configuring Horde for Passwd
+
+ a. Register the application
+
+ In ``horde/config/registry.php``, find the ``applications['passwd']``
+ stanza. The default settings here should be okay, but you can change
+ them if desired. If you have changed the location of Passwd relative to
+ Horde, either in the URL, in the filesystem or both, you must update the
+ ``fileroot`` and ``webroot`` settings to their correct values.
+
+2. Configuring Passwd
+
+ To configure Passwd, change to the ``config/`` directory of the installed
+ distribution, and make copies of all of the configuration ``dist`` files
+ without the ``dist`` suffix::
+
+ cd config/
+ for foo in *.dist; do cp $foo `basename $foo .dist`; done
+
+ Or on Windows::
+
+ copy *.dist *.
+
+ Documentation on the format and purpose of those files can be found in each
+ file. You may edit these files if you wish to customize Passwd's
+ appearance and behavior. With one exception (``backends.php``) the
+ defaults will be correct for most sites.
+
+ You must login to Horde as a Horde Administrator to finish the
+ configuration of Passwd. Use the Horde ``Administration`` menu item to get
+ to the administration page, and then click on the ``Configuration`` icon to
+ get the configuration page. Select ``Password`` from the selection list of
+ applications. Fill in or change any configuration values as needed. When
+ done click on ``Generate Password Configuration`` to generate the
+ ``conf.php`` file. If your web server doesn't have write permissions to
+ the Passwd configuration directory or file, it will not be able to write
+ the file. In this case, go back to ``Configuration`` and choose one of the
+ other methods to create the configuration file ``passwd/config/conf.php``.
+
+ Note for international users: Passwd uses GNU gettext to provide local
+ translations of text displayed by applications; the translations are found
+ in the ``po/`` directory. If a translation is not yet available for your
+ locale (and you wish to create one), see the ``horde/po/README`` file, or
+ if you're having trouble using a provided translation, please see the
+ `horde/docs/TRANSLATIONS`_ file for instructions.
+
+3. Testing Passwd
+
+ Once you have configured Passwd, bring up the included test page in your
+ Web browser to ensure that all necessary prerequisites have been met. See
+ the `horde/docs/INSTALL`_ document for further details on Horde test
+ scripts. If you installed Passwd as described above, the URL to the test
+ page would be::
+
+ http://your-server/horde/passwd/test.php
+
+
+Security considerations
+=======================
+
+.. Note:: Some drivers like poppassd always use clear text password
+ transmissions. Others may also use clear text passwords (e.g. the
+ expect script driver using telnet rather than ssh). This can be
+ considered somewhat safe if the server is on the same machine, there
+ are no user interactive logins allowed on that machine, and the
+ connection uses the loopback (localhost) interface. It is up to the
+ administrator to evaluate the security implications of using this
+ module, and to understand the security implications of how their
+ server and this module is configured.
+
+.. Note:: Setting this module to allow guest access might also be considered a
+ security risk. By default, guest access is disabled. It is up to
+ the administrator to evaluate the security implications of using
+ this module with guest access if they choose to do so.
+
+
+Poppassd Server Software
+========================
+
+The following are some links that users have submitted. No warrenty is made
+for the following links or any software obtained from then. These are all
+user submitted links, and have not been tested or verified. Use these links
+are your own risk!
+
+* http://www.ceti.com.pl/~kravietz/prog.html
+* http://www.samera.net/rpm/
+* http://netwinsite.com/poppassd/
+* http://echelon.pl/pubs/poppassd-1.8.1.tar.gz
+
+
+LDAP Implementation Information
+===============================
+
+The module includes support for changing LDAP stored passwords.
+
+LDAP can store passwords in multiple ways, namely:
+
+a. Plain text passwords
+b. SHA encrypted passwords
+c. SSHA encrypted passwords
+d. Crypt encrypted passwords
+e. MD5 encrypted passwords (using base64 encoding - md5-base64)
+f. SMD5 encrypted passwords
+
+The smbldap extension require the php mhash and mcrypt extensions. To
+enable these you must compile php with the ``--with-mhash[=DIR]`` and
+``--with-mcrypt[=DIR]`` parameters. ``DIR`` is the mhash or mcrypt
+install directory.
+
+Crypt cannot handle passwords longer than eight characters (it accepts them
+but truncates them at 8 characters). If you want to use longer passwords, you
+may use SHA.
+
+The user must be able to authenticate to the LDAP directory and change his own
+password now (we no longer do root access to LDAP). This assumes that the
+LDAP administrator has allowed everyone to write their own password, something
+like::
+
+ access to attribute=userPassword
+ by self write
+ by anonymous auth
+ by * none
+
+
+SQL Implementation Information
+==============================
+
+The module includes support for changing passwords stored in a SQL database.
+The SQL driver is similar to the LDAP driver except that it also supports MD5
+encryption using hex encoding (md5-hex). If you created your passwords using
+the PHP md5() function then use md5-hex.
+
+
+Smbpasswd Implementation Information
+====================================
+
+To use this module, you must pass the address of your Samba domain controller
+on which to change the password. This can be "localhost" for the server that
+Horde runs on. The remote system name may be passed as the NETBIOS name, the
+DNS name, or the IP address of the SMB/CIFS server to connect to. The
+username is run through ``escapeshellcmd()``, so any usernames with strange
+characters ($, &, etc) may not work. I'm not sure if any of these are even
+valid for SMB/CIFS authentication, but if so, they may not work in this
+module.
+
+.. Note:: If changing a Windows NT Domain password the remote machine
+ specified must be the Primary Domain Controller for the domain
+ (Backup Domain Controllers only have a read-only copy of the user
+ account database and will not allow the password change).
+
+Since smbpasswd works in client-server mode communicating with a local smbd
+for a non-root user, the smbd daemon must be running for this to work. A
+common problem is to add a restriction to the hosts that may access the smbd
+running on the local machine by specifying a allow hosts or deny hosts entry
+in the ``smb.conf`` file and neglecting to allow "localhost" access to the
+smbd.
+
+In addition, the smbpasswd command is only useful if Samba has been set up to
+use encrypted passwords.
+
+
+Expect Script Information
+=========================
+
+This code allows users to change their passwords via an expect script. The
+module requires the expect program and a telnet or ssh program. You may need
+to change some of the expect patterns in ``scripts/passwd_expect`` such as the
+``badpassword_string`` or ``success_string`` (as only two examples).
+
+For security reasons, it is generally suggested to use ssh rather than telnet
+for the transport, if possible.
+
+
+Expect PECL Information
+=======================
+
+This code allows users to change their passwords via the PHP PECL expect
+extension. It requires the PECL expect extension and a ssh program.
+
+You can find the extension on http://pecl.php.net/package/expect
+
+
+Obtaining Support
+=================
+
+If you encounter problems with Passwd, help is available!
+
+The Horde Frequently Asked Questions List (FAQ), available on the Web at
+
+ http://www.horde.org/faq/
+
+The Horde Project runs a number of mailing lists, for individual applications
+and for issues relating to the project as a whole. Information, archives, and
+subscription information can be found at
+
+ http://www.horde.org/mail/
+
+Lastly, Horde developers, contributors and users may also be found on IRC,
+on the channel #horde on the Freenode Network (irc.freenode.net).
+
+Please keep in mind that Passwd is free software written by volunteers. For
+information on reasonable support expectations, please read
+
+ http://www.horde.org/support.php
+
+Thanks for using Passwd!
+
+The Passwd team
+
+
+.. _README: ?f=README.html
+.. _`horde/docs/HACKING`: ../../horde/docs/?f=HACKING.html
+.. _`horde/docs/INSTALL`: ../../horde/docs/?f=INSTALL.html
+.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/?f=TRANSLATIONS.html
--- /dev/null
+<?php
+/**
+ * Release focus. Possible values (multiple possible with arrays):
+ * Horde_Release::FOCUS_INITIAL - Initial announcement
+ * Horde_Release::FOCUS_MINORFEATURE - Minor feature enhancement
+ * Horde_Release::FOCUS_MAJORFEATURE - Major feature enhancement
+ * Horde_Release::FOCUS_MINORBUG - Minor bugfixes
+ * Horde_Release::FOCUS_MAJORBUG - Major bugfixes
+ * Horde_Release::FOCUS_MINORSECURITY - Minor security fixes
+ * Horde_Release::FOCUS_MAJORSECURITY - Major security fixes
+ * Horde_Release::FOCUS_DOCS - Documentation improvements
+ */
+$this->notes['fm']['focus'] = array(Horde_Release::FOCUS_MINORBUG);
+
+/* Mailing list release notes. */
+$this->notes['ml']['changes'] = <<<ML
+The Horde Team is pleased to announce the final release of the Passwd Horde
+password changing application version H3 (3.1.3).
+
+Passwd provides fairly complete support for changing passwords via Poppassd,
+LDAP, Unix expect scripts, the Unix smbpasswd command for SMB/CIFS passwords,
+Kolab, ADSI, Pine, Serv-U FTP, VMailMgr, vpopmail, and SQL passwords.
+
+The major changes compared to Passwd version H3 (3.1.2) are:
+ * Fixed a PHP error in the LDAP driver.
+ML;
+
+/* Freshmeat release notes, not more than 600 characters. */
+$this->notes['fm']['changes'] = <<<FM
+A PHP error in the LDAP driver has been fixed.
+FM;
+
+
+$this->notes['name'] = 'Passwd';
+$this->notes['list'] = 'sork';
+$this->notes['fm']['project'] = 'passwd';
+$this->notes['fm']['branch'] = 'Horde 3';
--- /dev/null
+==============================
+ Passwd Development TODO List
+==============================
+
+:Last update: $Date: 2008/10/09 17:12:04 $
+:Revision: $Revision: 1.13.2.1 $
+:Contact: sork@lists.horde.org
+
+- There should be more error checking for various things, in particular sanity
+ checking of the form variables passed in.
+
+- Document issues of poppassd/ldap/smbpasswd perhaps allowing weak passwords
+ or otherwise getting around passwd restrictions. Document the password
+ length and strength tests, and how bad they really are. We could
+ investigate using cracklib calls, since it is supported by php, but that
+ would require cracklib to be installed on the system and in PHP.
+
+- Need to clean up the ldapd code still. A work in progress. Maybe pass the
+ password field "userPassword" as a config item so people can name it
+ differently if needed?
+
+- The exim sql driver defines a lot of stuff in conf.php that should already
+ be defined in Horde/IMP's configs. We should probably reuse the Horde/IMP
+ stuff rather than duplicating the configuration???
+
+- Display the password policy to the user that he knows how the password
+ should look like (Request #2304).
--- /dev/null
+=========================
+ Upgrading to Passwd 3.x
+=========================
+
+:Last update: $Date: 2008/10/09 17:12:04 $
+:Revision: $Revision: 1.3.2.1 $
+:Contact: sork@lists.horde.org
+
+
+Upgrading to Passwd 3.1
+=======================
+
+Application Hooks
+-----------------
+
+All hooks that are specific to Passwd have been moved from the
+``horde/config/hooks.php`` file. Move your existing Passwd Hooks from there to
+``passwd/config/hooks.php``.
+
+New Hook Parameters
+-------------------
+
+The _passwd_hook_username hook is now passed an additional parameter, the
+Passwd_Driver_* object for the backend that you are changing the password on.
+This allows Passwd to support users being able to change passwords on multiple
+backends even when the different backends may have different requirements for
+the username (such as one requiring'user@example.com' while another only
+requiring 'user'). Additionally, the Passwd_Driver_composite driver also
+supports this functionality by checking for the existence of a parameter
+called 'be_username' in each of it's sub-drivers. If this parameter is
+present, its value overrides any other value of $userid it is passed. If you
+wish to use this functionality of the composite driver, look at the example
+_passwd_hook_username function in horde/config/hooks.php.dist.
--- /dev/null
+<?php
+/**
+ * $Horde: passwd/index.php,v 1.15.2.5 2009/01/06 15:25:15 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/gpl.php.
+ *
+ * @author Eric Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+
+@define('PASSWD_BASE', dirname(__FILE__));
+$passwd_configured = (is_readable(PASSWD_BASE . '/config/conf.php') &&
+ is_readable(PASSWD_BASE . '/config/backends.php'));
+
+if (!$passwd_configured) {
+ require PASSWD_BASE . '/../lib/Test.php';
+ Horde_Test::configFilesMissing('Passwd', PASSWD_BASE, array('conf.php', 'backends.php'));
+}
+
+require PASSWD_BASE . '/main.php';
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+/**
+ * Passwd_Driver:: defines an API for implementing password change systems for
+ * Passwd.
+ *
+ * $Horde: passwd/lib/Driver.php,v 1.44.2.10 2009/01/06 15:25:15 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Eric Rostetter <eric.rostetter@physics.utexas.edu>
+ * @since Passwd 2.1
+ * @package Passwd
+ */
+class Passwd_Driver {
+
+ /**
+ * Hash containing configuration parameters.
+ *
+ * @var array
+ */
+ var $_params = array();
+
+ /**
+ * Error string that will be returned to the user if an error occurs.
+ *
+ * @var string
+ */
+ var $_errorstr;
+
+ /**
+ * Constructs a new expect Passwd_Driver object.
+ *
+ * @param $params A hash containing connection parameters.
+ */
+ function Passwd_Driver($params = array())
+ {
+ $this->_params = $params;
+ }
+
+ /**
+ * Compare a plaintext password with an encrypted password.
+ *
+ * @return mixed True if they match, PEAR_Error if they differe.
+ */
+ function comparePasswords($encrypted, $plaintext)
+ {
+ if (preg_match('/^{[^}]+}/', $encrypted, $match)) {
+ $encrypted = substr($encrypted, strlen($match[0]));
+ $encryption = strtolower(substr($match[0], 1, strlen($match[0]) - 2));
+ if ($this->_params['driver'] == 'ldap' && $encryption == 'md5') {
+ $encryption = 'md5-base64';
+ }
+ } else {
+ $encryption = $this->_params['encryption'];
+ }
+
+ $hashed = Auth::getCryptedPassword($plaintext,
+ $encrypted,
+ $encryption,
+ false);
+
+ if ($this->_params['show_encryption']) {
+ /* Convert the hashing algorithm in both strings to uppercase. */
+ $encrypted = preg_replace('/^({.*?})/e', "String::upper('\\1')", $encrypted);
+ $hashed = preg_replace('/^({.*?})/e', "String::upper('\\1')", $hashed);
+ }
+
+ return ($encrypted == $hashed) ? true : PEAR::raiseError(_("Incorrect old password."));
+ }
+
+ /**
+ * Format a password using the current encryption.
+ *
+ * @param string $plaintext The plaintext password to encrypt.
+ *
+ * @return string The crypted password.
+ */
+ function encryptPassword($plaintext)
+ {
+ return Auth::getCryptedPassword($plaintext,
+ '',
+ $this->_params['encryption'],
+ $this->_params['show_encryption']);
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $oldpassword The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $oldpassword, $new_password)
+ {
+ return PEAR::raiseError(_("Backend not correctly implemented."));
+ }
+
+ /**
+ * Attempts to return a concrete Passwd_Driver instance based on
+ * $driver.
+ *
+ * @param string $driver The type of concrete passwd_Driver subclass
+ * to return. The is based on the passwd
+ * driver ($driver). The code is dynamically
+ * included.
+ *
+ * @param array $params (optional) A hash containing any additional
+ * configuration or connection parameters a
+ * subclass might need.
+ *
+ * @return mixed The newly created concrete Passwd_Driver
+ * instance, or false on an error.
+ */
+ function factory($driver, $params = array())
+ {
+ $driver = basename($driver);
+ require_once dirname(__FILE__) . '/Driver/' . $driver . '.php';
+ $class = 'Passwd_Driver_' . $driver;
+ if (class_exists($class)) {
+ return new $class($params);
+ } else {
+ Horde::fatal(PEAR::raiseError(sprintf(_("No such backend \"%s\" found."), $driver)), __FILE__, __LINE__);
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The ADSI class changes a user's password on any Windows Machine/NT-Domain
+ * using the ADSI COM Interface.
+ *
+ * NOTES:
+ *
+ * - If you plan to implement passwd over Active Direcory you must use the
+ * LDAP driver and not this one! This driver is designed for standalone
+ * machines or NT4 domains, only.
+ *
+ * - The host server must be Win32 with ADSI support.
+ *
+ * Sample backend configuration:
+ * <code>
+ * $backends['adsi'] = array(
+ * 'name' => 'Sample ADSI backend',
+ * 'preferred' => 'localhost',
+ * 'password policy' => array(
+ * 'minLength' => 8,
+ * 'maxLength' => 14
+ * ),
+ * 'driver' => 'adsi',
+ * 'params' => array(
+ * 'target' => 'YOUR_MACHINE/DOMAIN_NAME_HERE'
+ * )
+ * )
+ * </code>
+ *
+ * Backend parameters:
+ * target = Target Windows machine/domain name (Required)
+ *
+ * $Horde: passwd/lib/Driver/adsi.php,v 1.4.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Luiz R Malheiros <malheiros@gmail.com>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_adsi extends Passwd_Driver {
+
+ function changePassword($user_name, $old_password, $new_password)
+ {
+ $target = isset($this->_params['target']) ? $this->_params['target'] : '';
+
+ if (empty($target)) {
+ return PEAR::raiseError(_("Password module is missing target parameter."));
+ }
+
+ $root = &new COM('WinNT:');
+
+ if ($adsi = $root->OpenDSObject('WinNT://' . $target . '/' . $user_name . ',user', $target . '\\' . $user_name, $old_password, 1)) {
+ $result = $adsi->ChangePassword($old_password, $new_password);
+ if ($result == 0) {
+ return true;
+ } else {
+ return PEAR::raiseError(sprintf(_("ADSI error %s."), $result));
+ }
+ } else {
+ return PEAR::raiseError(_("Access Denied."));
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The composite class chains other drivers together to change and a user's
+ * password stored on various backends.
+ *
+ * $Horde: passwd/lib/Driver/composite.php,v 1.7.2.7 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2003-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Max Kalika <max@horde.org>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_composite extends Passwd_Driver {
+
+ /**
+ * Hash of instantiated drivers.
+ *
+ * @var array
+ */
+ var $_drivers = array();
+
+ /**
+ * State of the loaded drivers.
+ *
+ * @var boolean
+ */
+ var $_loaded = false;
+
+ /**
+ * Constructs a new Passwd_Driver_composite object.
+ *
+ * @param array $params A hash containing chained drivers and their parameters.
+ */
+ function Passwd_Driver_composite($params = array())
+ {
+ if (!isset($params['drivers']) || !is_array($params['drivers'])) {
+ return PEAR::raiseError(_("Required 'drivers' is misconfigured in Composite configuration."));
+ }
+
+ parent::Passwd_Driver($params);
+ }
+
+ /**
+ * Instantiate configured drivers.
+ *
+ * @return boolean True on success or PEAR_Error on failure.
+ */
+ function _loadDrivers()
+ {
+ if ($this->_loaded) {
+ return true;
+ }
+
+ foreach ($this->_params['drivers'] as $key => $settings) {
+ if (!array_key_exists($key, $this->_drivers)) {
+ $res = Passwd_Driver::factory($settings['driver'],
+ $settings['params']);
+ if (is_a($res, 'PEAR_Error')) {
+ return PEAR::raiseError(sprintf(_("%s: unable to load driver: %s"),
+ $key, $res->getMessage()));
+ }
+
+ $this->_drivers[$key] = $res;
+ }
+ }
+
+ $this->_loaded = true;
+ return true;
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ global $notification;
+
+ $res = $this->_loadDrivers();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ foreach ($this->_drivers as $key => $driver) {
+ if (isset($driver->_params['be_username'])) {
+ $user = $driver->_params['be_username'];
+ } else {
+ $user = $username;
+ }
+ $res = $driver->changePassword($user, $old_password,
+ $new_password);
+ if (is_a($res, 'PEAR_Error')) {
+ $res = PEAR::raiseError(sprintf(_("Failure in changing password for %s: %s"),
+ $this->_params['drivers'][$key]['name'],
+ $res->getMessage()), 'horde.error');
+ if (!empty($this->_params['drivers'][$key]['required'])) {
+ return $res;
+ } else {
+ $notification->push($res, 'horde.warning');
+ }
+ }
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The Passwd_expect class provides an expect implementation of the passwd
+ * system.
+ *
+ * $Horde: passwd/lib/Driver/expect.php,v 1.20.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Gaudenz Steinlin <gaudenz@soziologie.ch>
+ * @since Passwd 2.2
+ * @package Passwd
+ */
+class Passwd_Driver_expect extends Passwd_Driver {
+
+ /**
+ * Change the users password by executing an expect script.
+ *
+ * @param string $user User ID.
+ * @param string $old_password Old password.
+ * @param string $new_password New password.
+ *
+ * @return boolean True on success, false or error message on error.
+ */
+ function changePassword($user, $old_password, $new_password)
+ {
+ global $conf;
+
+ // Sanity checks.
+ if (!@is_executable($this->_params['program'])) {
+ return PEAR::raiseError(sprintf(_("%s does not exist or is not executable."), $this->_params['program']));
+ }
+
+ // Temporary logfile for error messages.
+ $log = tempnam(ini_get('upload_tmp_dir') ?
+ ini_get('upload_tmp_dir') :
+ '/tmp',
+ 'passwd');
+
+ // Open expect script for writing.
+ $prog = $this->_params['program'] . ' -f ' . $this->_params['script'] .
+ ' -- ' . $this->_params['params'] . ' -log ' . $log;
+
+ $exp = @popen($prog, 'w');
+ @fwrite($exp, "$user\n");
+ @fwrite($exp, "$old_password\n");
+ @fwrite($exp, "$new_password\n");
+ if (@pclose($exp)) {
+ $errormsg = implode(' ', @file($log));
+ @unlink($log);
+ return $errormsg ? PEAR::raiseError($errormsg) : false;
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The Passwd_expectpecl class provides an PECL expect implementation of the
+ * Passwd system.
+ *
+ * $Horde: passwd/lib/Driver/expectpecl.php,v 1.5.2.1 2008/10/09 17:12:04 jan Exp $
+ *
+ * Copyright 2006-2007 Duck <duck@obala.net>
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Duck <duck@obala.net>
+ * @since Passwd 3.1
+ * @package Passwd
+ */
+class Passwd_Driver_expectpecl extends Passwd_Driver {
+
+ /**
+ * Expect connection handle.
+ *
+ * @var resource
+ */
+ var $_stream;
+
+ /**
+ * Handles expect communication.
+ *
+ * @param string $expect String to expect
+ * @param string $error Error message
+ *
+ * @return boolean|PEAR_Error True on success, PEAR_Error on failure
+ */
+ function ctl($expect, $error)
+ {
+ $cases = array(array(0 => $expect,
+ 1 => 'ok',
+ 2 => EXP_REGEXP));
+
+ $result = expect_expectl($this->_stream, $cases);
+
+ switch ($result) {
+ case EXP_EOF:
+ return PEAR::raiseError(_("End of file."));
+ break;
+ case EXP_TIMEOUT:
+ return PEAR::raiseError(_("Time out."));
+ break;
+ case EXP_FULLBUFFER:
+ return PEAR::raiseError(_("Full buffer."));
+ break;
+ case 'ok':
+ return true;
+ break;
+ default:
+ return PEAR::raiseError($error);
+ break;
+ }
+ }
+
+ /**
+ * Changes the users password by executing an expect script.
+ *
+ * @param string $user User ID.
+ * @param string $old_password Old password.
+ * @param string $new_password New password.
+ *
+ * @return boolean True on success, false or error message on error.
+ */
+ function changePassword($user, $old_password, $new_password)
+ {
+ if (!Util::loadExtension('expect')) {
+ return PEAR::raiseError(sprintf(_("%s extension cannot be loaded!"), 'expect'));
+ }
+
+ // Set up parameters
+ if (isset($this->_params['timeout'])) {
+ ini_set('expect.timeout', $this->_params['timeout']);
+ }
+ if (isset($this->_params['loguser'])) {
+ ini_set('expect.loguser', $this->_params['loguser']);
+ }
+ if (isset($this->_params['logfile'])) {
+ ini_set('expect.logfile', $this->_params['logfile']);
+ }
+
+ // Open connection
+ $call = sprintf('ssh %s@%s %s',
+ $user,
+ $this->_params['host'],
+ $this->_params['program']);
+ if (!($this->_stream = expect_popen($call))) {
+ return PEAR::raiseError(_("Unable to open expect stream!"));
+ }
+
+ // Log in
+ $result = $this->ctl('(P|p)assword.*',
+ _("Could not login to system (no password prompt)"));
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Send login password
+ fwrite($this->_stream, "$old_password\n");
+
+ // Expect old password prompt
+ $result = $this->ctl('((O|o)ld|login|current).* (P|p)assword.*',
+ _("Could not start passwd program (no old password prompt)"));
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Send old password
+ fwrite($this->_stream, "$old_password\n");
+
+ // Expect new password prompt
+ $result = $this->ctl('(N|n)ew.* (P|p)assword.*',
+ _("Could not change password (bad old password?)"));
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Send new password
+ fwrite($this->_stream, "$new_password\n");
+
+ // Expect reenter password prompt
+ $result = $this->ctl("((R|r)e-*enter.*(P|p)assword|Retype new( UNIX)? password|(V|v)erification|(V|v)erify|(A|a)gain).*",
+ _("New password not valid (too short, bad password, too similar, ...)"));
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Send new password
+ fwrite($this->_stream, "$new_password\n");
+
+ // Expect successfully message
+ $result = $this->ctl('((P|p)assword.* changed|successfully)',
+ _("Could not change password."));
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return $result;
+ }
+}
--- /dev/null
+<?php
+/**
+ * The http driver attempts to change a user's password via a web based
+ * interface and implements the Passwd_Driver API.
+ *
+ * $Horde: passwd/lib/Driver/http.php,v 1.8.2.3 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Michael Rubinsky <mrubinsk@horde.org>
+ * @package Passwd
+ * @since Passwd 3.1
+ */
+class Passwd_Driver_http extends Passwd_Driver {
+
+ /**
+ * Constructs a new Passwd_Driver_http object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_http($params = array())
+ {
+ $this->_params = $params;
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return mixed True on success or PEAR_Error on failure.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ require_once 'HTTP/Request.php';
+
+ $req = new HTTP_Request($this->_params['url']);
+ $req->setMethod(HTTP_REQUEST_METHOD_POST);
+
+ // Add the required fields that most web-based forms would use.
+ $req->addPostData($this->_params['username'], $username);
+ $req->addPostData($this->_params['oldPasswd'], $old_password);
+ $req->addPostData($this->_params['passwd1'], $new_password);
+ $req->addPostData($this->_params['passwd2'], $new_password);
+
+ // Now add any fields that were passed in _params['fields'].
+ foreach ($this->_params['fields'] as $fieldName => $fieldValue) {
+ $req->addPostData($fieldName, $fieldValue);
+ }
+
+ // Send the request
+ $result = $req->sendRequest();
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Make sure we have a good response code
+ $responseCode = $req->getResponseCode();
+ if ($responseCode != 200) {
+ return PEAR::raiseError(_("The requested website for changing user passwords could not be reached."));
+ }
+
+ // We got *some* response from the server, so get the content and
+ // let's see if we can't figure out if it was a success or not.
+ $responseBody = $req->getResponseBody();
+ if (strpos($responseBody, $this->_params['eval_results']['badPass'])) {
+ return PEAR::raiseError(_("Incorrect old password."));
+ } elseif (strpos($responseBody, $this->_params['eval_results']['badUser'])) {
+ return PEAR::raiseError(_("The username could not be found."));
+ } elseif (!strpos($responseBody, $this->_params['eval_results']['success'])) {
+ return PEAR::raiseError(_("Your password could not be changed."));
+ }
+ return true;
+ }
+}
--- /dev/null
+<?php
+/**
+ * The Kolab class attempts to change a user's password on the designated
+ * Kolab backend. Based off the LDAP passwd class.
+ *
+ * $Horde: passwd/lib/Driver/kolab.php,v 1.2.2.9 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2005-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Stuart Bingë <skbinge@gmail.com>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_kolab extends Passwd_Driver {
+
+ /**
+ * Constructs a new Passwd_Driver_kolab object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_kolab($params = array())
+ {
+ // We don't need any backends.php-configurable parameters
+ }
+
+ /**
+ * Changes the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ // Connect to the LDAP server.
+ $ds = ldap_connect(
+ $GLOBALS['conf']['kolab']['ldap']['server'],
+ $GLOBALS['conf']['kolab']['ldap']['port']
+ );
+ if (!$ds) {
+ return PEAR::raiseError(_("Could not connect to LDAP server"));
+ }
+
+ ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
+
+ // Bind anonymously, or use the phpdn user if available.
+ if (!empty($GLOBALS['conf']['kolab']['ldap']['phpdn'])) {
+ $phpdn = $GLOBALS['conf']['kolab']['ldap']['phpdn'];
+ $phppw = $GLOBALS['conf']['kolab']['ldap']['phppw'];
+ $result = @ldap_bind($ds, $phpdn, $phppw);
+ } else {
+ $result = @ldap_bind($ds);
+ }
+ if (!$result) {
+ return PEAR::raiseError(_("Could not bind to LDAP server"));
+ }
+
+ // Make sure we're using the full user@domain format.
+ if (strstr($username, '@') === false) {
+ $username .= '@' . $GLOBALS['conf']['kolab']['imap']['maildomain'];
+ }
+
+ // Find the user's DN.
+ $result = ldap_search(
+ $ds,
+ $GLOBALS['conf']['kolab']['ldap']['basedn'],
+ "mail=$username"
+ );
+ $entry = ldap_first_entry($ds, $result);
+ if ($entry === false) {
+ return PEAR::raiseError(_("User not found."));
+ }
+
+ $userdn = ldap_get_dn($ds, $entry);
+
+ // Connect as the user.
+ $result = @ldap_bind($ds, $userdn, $old_password);
+ if (!$result) {
+ return PEAR::raiseError(_("Incorrect old password."));
+ }
+
+ // And finally change the password.
+ $new_details['userPassword'] = '{sha}' .
+ base64_encode(pack('H*', sha1($new_password)));
+
+ if (!ldap_mod_replace($ds, $userdn, $new_details)) {
+ return PEAR::raiseError(ldap_error($ds));
+ }
+
+ ldap_unbind($ds);
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The LDAP class attempts to change a user's password stored in an LDAP
+ * directory service.
+ *
+ * $Horde: passwd/lib/Driver/ldap.php,v 1.41.2.13 2009/11/09 13:31:12 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Tjeerd van der Zee <admin@xar.nl>
+ * @author Mattias Webjörn Eriksson <mattias@webjorn.org>
+ * @author Eric Jon Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+class Passwd_Driver_ldap extends Passwd_Driver {
+
+ /**
+ * LDAP connection handle.
+ *
+ * @var resource
+ */
+ var $_ds = false;
+
+ /**
+ * The user's DN.
+ *
+ * @var string
+ */
+ var $_userdn;
+
+ /**
+ * Constructs a new Passwd_Driver_ldap object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_ldap($params = array())
+ {
+ $this->_params = array_merge(
+ array('host' => 'localhost',
+ 'port' => 389,
+ 'encryption' => 'crypt',
+ 'show_encryption' => 'true',
+ 'uid' => 'uid',
+ 'basedn' => '',
+ 'admindn' => '',
+ 'adminpw' => '',
+ 'realm' => '',
+ 'filter' => '',
+ 'tls' => false,
+ 'attribute' => 'userPassword',
+ 'shadowlastchange' => 'shadowLastChange',
+ 'shadowmin' => 'shadowMin'),
+ $params);
+
+ if (!empty($this->_params['tls']) &&
+ empty($this->_params['sslhost'])) {
+ $this->_params['sslhost'] = $this->_params['host'];
+ }
+ }
+
+ /**
+ * Does an LDAP connect and binds as the guest user or as the optional
+ * userdn.
+ *
+ * @param string $userdn The dn to use when binding non-anonymously.
+ * @param string $oldpassword The password for $userdn.
+ *
+ * @return boolean True or False based on success of connect and bind.
+ */
+ function _connect()
+ {
+ // See if we already have an open connection
+ if ($this->_ds) {
+ return true;
+ }
+
+ if (!empty($this->_params['sslhost']) && empty($this->_params['tls'])) {
+ $this->_ds = ldap_connect('ldaps://' . $this->_params['sslhost']);
+ } else {
+ $this->_ds = ldap_connect($this->_params['host'], $this->_params['port']);
+ }
+ if (!$this->_ds) {
+ return PEAR::raiseError(_("Could not connect to LDAP server"));
+ }
+
+ if (ldap_set_option($this->_ds, LDAP_OPT_PROTOCOL_VERSION, 3) &&
+ $this->_params['tls']) {
+ if (!ldap_start_tls($this->_ds)) {
+ return PEAR::raiseError(_("Could not start TLS connection to LDAP server"));
+ }
+ }
+
+ if (!empty($this->_params['referrals'])) {
+ if (!ldap_set_option($this->_ds, LDAP_OPT_REFERRALS, $this->_params['referrals'])) {
+ return PEAR::raiseError(_("Unable to disable directory referrals"));
+ }
+ }
+
+ return true;
+ }
+
+
+ /**
+ * Bind (or re-bind) to an LDAP server with the given credentials.
+ *
+ * @param string $userdn Bind DN
+ * @param string $password Bind password
+ *
+ * @return mixed True on success; PEAR_Error on error
+ */
+ function _bind($userdn = '', $password = '')
+ {
+ $result = false;
+ // Try to bind as the current userdn with password.
+ if (!empty($userdn)) {
+ $result = @ldap_bind($this->_ds, $userdn, $password);
+ } else {
+ $result = @ldap_bind($this->_ds);
+ }
+
+ // If none of the bind attempts succeed, return error.
+ if (!$result) {
+ return PEAR::raiseError(_("Could not bind to LDAP server"));
+ }
+ }
+
+ /**
+ * Changes the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or PEAR_Error based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ // See if the old password matches before allowing the change
+ if ($old_password !== Auth::getCredential('password')) {
+ return PEAR::raiseError(_("Incorrect old password."));
+ }
+
+ // Bind as current user. _connect will try as guest if no user realm
+ // is found or auth error.
+ $result = $this->_connect();
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Append realm as username@realm if 'realm' parameter is set.
+ if (!empty($this->_params['realm'])) {
+ $username .= '@' . $this->_params['realm'];
+ }
+
+ // Get the user's dn.
+ if ($GLOBALS['conf']['hooks']['userdn']) {
+ $this->_userdn = Horde::callHook('_passwd_hook_userdn',
+ array($username),
+ 'passwd');
+ } else {
+ $this->_userdn = $this->_lookupdn($username, $old_password);
+ if (is_a($this->_userdn, 'PEAR_Error')) {
+ return $this->_userdn;
+ }
+ }
+
+ // Connect as the admin DN if configured; otherwise as the user
+ if (!empty($this->_params['admindn'])) {
+ $result = $this->_bind($this->_params['admindn'],
+ $this->_params['adminpw']);
+ } else {
+ $result = $this->_bind($this->_userdn, $old_password);
+ }
+
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Get existing user information
+ $result = ldap_read($this->_ds, $this->_userdn, 'objectClass=*');
+ $entry = ldap_first_entry($this->_ds, $result);
+ if ($entry === false) {
+ return PEAR::raiseError(_("User not found."));
+ }
+
+ // Init the shadow policy array
+ $lookupshadow = array('shadowlastchange' => false,
+ 'shadowmin' => false);
+
+ $information = @ldap_get_values($this->_ds, $entry,
+ $this->_params['shadowlastchange']);
+ if ($information) {
+ $lookupshadow['shadowlastchange'] = $information[0];
+ }
+
+ $information = @ldap_get_values($this->_ds, $entry,
+ $this->_params['shadowmin']);
+ if ($information) {
+ $lookupshadow['shadowmin'] = $information[0];
+ }
+
+ // Check if we may change the password
+ if ($lookupshadow['shadowlastchange'] &&
+ $lookupshadow['shadowmin'] &&
+ ($lookupshadow['shadowlastchange'] + $lookupshadow['shadowmin'] > (time() / 86400))) {
+ return PEAR::raiseError(_("Minimum password age has not yet expired"));
+ }
+
+ // Change the user's password and update lastchange
+ $new_details[$this->_params['attribute']] = $this->encryptPassword($new_password);
+
+ if (!empty($this->_params['shadowlastchange']) &&
+ $lookupshadow['shadowlastchange']) {
+ $new_details[$this->_params['shadowlastchange']] = floor(time() / 86400);
+ }
+
+ if (!@ldap_mod_replace($this->_ds, $this->_userdn, $new_details)) {
+ return PEAR::raiseError(ldap_error($this->_ds));
+ }
+
+ // Update the stored credential within the session
+ Auth::setCredential('password', $new_password);
+
+ return true;
+ }
+
+ /**
+ * Looks up and returns the user's dn.
+ *
+ * @param string $user The username of the user.
+ * @param string $passw The password of the user.
+ *
+ * @return string The ldap dn for the user.
+ */
+ function _lookupdn($user, $passw)
+ {
+ // Search as an admin if so configured
+ if (!empty($this->_params['admindn'])) {
+ $this->_bind($this->_params['admindn'], $this->_params['adminpw']);
+ } else {
+ $this->_bind();
+ }
+
+ // Construct search.
+ $search = '(' . $this->_params['uid'] . '=' . $user . ')';
+
+ if (!empty($this->_params['filter'])) {
+ $search = '(&' . $search . '(' . $this->_params['filter'] . '))';
+ }
+
+ // Get userdn.
+ $result = ldap_search($this->_ds, $this->_params['basedn'], $search);
+ $entry = ldap_first_entry($this->_ds, $result);
+ if ($entry === false) {
+ return PEAR::raiseError(_("User not found."));
+ }
+
+ // If we used admin bindings, we have to check the password here.
+ if (!empty($this->_params['admindn'])) {
+ $ldappasswd = ldap_get_values($this->_ds, $entry,
+ $this->_params['attribute']);
+ $result = $this->comparePasswords($ldappasswd[0], $passw);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+ }
+
+ return ldap_get_dn($this->_ds, $entry);
+ }
+
+}
--- /dev/null
+<?php
+
+/**
+ * Lower boundary character.
+ */
+define('FIRSTCH', 0x20);
+
+/**
+ * Upper boundary character.
+ */
+define('LASTCH', 0x7e);
+
+/**
+ * Median character.
+ */
+define('TABSZ', LASTCH - FIRSTCH + 1);
+
+/**
+ * The pine class attempts to change a user's password on a in a pine password
+ * file.
+ *
+ * $Horde: passwd/lib/Driver/pine.php,v 1.9.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2003-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Max Kalika <max@horde.org>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_pine extends Passwd_Driver {
+
+ /**
+ * FTP connection handle.
+ *
+ * @var VFS
+ */
+ var $_ftp;
+
+ /**
+ * Boolean which contains state of the ftp connection.
+ *
+ * @var boolean
+ */
+ var $_connected = false;
+
+ /**
+ * Contents array of the pine password file.
+ *
+ * @var array
+ */
+ var $_contents = array();
+
+ /**
+ * Constructs a new pine Passwd_Driver object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_pine($params = array())
+ {
+ /* We self-encrypt here, so plaintext is needed. */
+ $this->_params['encryption'] = 'plain';
+ $this->_params['show_encryption'] = false;
+
+ /* Sensible FTP server parameters. */
+ $this->_params['host'] = isset($params['host']) ? $params['host'] : 'localhost';
+ $this->_params['port'] = isset($params['port']) ? $params['port'] : '21';
+ $this->_params['path'] = isset($params['path']) ? $params['path'] : '';
+ $this->_params['file'] = isset($params['file']) ? $params['file'] : '.pinepw';
+
+ /* Connect to FTP server using just-passed-in credentials?
+ * Only useful if using the composite driver and changing
+ * system (FTP) password prior to this one. */
+ $this->_params['use_new_passwd'] = isset($params['use_new_passwd']) ? $params['use_new_passwd'] : false;
+
+ /* What host to look for on each line? */
+ $this->_params['imaphost'] = isset($params['imaphost']) ? $params['imaphost'] : 'localhost';
+ }
+
+ /**
+ * Connect to the FTP server.
+ *
+ * @return mixed True on success or a PEAR_Error object on failure.
+ */
+ function _connect($user, $password)
+ {
+ if (!$this->_connected) {
+ /* Connect to the FTP server using the supplied
+ * parameters. */
+ require_once 'VFS.php';
+
+ $params = array(
+ 'username' => $user,
+ 'password' => $password,
+ 'hostspec' => $this->_params['host'],
+ 'port' => $this->_params['port'],
+ );
+
+ $res = $this->_ftp = &VFS::singleton('ftp', $params);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+ $res = $this->_ftp->checkCredentials();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Disconnect from the FTP server and clean up the connection.
+ *
+ * @return mixed True on success or a PEAR_Error object on failure.
+ */
+ function _disconnect()
+ {
+ if ($this->_connected) {
+ $this->_connected = false;
+ return $this->_ftp->disconnect();
+ }
+
+ return true;
+ }
+
+ /**
+ * Decodes a Pine-encoded password string. The algorithm is
+ * borrowed from read_passfile() and xlate_out() functions in
+ * pine/imap.c file distributed in the Pine source archive.
+ *
+ * @param string $string The contents of a pine-encoded password file.
+ *
+ * @return array List of lines of decoded elements.
+ */
+ function _decode($string)
+ {
+ $list = array();
+
+ $lines = explode("\n", $string);
+ for ($n = 0; $n < sizeof($lines); $n++) {
+ $key = $n;
+ $tmp = $lines[$n];
+ for ($i = 0; $i < strlen($tmp); $i++) {
+ if ((ord($tmp[$i]) >= FIRSTCH) && (ord($tmp[$i]) <= LASTCH)) {
+ $xch = ord($tmp[$i]) - ($dti = $key);
+ $xch += ($xch < FIRSTCH - TABSZ) ? 2 * TABSZ : ($xch < FIRSTCH) ? TABSZ : 0;
+ $dti = ($xch - FIRSTCH) + $dti;
+ $dti -= ($dti >= 2 * TABSZ) ? 2 * TABSZ : ($dti >= TABSZ) ? TABSZ : 0;
+ $key = $dti;
+ $tmp[$i] = chr($xch);
+ }
+ }
+
+ if ($i && $tmp[$i - 1] == "\n") {
+ $tmp = substr($tmp, 0, -1);
+ }
+
+ $parts = explode("\t", $tmp);
+ if (count($parts) >= 4) {
+ $list[] = $parts;
+ }
+ }
+
+ return $list;
+ }
+
+ /**
+ * Encodes an array of elements into a Pine-readable password string.
+ * The algorith is borrowed from write_passfile() and xlate_in() functions
+ * in pine/imap.c file distributed in the Pine source archive.
+ *
+ * @param array $lines List of lines of decoded elements
+ *
+ * @return array Contents of a pine-readable password file.
+ */
+ function _encode($lines)
+ {
+ $string = '';
+ for ($n = 0; $n < sizeof($lines); $n++) {
+ if (isset($lines[$n][4])) {
+ $lines[$n][4] = "\t" . $lines[$n][4];
+ } else {
+ $lines[$n][4] = '';
+ }
+
+ $key = $n;
+ $tmp = vsprintf("%.100s\t%.100s\t%.100s\t%d%s\n", $lines[$n]);
+ for ($i = 0; $i < strlen($tmp); $i++) {
+ $eti = $key;
+ if ((ord($tmp[$i]) >= FIRSTCH) && (ord($tmp[$i]) <= LASTCH)) {
+ $eti += ord($tmp[$i]) - FIRSTCH;
+ $eti -= ($eti >= 2 * TABSZ) ? 2 * TABSZ : ($eti >= TABSZ) ? TABSZ : 0;
+ $key = $eti;
+ $tmp[$i] = chr($eti + FIRSTCH);
+ }
+ }
+
+ $string .= $tmp;
+ }
+
+ return $string;
+ }
+
+ /**
+ * Find out if a username and password is valid.
+ *
+ * @param string $user The userID to check.
+ * @param string $oldPassword An old password to check.
+ *
+ * @return mixed True on success or a PEAR_Error object on failure.
+ */
+ function _lookup($user, $oldPassword)
+ {
+ $contents = $this->_ftp->read($this->_params['path'], $this->_params['file']);
+ if (is_a($contents, 'PEAR_Error')) {
+ return $contents;
+ }
+
+ $this->_contents = $this->_decode($contents);
+ foreach ($this->_contents as $line) {
+ if ($line[1] == $user &&
+ (($line[2] == $this->_params['imaphost']) ||
+ (!empty($line[4]) && $line[4] == $this->_params['imaphost']))) {
+ return $this->comparePasswords($line[0], $oldPassword);
+ }
+ }
+
+ return PEAR::raiseError(_("User not found."));
+ }
+
+ /**
+ * Modify (update) a pine password record for a user.
+ *
+ * @param string $user The user whose record we will udpate.
+ * @param string $newPassword The new password value to set.
+ *
+ * @return mixed True on success or a PEAR_Error object on failure.
+ */
+ function _modify($user, $newPassword)
+ {
+ for ($i = 0; $i < sizeof($this->_contents); $i++) {
+ if ($this->_contents[$i][1] == $user &&
+ (($this->_contents[$i][2] == $this->_params['imaphost']) ||
+ (!empty($this->_contents[$i][4]) &&
+ $this->_contents[$i][4] == $this->_params['imaphost']))) {
+ $this->_contents[$i][0] = $newPassword;
+ }
+ }
+
+ $string = $this->_encode($this->_contents);
+ return $this->_ftp->writeData($this->_params['path'], $this->_params['file'], $string);
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $oldPassword The old (current) user password.
+ * @param string $newPassword The new user password to set.
+ *
+ * @return mixed True on success or a PEAR_Error object on failure.
+ */
+ function changePassword($username, $oldPassword, $newPassword)
+ {
+ /* Connect to the ftp server. */
+ $res = $this->_connect($username, $this->_params['use_new_passwd'] ? $newPassword : $oldPassword);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ /* Check the current password. */
+ $res = $this->_lookup($username, $oldPassword);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $res = $this->_modify($username, $newPassword);
+
+ $this->_disconnect();
+
+ return $res;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The poppassd class attempts to change a user's password via a poppassd
+ * server.
+ *
+ * $Horde: passwd/lib/Driver/poppassd.php,v 1.24.2.7 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Eric Jon Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+class Passwd_Driver_poppassd extends Passwd_Driver {
+
+ /**
+ * Socket connection.
+ *
+ * @var resource
+ */
+ var $_fp;
+
+ /**
+ * Constructs a new poppassd Passwd_Driver object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_poppassd($params = array())
+ {
+ $this->_params['host'] = array_key_exists('host', $params) ? $params['host'] : 'localhost';
+ $this->_params['port'] = array_key_exists('port', $params) ? $params['port'] : 106;
+ }
+
+ /**
+ * Connect to the server
+ */
+ function _connect()
+ {
+ $this->_fp = fsockopen($this->_params['host'], $this->_params['port'], $errno, $errstr, 30);
+ if (!$this->_fp) {
+ return PEAR::raiseError($errstr);
+ } else {
+ return $this->_getPrompt();
+ }
+ }
+
+ /**
+ * Disconnect from the server
+ */
+ function _disconnect()
+ {
+ if (isset($this->_fp)) {
+ fputs($this->_fp, "quit\n");
+ fclose($this->_fp);
+ }
+ }
+
+ /**
+ * Parse a response from the server to see what it was
+ */
+ function _getPrompt()
+ {
+ $prompt = fgets($this->_fp, 4096);
+ if (!$prompt) {
+ return PEAR::raiseError(_("No prompt returned from server."));
+ }
+ if (preg_match('/^[1-5][0-9][0-9]/', $prompt)) {
+ $rc = substr($prompt, 0, 3);
+ /* This should probably be a regex match for 2?0 or 3?0, no? */
+ if ($rc == '200' || $rc == '220' || $rc == '250' || $rc == '300' ) {
+ return true;
+ } else {
+ return PEAR::raiseError($prompt);
+ }
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Send a command to the server.
+ */
+ function _sendCommand($cmd, $arg)
+ {
+ $line = $cmd . ' ' . $arg . "\n";
+ $res_fputs = fputs($this->_fp, $line);
+ if (!$res_fputs) {
+ return PEAR::raiseError(_("Cannot send command to server."));
+ }
+ return $this->_getPrompt();
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ $res = $this->_connect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $res = $this->_sendCommand('user', $username);
+ if (is_a($res, 'PEAR_Error')) {
+ $this->_disconnect();
+ return PEAR::raiseError(_("User not found"));
+ }
+
+ $res = $this->_sendCommand('pass', $old_password);
+ if (is_a($res, 'PEAR_Error')) {
+ $this->_disconnect();
+ return PEAR::raiseError(_("Incorrect old password."));
+ }
+
+ $res = $this->_sendCommand('newpass', $new_password);
+ $this->_disconnect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The Passwd_procopen class provides a procopen implementation of the passwd
+ * system.
+ *
+ * Any script or program can be supplied as the 'program' attribute value of
+ * the params argument. The username, old password and new password are
+ * written to the stdin of the process and then the stdout and stderr of the
+ * process are read and combined with the exit status value and returned to
+ * the caller if the status code is not 0.
+ *
+ * $Horde: passwd/lib/Driver/procopen.php,v 1.4.2.6 2009/02/23 20:01:48 chuck Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Samuel Nicolary <sam@nicolary.org>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_procopen extends Passwd_Driver {
+
+ /**
+ * Change the user's password by executing a user supplied command.
+ *
+ * @param string $user User ID.
+ * @param string $oldpass Old password.
+ * @param string $newpass New password.
+ *
+ * @return boolean True on success, false or error message on error.
+ */
+ function changePassword($user, $oldpass, $newpass)
+ {
+ global $conf;
+
+ $descriptorspec = array(
+ 0 => array('pipe', 'r'),
+ 1 => array('pipe', 'w'),
+ 2 => array('pipe', 'w'));
+
+ $output = '';
+
+ $process = @proc_open($this->_params['program'], $descriptorspec, $pipes);
+ if (is_resource($process)) {
+ fwrite($pipes[0], "$user\n");
+ fwrite($pipes[0], "$oldpass\n");
+ fwrite($pipes[0], "$newpass\n");
+ fclose($pipes[0]);
+ while (!feof($pipes[1])) {
+ $output .= fgets($pipes[1], 1024);
+ }
+ fclose($pipes[1]);
+ while (!feof($pipes[2])) {
+ $output .= fgets($pipes[2], 1024);
+ }
+ fclose($pipes[2]);
+ $return_value = proc_close($process);
+ } else {
+ $output = '';
+ $return_value = -1;
+ }
+
+ $output .= " (Exit Status: $return_value)";
+
+ if ($return_value != 0) {
+ return $output ? PEAR::raiseError($output) : false;
+ } else {
+ return true;
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The PSPasswd class changes a user's password on any Windows Machine
+ * (NT+) using the pspasswd free utility available at Sysinternals
+ * website: http://www.sysinternals.com/ntw2k/freeware/pspasswd.shtml
+ *
+ * IMPORTANT!
+ *
+ * This driver should be used only as a last resort when there's no
+ * possibility of using the ADSI or LDAP drivers, which are far more
+ * secure and fast. This driver needs administrative credentials
+ * exposed on the backends.php file, which is required by the
+ * pspasswd.exe tool. It's an alternative driver that should be
+ * avoided, but could also be the only option for a few scenarios.
+ * (eg: When you don't have ADSI or LDAP support)
+ *
+ * Sample backend configuration:
+ * <code>
+ * $backends['pspasswd'] = array(
+ * 'name' => 'Sample pspasswd backend',
+ * 'preferred' => 'localhost',
+ * 'password policy' => array(
+ * 'minLength' => 8,
+ * 'maxLength' => 14
+ * ),
+ * 'driver' => 'pspasswd',
+ * 'params' => array(
+ * 'server' => 'YOUR_SERVER_NAME',
+ * 'bin' => 'DRIVE:\\DIR\\pspasswd.exe', // Notice: "\\"
+ * 'admusr' => 'Administrator',
+ * 'admpwd' => 'Password',
+ * 'domain' => 'YOUR_DOMAIN_NAME'
+ * )
+ * );
+ * </code>
+ *
+ * Backend parameters:<pre>
+ * server = Machine where you want to change the password (Required)
+ * bin = Full pathname of the pspasswd.exe program (Required)
+ * admusr = User with administrative privileges (Required)
+ * admpwd = Password of the administrative user (Required)
+ * domain = Windows domain name (Optional)
+ * </pre>
+ *
+ * For example: Passing a NT4 PDC server name to the server parameter
+ * means you can change the user's password on that NT4 Domain.
+ *
+ * Special thanks to Mark Russinovich (mark@sysinternals.com) for the
+ * tool and helping me solve some questions about it.
+ *
+ * $Horde: passwd/lib/Driver/pspasswd.php,v 1.2.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Luiz R Malheiros (malheiros@gmail.com)
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_pspasswd extends Passwd_Driver {
+
+ function changePassword($user_name, $old_password, $new_password)
+ {
+ $server = isset($this->_params['server']) ? $this->_params['server'] : '';
+ $bin = isset($this->_params['bin']) ? $this->_params['bin'] : '';
+ $admusr = isset($this->_params['admusr']) ? $this->_params['admusr'] : '';
+ $admpwd = isset($this->_params['admpwd']) ? $this->_params['admpwd'] : '';
+ $domain = isset($this->_params['domain']) ? $this->_params['domain'] : '';
+
+ if ($server == '' || $bin == '' || $admusr == '' || $admpwd == '') {
+ return PEAR::raiseError(_("Password module is missing required parameters."));
+ } elseif (file_exists($bin) == false) {
+ return PEAR::raiseError(_("Password module can't find the supplied bin."));
+ }
+
+ if ($domain != '') {
+ $chpwd_adm = $domain . "\\" . $admusr;
+ $chpwd_usr = $domain . "\\" . $user_name;
+ } else {
+ $chpwd_adm = $admusr;
+ $chpwd_usr = $user_name;
+ }
+
+ exec('NET USE \\\\' . $server . '\\IPC$ /D >NUL 2>NUL');
+
+ $cmdline = 'NET USE \\\\' . $server . '\\IPC$ "' . $old_password . '" /USER:' . $chpwd_usr;
+
+ exec($cmdline, $cmdreply, $retval);
+
+ if (strpos(implode(' ', $cmdreply), 'The command completed successfully.') === false) {
+ return PEAR::raiseError(_("Failed to verify old password."));
+ }
+
+ exec('NET USE \\\\' . $server . '\\IPC$ /D >NUL 2>NUL');
+
+ $cmdline = $bin . ' \\\\' . $server . ' -u ' . $chpwd_adm . ' -p ' . $admpwd . ' ' . $user_name . ' ' . $new_password;
+
+ exec($cmdline, $cmdreply, $retval);
+
+ exec('NET USE \\\\' . $server . '\\IPC$ /D >NUL 2>NUL');
+
+ if (strpos(implode(' ', $cmdreply), 'Password for ' . $server . '\\' . $user_name . ' successfully changed.') === false) {
+ return PEAR::raiseError(_("Access Denied."));
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The serv-u ftp class attempts to change a user's password via the SITE PSWD
+ * command used by Serv-u ftpd for windows.
+ *
+ * $Horde: passwd/lib/Driver/servuftp.php,v 1.14.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Lucas Nelan (screen@brainkrash.com)
+ * @package Passwd
+ */
+class Passwd_Driver_servuftp extends Passwd_Driver {
+
+ var $fp;
+ var $ftpd_connected = '220';
+ var $ftpd_goodbye = '221';
+ var $ftpd_passwordok = '230';
+ var $ftpd_usernameok = '331';
+ var $ftpd_passwordbad = '530';
+
+ function connect($server, $port, $timeout = 30)
+ {
+ $this->fp = fsockopen($server, $port, $errno, $errstr, $timeout);
+
+ if (!$this->fp) {
+ $this->_errorstr = $errstr;
+ return false;
+ } else {
+ return $this->getPrompt();
+ }
+ }
+
+ function _disconnect()
+ {
+ if ($this->fp) {
+ fputs($this->fp, "quit\n");
+ fclose($this->fp);
+ }
+ }
+
+ function getPrompt()
+ {
+ $prompt = fgets($this->fp, 4096);
+ $return = '';
+
+ if (preg_match('/^[1-5][0-9][0-9]/', $prompt, $res)) {
+ $return = $res[1];
+ }
+
+ return $return;
+ }
+
+ function sendCommand($cmd, $arg)
+ {
+ $line = $cmd . ' ' . $arg . "\r\n";
+ fputs($this->fp, $line);
+ return $this->getPrompt();
+ }
+
+ function changePassword($user_name, $old_password, $new_password)
+ {
+ $server = isset($this->_params['host']) ? $this->_params['host'] : '';
+ $port = isset($this->_params['port']) ? $this->_params['port'] : '';
+ $timeout = isset($this->_params['timeout']) ? $this->_params['timeout'] : '';
+
+ if ($server == '' || $port == '') {
+ $this->_errorstr = _("Password module is not properly configured");
+ return false;
+ }
+
+ $return_value = false;
+ if ($this->connect($server, $port, $timeout) == $this->ftpd_connected) {
+ if ($this->sendCommand('user', $user_name) == $this->ftpd_usernameok) {
+ if ($this->sendCommand('pass', $old_password) == $this->ftpd_passwordok) {
+ if ($this->sendCommand('site pswd', '"'.$old_password.'" "'.$new_password.'"') == $this->ftpd_passwordok) {
+ $return_value = true;
+ }
+ }
+ }
+
+ $this->_disconnect();
+ }
+
+ return $return_value;
+ }
+
+ function checkPassword($user_name, $user_password)
+ {
+ $server = isset($this->_params['host']) ? $this->_params['host'] : '';
+ $port = isset($this->_params['port']) ? $this->_params['port'] : '';
+ $timeout = isset($this->_params['timeout']) ? $this->_params['timeout'] : '';
+
+ if ($server == '' || $port == '') {
+ $this->_errorstr = _("Password module is not properly configured.");
+ return false;
+ }
+
+ $return_value = false;
+
+ if ($this->connect($server, $port, $timeout) == $this->ftpd_connected) {
+ if ($this->sendCommand('user', $user_name) == $this->ftpd_usernameok) {
+ if ($this->sendCommand('pass', $user_password) == $this->ftpd_passwordok) {
+ $return_value = true;
+ }
+ }
+
+ $this->_disconnect();
+ } else {
+ // Cannot connect.
+ $return_value = -1;
+ }
+
+ return $return_value;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * @package Passwd
+ *
+ * $Horde: passwd/lib/Driver/smbldap.php,v 1.7.2.7 2009/11/09 13:31:12 jan Exp $
+ */
+
+/** Passwd_Driver_ldap */
+require_once dirname(__FILE__) . '/ldap.php';
+
+/**
+ * The LDAP class attempts to change a user's LDAP password and Samba password
+ * stored in an LDAP directory service.
+ *
+ * Copyright 2004-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Shane Boulter <sboulter@ariasolutions.com>
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Tjeerd van der Zee <admin@xar.nl>
+ * @author Mattias Webjörn Eriksson <mattias@webjorn.org>
+ * @author Eric Jon Rostetter <eric.rostetter@physics.utexas.edu>
+ * @since Passwd 3.0
+ * @package Passwd
+ */
+class Passwd_Driver_smbldap extends Passwd_Driver_ldap {
+
+ /**
+ * Constructs a new Passwd_Driver_smbldap object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_smbldap($params = array())
+ {
+ $params = array_merge(array('lm_attribute' => null,
+ 'nt_attribute' => null,
+ 'pw_set_attribute' => null,
+ 'pw_expire_attribute' => null,
+ 'pw_expire_time' => null,
+ 'smb_objectclass' => 'sambaSamAccount'),
+ $params);
+ parent::Passwd_Driver_ldap($params);
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ $result = parent::changePassword($username, $old_password, $new_password);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ // Return success if the user is not a Samba user
+ if (!@ldap_compare($this->_ds, $this->_userdn, 'objectClass', $this->_params['smb_objectclass'])) {
+ return true;
+ }
+
+ require_once 'Crypt/CHAP.php';
+ $hash = new Crypt_CHAP_MSv2();
+ $hash->password = $new_password;
+ $lmpasswd = strtoupper(bin2hex($hash->lmPasswordHash()));
+ $ntpasswd = strtoupper(bin2hex($hash->ntPasswordHash()));
+ $settime = time();
+
+ if (!is_null($this->_params['pw_expire_time'])) {
+ // 24 hours/day * 60 min/hour * 60 secs/min = 86400 seconds/day
+ $expiretime = $settime + ($this->_params['pw_expire_time'] * 86400);
+ } else {
+ // This is NT's version of infinity time:
+ // http://lists.samba.org/archive/samba/2004-January/078175.html
+ $expiretime = 2147483647;
+ }
+
+ // All changes must succeed or fail together. Attributes with
+ // null name are not updated.
+ $changes = array();
+ if (!is_null($this->_params['lm_attribute'])) {
+ $changes[$this->_params['lm_attribute']] = $lmpasswd;
+ }
+ if (!is_null($this->_params['nt_attribute'])) {
+ $changes[$this->_params['nt_attribute']] = $ntpasswd;
+ }
+ if (!is_null($this->_params['pw_set_attribute'])) {
+ $changes[$this->_params['pw_set_attribute']] = $settime;
+ }
+ if (!is_null($this->_params['pw_expire_attribute'])) {
+ $changes[$this->_params['pw_expire_attribute']] = $expiretime;
+ }
+
+ if (count($changes) > 0) {
+ if (!ldap_mod_replace($this->_ds, $this->_userdn, $changes)) {
+ return PEAR::raiseError(ldap_error($this->_ds));
+ }
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The smbpassd class attempts to change a user's password on a samba server.
+ *
+ * $Horde: passwd/lib/Driver/smbpasswd.php,v 1.22.2.5 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Rene Lund Jensen <Rene@lundjensen.net>
+ * @package Passwd
+ */
+class Passwd_Driver_smbpasswd extends Passwd_Driver {
+
+ /**
+ * Socket connection resource.
+ *
+ * @var resource
+ */
+ var $_fp;
+
+ /**
+ * Constructs a new smbpasswd Passwd_Driver object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_smbpasswd($params = array())
+ {
+ $this->_params = array_merge(array('host' => 'localhost',
+ 'program' => '/usr/bin/smbpasswd'),
+ $params);
+ }
+
+ /**
+ * Connects a pipe to the sambaserver using the smbpasswd program.
+ *
+ * @param string $user The user to change the password for
+ * @param string $tmpfile The name of a temporary file in which to write
+ * output.
+ * @return mixed True on success, PEAR_Error on failure
+ */
+ function _connect($user, $tmpfile)
+ {
+ if (!is_executable($this->_params['program'])) {
+ return PEAR::raiseError(_("Passwd is not properly configured."));
+ }
+
+ $cmd = sprintf('%s -r %s -s -U "%s" > %s 2>&1',
+ $this->_params['program'],
+ $this->_params['host'],
+ $user,
+ $tmpfile);
+ $this->_fp = @popen($cmd, 'w');
+ if (!$this->_fp) {
+ return PEAR::raiseError(_("Could not open pipe to smbpasswd."));
+ }
+
+ return true;
+ }
+
+ /**
+ * Disconnects the pipe to the sambaserver.
+ */
+ function _disconnect()
+ {
+ @pclose($this->_fp);
+ }
+
+ /**
+ * Sends a string to the waiting sambaserver.
+ *
+ * @param string $cmd The string to send to the server.
+ */
+ function _sendCommand($cmd)
+ {
+ if (fputs($this->_fp, $cmd . "\n") == -1) {
+ return PEAR::raiseError(_("Error sending data to smbpasswd."));
+ }
+ sleep(1);
+ return true;
+ }
+
+ /**
+ * Changes the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return mixed True or PEAR_Error based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ $res = true;
+
+ // Clean up user name in case evil characters are in it.
+ $user = escapeshellcmd($username);
+
+ $tmpfile = Horde::getTempFile('smbpasswd');
+ if (is_a($tmpfile, 'PEAR_Error')) {
+ return $tmpfile;
+ }
+
+ $res = $this->_connect($user, $tmpfile);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $res = $this->_sendCommand($old_password);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $res = $this->_sendCommand($new_password);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $res = $this->_sendCommand($new_password);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ $this->_disconnect();
+
+ $res = file($tmpfile);
+ if (strstr($res[count($res) - 1], 'Password changed for user') === false) {
+ return PEAR::raiseError(strrchr(trim($res[count($res) - 2]), ':'));
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The SOAP driver attempts to change a user's password through a SOAP
+ * request.
+ *
+ * $Horde: passwd/lib/Driver/soap.php,v 1.1.2.1 2009/06/10 08:20:39 jan Exp $
+ *
+ * Copyright 2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Jan Schneider <jan@horde.org>
+ * @package Passwd
+ */
+class Passwd_Driver_soap extends Passwd_Driver {
+
+ /**
+ * Constructor.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_soap($params = array())
+ {
+ if (isset($params['wsdl'])) {
+ unset($params['soap_params']['location']);
+ unset($params['soap_params']['uri']);
+ }
+ if (!empty($GLOBALS['conf']['http']['proxy']['proxy_host'])) {
+ $params['soap_params']['proxy_host'] = $GLOBALS['conf']['http']['proxy']['proxy_host'];
+ $params['soap_params']['proxy_port'] = $GLOBALS['conf']['http']['proxy']['proxy_port'];
+ $params['soap_params']['proxy_login'] = $GLOBALS['conf']['http']['proxy']['proxy_user'];
+ $params['soap_params']['proxy_password'] = $GLOBALS['conf']['http']['proxy']['proxy_pass'];
+ }
+ $params['soap_params']['encoding'] = NLS::getCharset();
+ $params['soap_params']['exceptions'] = false;
+ parent::Passwd_Driver($params);
+ }
+
+ /**
+ * Changes the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return mixed True on success, PEAR_Error on failure.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ if (!class_exists('SoapClient')) {
+ return PEAR::raiseError('You need the soap PHP extension to use this driver.');
+ }
+ if (empty($this->_params['wsdl']) &&
+ (empty($this->_params['soap_params']['location']) ||
+ empty($this->_params['soap_params']['uri']))) {
+ return PEAR::raiseError('Either the "wsdl" or the "location" and "uri" parameter must be provided.');
+ }
+
+ $args = array();
+ if (($pos = array_search('username', $this->_params['arguments'])) !== false) {
+ $args[$pos] = $username;
+ }
+ if (($pos = array_search('oldpassword', $this->_params['arguments'])) !== false) {
+ $args[$pos] = $old_password;
+ }
+ if (($pos = array_search('newpassword', $this->_params['arguments'])) !== false) {
+ $args[$pos] = $new_password;
+ }
+
+ $client = new SoapClient($this->_params['wsdl'],
+ $this->_params['soap_params']);
+ $result = $client->__soapCall($this->_params['method'], $args);
+ if (is_a($result, 'SoapFault')) {
+ return PEAR::raiseError($result->getMessage(), $result->getCode());
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The SQL driver attempts to change a user's password stored in an SQL
+ * databse and implements the Passwd_Driver API.
+ *
+ * $Horde: passwd/lib/Driver/sql.php,v 1.24.2.8 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Ilya Krel <mail@krel.org>
+ * @author Tjeerd van der Zee <admin@xar.nl>
+ * @author Mattias Webjörn Eriksson <mattias@webjorn.org>
+ * @author Eric Jon Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+class Passwd_Driver_sql extends Passwd_Driver {
+
+ /**
+ * SQL connection object.
+ *
+ * @var DB
+ */
+ var $_db;
+
+ /**
+ * State of SQL connection.
+ *
+ * @var boolean
+ */
+ var $_connected = false;
+
+ /**
+ * Constructs a new Passwd_Driver_sql object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_sql($params = array())
+ {
+ if (isset($params['phptype'])) {
+ $this->_params['phptype'] = $params['phptype'];
+ } else {
+ return PEAR::raiseError(_("Required 'phptype' not specified in Passwd SQL configuration."));
+ }
+
+ /* Use defaults from Horde, but allow overriding in backends.php. */
+ $this->_params = array_merge(Horde::getDriverConfig('', 'sql'), $params);
+
+ /* These default to matching the Auth_sql defaults. */
+ $this->_params['table'] = isset($params['table']) ? $params['table'] : 'horde_users';
+ $this->_params['encryption'] = isset($params['encryption']) ? $params['encryption'] : 'md5';
+ $this->_params['user_col'] = isset($params['user_col']) ? $params['user_col'] : 'user_uid';
+ $this->_params['pass_col'] = isset($params['pass_col']) ? $params['pass_col'] : 'user_pass';
+ $this->_params['show_encryption'] = isset($params['show_encryption']) ? $params['show_encryption'] : false;
+ $this->_params['query_lookup'] = isset($params['query_lookup']) ? $params['query_lookup'] : false;
+ $this->_params['query_modify'] = isset($params['query_modify']) ? $params['query_modify'] : false;
+ }
+
+ /**
+ * Connect to the database.
+ *
+ * @return boolean True on success or PEAR_Error on failure.
+ */
+ function _connect()
+ {
+ if (!$this->_connected) {
+ /* Connect to the SQL server using the supplied parameters. */
+ include_once 'DB.php';
+ $this->_db = &DB::connect($this->_params,
+ array('persistent' => !empty($this->_params['persistent'])));
+ if (is_a($this->_db, 'PEAR_Error')) {
+ return PEAR::raiseError(_("Unable to connect to SQL server."));
+ }
+
+ // Set DB portability options.
+ switch ($this->_db->phptype) {
+ case 'mssql':
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS | DB_PORTABILITY_RTRIM);
+ break;
+ default:
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS);
+ }
+
+ $this->_connected = true;
+ }
+
+ return true;
+ }
+
+ /**
+ * Find out if a username and password is valid.
+ *
+ * @param string $userID The userID to check.
+ * @param string $old_password An old password to check.
+ *
+ * @return boolean True on valid or PEAR_Error on invalid.
+ */
+ function _lookup($user, $old_password)
+ {
+ /* Connect to the database */
+ $res = $this->_connect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ if (!empty($this->_params['query_lookup'])) {
+ list($sql, $values) = $this->_parseQuery($this->_params['query_lookup'], $user, $old_password);
+ } else {
+ /* Build the SQL query. */
+ $sql = 'SELECT ' . $this->_params['pass_col'] . ' FROM ' . $this->_params['table'] .
+ ' WHERE ' . $this->_params['user_col'] . ' = ?';
+ $values = array($user);
+ }
+ Horde::logMessage('SQL Query by Passwd_Driver_sql::_lookup(): ' . $sql, __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ /* Execute the query. */
+ $result = $this->_db->query($sql, $values);
+ if (!is_a($result, 'PEAR_Error')) {
+ $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
+ $result->free();
+ if (is_array($row)) {
+ /* Get the password from the database. */
+ if (!isset($row[$this->_params['pass_col']])) {
+ return PEAR::raiseError(sprintf(_("Password column \"%s\" not found in password table."), $this->_params['pass_col']));
+ }
+ $current_password = $row[$this->_params['pass_col']];
+
+ /* Check the passwords match. */
+ return $this->comparePasswords($current_password, $old_password);
+ }
+ }
+ return PEAR::raiseError(_("User not found"));
+ }
+
+ /**
+ * Modify (update) a mysql password record for a user.
+ *
+ * @param string $user The user whose record we will udpate.
+ * @param string $new_password The new password value to set.
+ *
+ * @return boolean True or False based on success of the modify.
+ */
+ function _modify($user, $new_password)
+ {
+ /* Connect to the database. */
+ $res = $this->_connect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ if (!empty($this->_params['query_modify'])) {
+ list($sql, $values) = $this->_parseQuery($this->_params['query_modify'], $user, $new_password);
+ } else {
+ /* Encrypt the password. */
+ $new_password = $this->encryptPassword($new_password, $this->_params['show_encryption']);
+
+ /* Build the SQL query. */
+ $sql = 'UPDATE ' . $this->_params['table'] .
+ ' SET ' . $this->_params['pass_col'] . ' = ?' .
+ ' WHERE ' . $this->_params['user_col'] . ' = ?';
+ $values = array($new_password, $user);
+ }
+ Horde::logMessage('SQL Query by Passwd_Driver_sql::_modify(): ' . $sql, __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ /* Execute the query. */
+ $result = $this->_db->query($sql, $values);
+
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Parse the string as an SQL query substituting placeholders for
+ * their values.
+ *
+ * @param string $string The string to process as a query.
+ * @param string $user The user to use for the %u placeholder.
+ * @param string $password The password to use for the %p and %e placeholders.
+ *
+ * @return string The processed SQL query.
+ */
+ function _parseQuery($string, $user, $password)
+ {
+ $query = '';
+ $values = array();
+ $length = strlen($string);
+ @list($username, $domain) = explode('@', $user);
+ for ($i = 0; $i < $length; $i++) {
+ if ($string[$i] == '%' && !empty($string[$i + 1])) {
+ switch ($string[++$i]) {
+ case 'd':
+ $query .= '?';
+ $values[] = $domain;
+ break;
+
+ case 'u':
+ $query .= '?';
+ $values[] = $user;
+ break;
+
+ case 'U':
+ $query .= '?';
+ $values[] = $username;
+ break;
+
+ case 'p':
+ $query .= '?';
+ $values[] = $password;
+ break;
+
+ case 'e':
+ $query .= '?';
+ $values[] = $this->encryptPassword($password, $this->_params['show_encryption']);
+ break;
+
+ case '%':
+ $query .= '%';
+ break;
+
+ default:
+ $query .= '%' . $string[$i];
+ break;
+ }
+ } else {
+ $query .= $string[$i];
+ }
+ }
+
+ return array($query, $values);
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ /* Check the current password. */
+ $res = $this->_lookup($username, $old_password);
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ return $this->_modify($username, $new_password);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The vmailmgr class attempts to change a user's password on a local vmailmgr
+ * daemon
+ *
+ * $Horde: passwd/lib/Driver/vmailmgr.php,v 1.11.2.7 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Marco Kaiser <bate@php.net>
+ * @since Passwd 2.2
+ * @package Passwd
+ */
+ class Passwd_Driver_vmailmgr extends Passwd_Driver {
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ if (is_readable($this->_params['vmailinc']) && isset($this->_params['vmailinc'])) {
+ @include($this->_params['vmailinc']);
+ } else {
+ return PEAR::raiseError('vmail.inc not found ! (' . $this->_params['vmailinc'] . ')');
+ }
+
+ $_splitted = explode('@', $username);
+ $_username = $_splitted[0];
+ $_domain = $_splitted[1];
+ $_returnChange = vchpass($_domain, $old_password, $_username, $new_password);
+
+ if ($_returnChange[0]) {
+ return PEAR::raiseError(_("Incorrect old password."));
+ }
+
+ return true;
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * The vpopmail class attempts to change a user's password for vpopmail based
+ * servers. It is very similar to the more generic sql driver, and the two
+ * should probably be merged into one driver if possible.
+ *
+ * $Horde: passwd/lib/Driver/vpopmail.php,v 1.17.2.6 2009/01/06 15:25:23 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Anton Nekhoroshikh <anton@valuehost.ru>
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @author Ilya Krel <mail@krel.org>
+ * @author Tjeerd van der Zee <admin@xar.nl>
+ * @author Mattias Webjörn Eriksson <mattias@webjorn.org>
+ * @author Eric Jon Rostetter <eric.rostetter@physics.utexas.edu>
+ * @since Passwd 2.2
+ * @package Passwd
+ */
+class Passwd_Driver_vpopmail extends Passwd_Driver {
+
+ /**
+ * SQL connection object.
+ *
+ * @var DB
+ */
+ var $_db;
+
+ /**
+ * State of SQL connection.
+ *
+ * @var boolean
+ */
+ var $_connected = false;
+
+ /**
+ * Constructs a new Passwd_Driver_vpopmail object.
+ *
+ * @param array $params A hash containing connection parameters.
+ */
+ function Passwd_Driver_vpopmail($params = array())
+ {
+ if (isset($params['phptype'])) {
+ $this->_params['phptype'] = $params['phptype'];
+ } else {
+ return PEAR::raiseError(_("Required 'phptype' not specified in SQL configuration."));
+ }
+
+ /* Use defaults from Horde. */
+ $defaults = Horde::getDriverConfig('', 'sql');
+ $this->_params['hostspec'] = isset($params['hostspec']) ? $params['hostspec'] : $defaults['hostspec'];
+ $this->_params['protocol'] = isset($params['protocol']) ? $params['protocol'] : $defaults['protocol'];
+ $this->_params['username'] = isset($params['username']) ? $params['username'] : $defaults['username'];
+ $this->_params['password'] = isset($params['password']) ? $params['password'] : $defaults['password'];
+ $this->_params['database'] = isset($params['database']) ? $params['database'] : $defaults['database'];
+
+ /* Defaults to match Auth::sql default. */
+ $this->_params['table'] = isset($params['table']) ? $params['table'] : 'horde_users';
+ $this->_params['encryption'] = isset($params['encryption']) ? $params['encryption'] : 'crypt';
+ $this->_params['name'] = isset($params['name']) ? $params['name'] : 'pw_name';
+ $this->_params['domain'] = isset($params['domain']) ? $params['domain'] : 'pw_domain';
+ $this->_params['passwd'] = isset($params['passwd']) ? $params['passwd'] : 'pw_passwd';
+ $this->_params['clear_passwd'] = isset($params['clear_passwd']) ? $params['clear_passwd'] : 'pw_clear_passwd';
+ $this->_params['use_clear_passwd'] = isset($params['use_clear_passwd']) ? $params['use_clear_passwd'] : false;
+ $this->_params['show_encryption'] = isset($params['show_encryption']) ? $params['show_encryption'] : false;
+ }
+
+ /**
+ * Connect to the database.
+ *
+ * @return boolean True on success or PEAR_Error on failure.
+ */
+ function _connect()
+ {
+ if (!$this->_connected) {
+ /* Connect to the SQL server using the supplied parameters. */
+ include_once 'DB.php';
+ $this->_db = &DB::connect($this->_params, true);
+ if (is_a($this->_db, 'PEAR_Error')) {
+ return PEAR::raiseError(_("Unable to connect to SQL server."));
+ }
+
+ // Set DB portability options.
+ switch ($this->_db->phptype) {
+ case 'mssql':
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS | DB_PORTABILITY_RTRIM);
+ break;
+ default:
+ $this->_db->setOption('portability', DB_PORTABILITY_LOWERCASE | DB_PORTABILITY_ERRORS);
+ }
+
+ $this->_connected = true;
+ }
+
+ return true;
+ }
+
+ /**
+ * Find out if a username and password is valid.
+ *
+ * @param string $username The username to check.
+ * @param string $old_password An old password to check.
+ *
+ * @return boolean True on valid or PEAR_Error on invalid.
+ */
+ function _lookup($username, $old_password)
+ {
+ /* Connect to the database. */
+ $res = $this->_connect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ /* Only split up username if domain is set in backend
+ * configuration. */
+ if (!empty($this->_params['domain'])) {
+ list($name, $domain) = explode('@', $username);
+ } else {
+ $name = $username;
+ }
+
+ /* Build the SQL query. */
+ $sql = 'SELECT ' . $this->_params['passwd'] .
+ ' FROM ' . $this->_params['table'] .
+ ' WHERE ' . $this->_params['name'] . ' = ?';
+ $values = array($name);
+ if ($this->_params['domain']) {
+ $sql .= ' AND ' . $this->_params['domain'] . ' = ?';
+ $values[] = $domain;
+ }
+ Horde::logMessage('SQL Query by Passwd_Driver_vpopmail::_lookup(): ' . $sql, __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ /* Execute the query. */
+ $result = $this->_db->query($sql, $values);
+ if (!is_a($result, 'PEAR_Error')) {
+ $row = $result->fetchRow(DB_FETCHMODE_ASSOC);
+ $result->free();
+ if (is_array($row)) {
+ /* Get the password from the database. */
+ $current_password = $row[$this->_params['passwd']];
+
+ /* See if the passwords match. */
+ return $this->comparePasswords($current_password, $old_password);
+ }
+ }
+
+ return PEAR::raiseError(_("User not found"));
+ }
+
+ /**
+ * Modify (update) a mysql password record for a user.
+ *
+ * @param string $username The user whose record we will udpate.
+ * @param string $new_password The new password value to set.
+ *
+ * @return boolean True or False based on success of the modify.
+ */
+ function _modify($username, $new_password)
+ {
+ /* Connect to the database. */
+ $res = $this->_connect();
+ if (is_a($res, 'PEAR_Error')) {
+ return $res;
+ }
+
+ /* Only split up username if domain is set in backend. */
+ if ($this->_params['domain']) {
+ list($name, $domain) = explode('@', $username);
+ } else {
+ $name = $username;
+ }
+
+ /* Encrypt the password. */
+ $clear_password = $new_password;
+ $new_password = $this->encryptPassword($new_password, $this->_params['show_encryption']);
+
+ /* Build the SQL query. */
+ $sql = 'UPDATE ' . $this->_params['table'] .
+ ' SET ' . $this->_params['passwd'] . ' = ?';
+ $values = array($new_password);
+ if ($this->_params['use_clear_passwd']) {
+ $sql .= ', ' . $this->_params['clear_passwd'] . ' = ?';
+ $values[] = $clear_password;
+ }
+ $sql .= ' WHERE ' . $this->_params['name'] . ' = ?';
+ $values[] = $name;
+ if ($this->_params['domain']) {
+ $sql .= ' AND ' . $this->_params['domain'] . ' = ?';
+ $values[] = $domain;
+ }
+ Horde::logMessage('SQL Query by Passwd_Driver_vpopmail::_modify(): ' . $sql, __FILE__, __LINE__, PEAR_LOG_DEBUG);
+
+ /* Execute the query. */
+ $result = $this->_db->query($sql, $values);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Change the user's password.
+ *
+ * @param string $username The user for which to change the password.
+ * @param string $old_password The old (current) user password.
+ * @param string $new_password The new user password to set.
+ *
+ * @return boolean True or false based on success of the change.
+ */
+ function changePassword($username, $old_password, $new_password)
+ {
+ /* Check the current password. */
+ $result = $this->_lookup($username, $old_password);
+ if (is_a($result, 'PEAR_Error')) {
+ return $result;
+ }
+
+ return $this->_modify($username, $new_password);
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Passwd Base Class.
+ *
+ * $Horde: passwd/lib/Passwd.php,v 1.12.2.5 2009/01/06 15:25:21 jan Exp $
+ *
+ * Copyright 2000-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Mike Cochrane <mike@graftonhall.co.nz>
+ * @package Passwd
+ */
+class Passwd {
+
+ /**
+ * Determines if the given backend is the "preferred" backend for
+ * this web server. This decision is based on the global
+ * 'SERVER_NAME' and 'HTTP_HOST' server variables and the contents
+ * of the 'preferred' field in the backend's definition. The
+ * 'preferred' field may take a single value or an array of
+ * multiple values.
+ *
+ * @param array $backend A complete backend entry from the $backends
+ * hash.
+ *
+ * @return boolean True if this entry is "preferred".
+ */
+ function isPreferredBackend($backend)
+ {
+ if (!empty($backend['preferred'])) {
+ if (is_array($backend['preferred'])) {
+ foreach ($backend['preferred'] as $backend) {
+ if ($backend == $_SERVER['SERVER_NAME'] ||
+ $backend == $_SERVER['HTTP_HOST']) {
+ return true;
+ }
+ }
+ } elseif ($backend['preferred'] == $_SERVER['SERVER_NAME'] ||
+ $backend['preferred'] == $_SERVER['HTTP_HOST']) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Change the Horde/IMP/MIMP cached credentials. Should be called
+ * only after a successful change of the password in the actual
+ * backend storage. This routine is the same for all backends and
+ * should not be implemented in the backend classes.
+ *
+ * @param string $username The username we're changing.
+ * @param string $oldpassword The old user password.
+ * @param string $new_password The new user password to set.
+ */
+ function resetCredentials($old_password, $new_password)
+ {
+ if (Auth::getCredential('password') == $old_password) {
+ Auth::setCredential('password', $new_password);
+ if (Auth::getProvider() == 'imp') {
+ $_SESSION['imp']['pass'] = Secret::write(Secret::getKey('imp'),
+ $new_password);
+ } elseif (Auth::getProvider() == 'mimp') {
+ $_SESSION['mimp']['pass'] = Secret::write(Secret::getKey('mimp'),
+ $new_password);
+ }
+ }
+ }
+
+}
--- /dev/null
+<?php
+/**
+ * Passwd base inclusion file.
+ *
+ * This file brings in all of the dependencies that every PASSWD script will
+ * need, and sets up objects that all scripts use.
+ *
+ * $Horde: passwd/lib/base.php,v 1.33.2.7 2009/10/19 23:34:20 jan Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @author Eric Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+
+// Check for a prior definition of HORDE_BASE (perhaps by an
+// auto_prepend_file definition for site customization).
+if (!defined('HORDE_BASE')) {
+ @define('HORDE_BASE', dirname(__FILE__) . '/../..');
+}
+
+// Load the Horde Framework core, and set up inclusion paths.
+require_once HORDE_BASE . '/lib/core.php';
+
+// Registry.
+$registry = &Registry::singleton();
+if (is_a(($pushed = $registry->pushApp('passwd', !defined('AUTH_HANDLER'))), 'PEAR_Error')) {
+ if ($pushed->getCode() == 'permission_denied') {
+ Horde::authenticationFailureRedirect();
+ }
+ Horde::fatal($pushed, __FILE__, __LINE__, false);
+}
+$conf = &$GLOBALS['conf'];
+@define('PASSWD_TEMPLATES', $registry->get('templates'));
+
+// Notification system.
+$notification = &Notification::singleton();
+$notification->attach('status');
+
+// Find the base file path of Passwd
+@define('PASSWD_BASE', dirname(__FILE__) . '/..');
+
+// Passwd base library.
+require_once PASSWD_BASE . '/lib/Passwd.php';
+
+// Start compression.
+if (!Util::nonInputVar('no_compress')) {
+ Horde::compressOutput();
+}
+
+// Horde libraries.
+require_once 'Horde/Help.php';
+require_once 'Horde/Secret.php';
--- /dev/null
+<?php define('PASSWD_VERSION', 'H3 (3.1.4-cvs)') ?>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- $Horde: passwd/locale/de_DE/help.xml,v 1.1.2.1 2008/10/09 17:12:07 jan Exp $ -->
+<help>
+ <entry id="passwd-username" md5="2890a9812d76074ffb3e35957eea967d" state="uptodate">
+ <title>Benutzername</title>
+ <para>Geben Sie hier Ihren Benutzernamen an, falls er nicht bereits
+ eingetragen ist. Dieses Feld steht nicht auf allen Systemen zur
+ Verfügung.</para>
+ </entry>
+ <entry id="passwd-old-password" md5="ec1429987f88cbd404d0efb2fd57df2c" state="uptodate">
+ <title>Altes Passwort</title>
+ <para>Geben Sie hier Ihr aktuelles, funktionierendes Passwort an. Sie
+ müssen Ihr Passwort korrekt angeben, um es ändern zu können.</para>
+ </entry>
+ <entry id="passwd-new-password" md5="8fe6f2254a9d10984fa8ba876f148b53" state="uptodate">
+ <title>Neues Passwort</title>
+ <para>Geben Sie hier Ihr neues Passwort an, also den Wert, in den Sie Ihr
+ Passwort ändern möchten. Beachten Sie, dass Ihr Passwort minimalen
+ Voraussetzungen entsprechen muss, z.B. genügend lang sein muss, aus
+ Kombinationen von Buchstaben und anderen Zeichen bestehen muss, nicht
+ Ihrem Benutzernamen entsprechen darf usw. Anderenfalls erhalten Sie eine
+ Fehlermeldung.</para>
+ </entry>
+ <entry id="passwd-confirm-password" md5="38caae4b775cceda60bbc3c183a78fcb" state="uptodate">
+ <title>Neues Passwort betätigen</title>
+ <para>Geben Sie hier Ihr neue Passwort ein zweites Mal an. Damit wird
+ verhindert, dass Sie sich vertippen und dadurch selbst von Ihrem Konto
+ ausschließen.</para>
+ </entry>
+ <entry id="passwd-server" md5="164edb880db7297eb259816ea42c0f8f" state="uptodate">
+ <title>Passwort ändern auf</title>
+ <para>Wählen Sie den Server oder die Anwendung aus, für die Sie Ihr
+ Passwort ändern möchten. Dieses Feld steht nicht auf allen Systemen zur
+ Verfügung.</para>
+ </entry>
+ <entry id="Change-your-password" md5="186993a347a9ad4d9cd2cbeead7f6e4e" state="uptodate">
+ <title>Passwort ändern</title>
+ <para>Drücken Sie den "Passwort ändern"-Knopf am Ende des Formulars, um
+ das Passwort wie angegeben zu ändern.</para>
+ </entry>
+ <entry id="reset" md5="87302fbc89b897c8d78445eb3e624d5e" state="uptodate">
+ <title>Zurücksetzen</title>
+ <para>Drücken Sie den "Zurücksetzen"-Knopf am Ende des Formulars, um alle
+ Formulardaten, die Sie bisher eingegeben haben zu löschen und von vorne zu
+ beginnen.</para>
+ </entry>
+</help>
--- /dev/null
+<?xml version='1.0'?>
+<!-- $Horde: passwd/locale/en_US/help.xml,v 1.7.2.2 2008/10/09 17:12:08 jan Exp $ -->
+<help>
+ <entry id="passwd-username">
+ <title>Username</title>
+ <para>Enter your username here (if it is not already prefilled). Not all
+ installations support this.</para>
+ </entry>
+ <entry id="passwd-old-password">
+ <title>Old password</title>
+ <para>Enter your current, working login password here. You must correctly
+ enter your current login password, or you cannot change your
+ password.</para>
+ </entry>
+ <entry id="passwd-new-password">
+ <title>New password</title>
+ <para>Enter the new password, that is what you want to change your
+ password to. Note that the password entered must meet some minimum
+ standards (sufficient length, not match your username, have a combination
+ of letters and other characters, etc) or you will get an error.</para>
+ </entry>
+ <entry id="passwd-confirm-password">
+ <title>Confirm new password</title>
+ <para>Enter the new password a second time in the Confirm New Password
+ area. This is to make sure you don't make a typo or other mistake and
+ lock you out of your account.</para>
+ </entry>
+ <entry id="passwd-server">
+ <title>Change password on</title>
+ <para>Select the server or application in which you want to change the
+ password. Not all installations support this.</para>
+ </entry>
+ <entry id="Change-your-password">
+ <title>Change password</title>
+ <para>Press the "Change your password" button at the bottom of the form
+ to submit your password request change to the system. This button tells
+ the system to actually change your password.</para>
+ </entry>
+ <entry id="reset">
+ <title>Reset</title>
+ <para>Use the Reset button at the bottom of the form to clear any form
+ data that you have entered and start over.</para>
+ </entry>
+</help>
--- /dev/null
+<?xml version='1.0'?>
+<!-- $Horde: passwd/locale/es_ES/help.xml,v 1.1.2.2 2008/10/09 17:12:09 jan Exp $ -->
+<help>
+ <entry id="passwd-username">
+ <title>Nombre de usuario</title>
+ <para>Introduzca aquí su nombre de usuario (si no estaba ya relleno). No todas las instalaciones permiten ésto.</para>
+ </entry>
+ <entry id="passwd-old-password">
+ <title>Antigua contraseña</title>
+ <para>Introduzca aquí su contraseña de inicio funcional actual. Tiene que introducir correctamente la contraseña de inicio actual o no podrá cambiarla.</para>
+ </entry>
+ <entry id="passwd-new-password">
+ <title>Nueva contraseña</title>
+ <para>Introduzca la nueva contraseña a la que quiera cambiar. Observe que la contraseña introducida tiene que cumplir unos estándares mínimos (longitud suficiente, distinta del nombre de usuario, disponer de una combinación de letrar y otros caracteres, etc.) o se producirá un error.</para>
+ </entry>
+ <entry id="passwd-confirm-password">
+ <title>Confirmar la nueva contraseña</title>
+ <para>Introduzca la nueva contraseña una segunda vez en el campo Confirmar la nueva contraseña. Ésto evitará la introdución de un error de escritura o de cualquier otro tipo con el consiguiente bloqueo de su cuenta.</para>
+ </entry>
+ <entry id="passwd-server">
+ <title>Cambiar contraseña en</title>
+ <para>Seleccione el servidor o aplicación en el que quiera cambiar la contraseña. No todas las instalaciones permiten ésto.</para>
+ </entry>
+ <entry id="Change-your-password">
+ <title>Cambiar la contraseña</title>
+ <para>Pulse el botón "Cambiar la contraseña" de la parte inferior del formulario para enviar la solicitud de cambio de contraseña al sistema. Este botón indica al sistema que cambie la contraseña.</para>
+ </entry>
+ <entry id="reset">
+ <title>Limpiar</title>
+ <para>Utilice el botón Limpiar de la parte inferior del formulario para eliminar cualquier dato introducido y empezar de nuevo.</para>
+ </entry>
+</help>
--- /dev/null
+<?xml version='1.0'?>\r
+<!-- $Horde: passwd/locale/fa_IR/help.xml,v 1.1 2005/04/21 01:38:40 persian-horde in MetaNET -->\r
+<help>\r
+\r
+<entry id="passwd-username">\r
+ <title>نام کاربر</title>\r
+ <heading>نام کاربری شما</heading>\r
+ <para>\r
+ نام کاربری خود را در اين قسمت وارد نماييد. \r
+ </para>\r
+</entry>\r
+\r
+\r
+<entry id="passwd-old-password">\r
+ <title>اسم رمز قبلی</title>\r
+ <heading>اسم رمز قبلی</heading>\r
+ <para>\r
+ اسم رمز فعلی خود را در اين قسمت وارد نماييد. اگر اسم رمز فعلی خود را به درستی وارد ننمائيد تغيير اسم رمز عبور ممکن نخواهد بود. \r
+ </para>\r
+</entry>\r
+\r
+<entry id="passwd-new-password">\r
+ <title>اسم رمز جديد</title>\r
+ <heading>اسم رمز جديد</heading>\r
+ <para>\r
+ اسم رمز جديد خود را وارد نمائيد. توجه داشته باشيد که اسم رمز جديد شما بايد برخی از استانداردهای ساده چون \r
+ حداقل طول مجاز، عدم يکسان بودن با نام کاربری شما، وجود ترکيبی از حروف الفبايي و عددی در آن و ... را رعايت نمايد. \r
+ </para>\r
+</entry>\r
+\r
+<entry id="passwd-confirm-password">\r
+ <title>تأييد اسم رمز جديد </title>\r
+ <heading>تأييد اسم رمز جديد</heading>\r
+ <para>\r
+ اسم رمز جديد خود را دوباره وارد نماييد. اين عمل برای اطمينان از صحت ورود اسم رمز جديد شما صورت میپذيرد.\r
+ </para>\r
+</entry>\r
+\r
+<entry id="Change-your-password">\r
+ <title>تغيير اسم رمز شما</title>\r
+ <heading>تغيير اسم رمز شما</heading>\r
+ <para>\r
+ کليد تغيير اسم رمز را به منظور تغيير اسم رمز خود بفشاريد \r
+ </para>\r
+</entry>\r
+\r
+<entry id="reset">\r
+ <title>باز نشانی</title>\r
+ <heading>باز نشانی</heading>\r
+ <para>\r
+ اين کليد را برای آغاز مجدد و پاک کردن کليه اطلاعات وارده قبلی بفشاريد.\r
+ </para>\r
+</entry>\r
+\r
+</help>\r
--- /dev/null
+<?xml version="1.0"?>
+<!-- $Horde: passwd/locale/fi_FI/help.xml,v 1.5.2.3 2008/10/09 17:12:10 jan Exp $ -->
+<help>
+ <entry id="passwd-username" md5="2890a9812d76074ffb3e35957eea967d" state="uptodate">
+ <title>Käyttäjätunnus</title>
+ <heading>Käyttäjätunnuksesi</heading>
+ <para>
+ Laita tähän tarvittaessa käyttäjätunnuksesi (kenttä saattaa myös olla jo täytetty valmiiksi).
+ </para>
+</entry>
+ <entry id="passwd-old-password" md5="5e55cb125b5778caaf1a51afca92ab59" state="uptodate">
+ <title>Vanha salasana</title>
+ <heading>Vanha salasana</heading>
+ <para>
+ Laita tähän nykyinen, toimiva salasanasi. Sinun pitää kirjoittaa salasanasi oikein tai et pysty vaihtamaan salasanaasi.
+ </para>
+</entry>
+ <entry id="passwd-new-password" md5="8fe6f2254a9d10984fa8ba876f148b53" state="uptodate">
+ <title>Uusi salasana</title>
+ <heading>Uusi salasana</heading>
+ <para>
+ Kirjoita tähän uusi salasanasi, tämä tulee olemaan uusi salasanasi. Huomaathan että salasanasi pitää täytää tietyt minimivaatimukset (tarpeeksi pitkä, ei saa olla käyttäjätunnuksesi tai nimesi, salasanan pitää sisältää kirjaimia, numeroita ja muita merkkejä jne.) tai muuten tulee virheilmoitus ja salasanaa ei saa vaihdettua.
+ </para>
+</entry>
+ <entry id="passwd-confirm-password" md5="38caae4b775cceda60bbc3c183a78fcb" state="uptodate">
+ <title>Vahvista uusi salasana</title>
+ <heading>Vahvista uusi salasana</heading>
+ <para>
+ Kirjoita tähän uusi salasanasi toiseen kertaan. Tämä varmistus tehdään siksi että et tule vahingossa tehneeksi kirjoitusvirhettä uuteen salasanaasi ja siten tulisit lukinneeksi tunnuksesi.
+ </para>
+</entry>
+ <entry id="passwd-server" state="uptodate" md5="164edb880db7297eb259816ea42c0f8f">
+ <title>Vaihda salasana järjestelmässä</title>
+ <heading>Vaihda salasana järjestelmässä</heading>
+ <para>
+ Voit valita sen järjestelmän, johon salasana vaihdetaan. Kaikki järjestelmät eivät tue tätä toimintoa.
+ </para>
+</entry>
+ <entry id="Change-your-password" md5="186993a347a9ad4d9cd2cbeead7f6e4e" state="uptodate">
+ <title>Vaihda salasanasi</title>
+ <heading>Vaihda salasanasi</heading>
+ <para>
+ Napsauta "Vaihda salasanasi" -painiketta sivun alalaidassa lähettääksesi salasananvaihtopyynnön. Vasta tämän painikkeen painamisen jälkeen salasananvaihtopyyntö lähtee palvelimelle.
+ </para>
+</entry>
+ <entry id="reset" md5="87302fbc89b897c8d78445eb3e624d5e" state="uptodate">
+ <title>Tyhjennä</title>
+ <heading>Tyhjennä</heading>
+ <para>
+ Käytä sivun alalaidassa olevaa "Tyhjennä" -painiketta tyhjentääksesi lomakkeen tiedot ja aloittaaksesi alusta.
+ </para>
+</entry>
+</help>
--- /dev/null
+<?xml version="1.0"?>
+<help>
+ <entry id="passwd-username" md5="2890a9812d76074ffb3e35957eea967d" state="uptodate">
+ <title>Korisničko ime</title>
+ <para>Unesite svoje korisničko ime (ako već nije automatski uneseno).
+ Neke instalacije ne podržavaju promjenu korisničkog imena.</para>
+ </entry>
+ <entry id="passwd-old-password" md5="5e55cb125b5778caaf1a51afca92ab59" state="uptodate">
+ <title>Stara lozinka</title>
+ <para>Ovdje unesite svoju trenutnu radeću lozinku. Promjena lozinke neće
+ uspjeti ako ne unesete ispravnu trenutnu lozinku.</para>
+ </entry>
+ <entry id="passwd-new-password" md5="8fe6f2254a9d10984fa8ba876f148b53" state="uptodate">
+ <title>Nova lozinka</title>
+ <para>Unesite novu lozinku koju želite koristiti nakon promjene.
+ Ako nova lozinka ne zadovoljava određene kriterije sigurnosti
+ (minimalna dužina, različita od korisničkog imena, određeni broj
+ slova, brojeva itd.) sustav će prijaviti grešku i promjena lozinke
+ neće uspjeti.</para>
+ </entry>
+ <entry id="passwd-confirm-password" md5="38caae4b775cceda60bbc3c183a78fcb" state="uptodate">
+ <title>Potvrda nove lozinke</title>
+ <para>Još jednom unesite novu lozinku u polje Potvrda nove lozinke.
+ Ponavljanje lozinke služi da greška u unosu nove lozinke ne promijeni
+ lozinku na pogrešnu vrijednost i time onemogući ponovnu prijavu.</para>
+ </entry>
+ <entry id="passwd-server" md5="164edb880db7297eb259816ea42c0f8f" state="uptodate">
+ <title>Promjena lozinke za</title>
+ <para>Odaberite poslužitelj ili aplikaciju za koju želite promijeniti
+ lozinku. Neke instalacije ne podržavaju promjenu ovog polja.</para>
+ </entry>
+ <entry id="Change-your-password" md5="186993a347a9ad4d9cd2cbeead7f6e4e" state="uptodate">
+ <title>Promijeni lozinku</title>
+ <para>Klik na gumb "Promijeni lozinku" pokreće proceduru promjene lozinke
+ na odabranom poslužitelju.</para>
+ </entry>
+ <entry id="reset" md5="87302fbc89b897c8d78445eb3e624d5e" state="uptodate">
+ <title>Resetiraj</title>
+ <para>Gumb Resetiraj briše sadržaj svih izmijenjenih polja i omogućava
+ ponovan unos lozinki.</para>
+ </entry>
+</help>
--- /dev/null
+<?xml version="1.0" encoding="iso-8859-2"?>
+<!-- $Horde: passwd/locale/hu_HU/help.xml,v 1.2.2.1 2008/10/09 17:12:13 jan Exp $ -->
+<help>
+ <entry id="passwd-username" md5="2be3ac45ed10bd409bbc31435c15261e" state="changed">
+ <title>Felhasználói név</title>
+ <heading>Az ön felhasználói neve</heading>
+ <para>
+ Írja be ide a felhasználói nevét (ha még nincs kitöltve)
+ </para>
+<!-- English entry:
+<entry id="passwd-username">
+ <title>Username</title>
+ <heading>Your Username</heading>
+ <para>
+ Enter your username here (if it is not already prefilled). Not all installations support this.
+ </para>
+</entry>--></entry>
+ <entry id="passwd-old-password" md5="08dcc84d98462ad590356ce6ed609c40" state="uptodate">
+ <title>Régi jelszó</title>
+ <heading>Régi jelszó</heading>
+ <para>
+ Írja be ide a mostani, működő belépési jelszavát. Helyesen kell megadnia ezt a jelszót, máskülönben nem változtatjatja meg.
+ </para>
+</entry>
+ <entry id="passwd-new-password" md5="4f24def5684976fc4e2507d839369641" state="uptodate">
+ <title>Új jelszó</title>
+ <heading>Új jelszó</heading>
+ <para>
+ Írja be ide az új jelszót, amire változtatni akar. Az új jelszónak meg kell felelni bizony minimális elvárásoknak (megfelelő hossz, nem egyezhet meg a felhasználói névvel, kell benne lenni betűnek és más karakternek is, satöbbi), különben hiba üzenetet fog kapni!
+ </para>
+</entry>
+ <entry id="passwd-confirm-password" md5="546e1b91945400f7607fa4f13364885f" state="uptodate">
+ <title>Erősítse meg az új jelszót</title>
+ <heading>Erősítse meg az új jelszót</heading>
+ <para>
+ Ide az új jelszót kell mégegyszer beirnia. Ezzel biztosítjuk, hogy egy gépelési hiba vagy más tévedés miatt nem zárja ki magát a rendszerből.
+ </para>
+</entry>
+ <entry id="passwd-server" state="new">
+ <title>Change password on</title>
+ <heading>Change password on</heading>
+ <para>
+ Select the server or application in which you want to change the password. Not all installations support this.
+ </para>
+</entry>
+ <entry id="Change-your-password" md5="81c332b6ab3a13ed0d01d08f7804d2dc" state="uptodate">
+ <title>A jelszó megváltoztatása</title>
+ <heading>A jelszó megváltoztatása</heading>
+ <para>
+ A jelszóváltoztatási kérelem elküldéséhez nyomja meg a "A jelszó megváltoztatása" gombot alul. Ennek a gombnak a megnyomása kérvényezi a konkrét változtatást.
+ </para>
+</entry>
+ <entry id="reset" md5="298d62bb8ffcc656848f87cf6f3b5a26" state="uptodate">
+ <title>Reset</title>
+ <heading>Reset</heading>
+ <para>
+ A "Reset" gomb megnyomása kitörli az eddig beírt adatokat és újrakezdi azok bekérését.
+ </para>
+</entry>
+</help>
--- /dev/null
+<?xml version="1.0"?>
+<!-- $Horde: passwd/locale/nl_NL/help.xml,v 1.4.2.1 2008/10/09 17:12:15 jan Exp $ -->
+<help>
+ <entry id="passwd-username" state="new">
+ <title>Username</title>
+ <heading>Your Username</heading>
+ <para>
+ Enter your username here (if it is not already prefilled). Not all installations support this.
+ </para>
+</entry>
+ <entry id="passwd-old-password" state="unknown">
+ <title>Oude wachtwoord</title>
+ <heading>Oude wachtwoord</heading>
+ <para>
+ Enter your current, working login password here. You must correctly enter your current login password, or you can not change your password.
+ </para>
+<!-- English entry:
+<entry id="passwd-old-password">
+ <title>Old Password</title>
+ <heading>Old Passsword</heading>
+ <para>
+ Enter your current, working login password here. You must correctly enter your current login password, or you can not change your password.
+ </para>
+</entry>--></entry>
+ <entry id="passwd-new-password" state="unknown">
+ <title>Nieuw wachtwoord</title>
+ <heading>Nieuw wachtwoord</heading>
+ <para>
+ Geef uw nieuwe wachtwoord op, dit is het wachtwoord waarin u het oude wilt veranderen. Onthoud dat het wachtwoord aan verschillende eisen moet voldoen (is het lang genoeg, is het niet gelijk aan uw gebruikersnaam, een combinatie van letters en cijfers, etc) anders krijgt u een foutmelding.
+ </para>
+<!-- English entry:
+<entry id="passwd-new-password">
+ <title>New Password</title>
+ <heading>New Password</heading>
+ <para>
+ Enter the new password, that is what you want to change your password to. Note that the password entered must meet some minimum standards (sufficient length, not match your username, have a combination of letters and other characters, etc) or you will get an error.
+ </para>
+</entry>--></entry>
+ <entry id="passwd-confirm-password" state="unknown">
+ <title>Nogmaals nieuw wachtwoord</title>
+ <heading>Nogmaals nieuw wachtwoord</heading>
+ <para>
+ Geef opnieuw uw nieuwe wachtwoord op in het Verifieer wacthwoord veld. Dit is om te verkomen dat u per ongeluk een type fout heeft gemaakt en niet meer in uw account kunt komen.
+ </para>
+<!-- English entry:
+<entry id="passwd-confirm-password">
+ <title>Confirm New Password</title>
+ <heading>Confirm New Password</heading>
+ <para>
+ Enter the new password a second time in the Confirm New Password area. This is to make sure you don't make a typo or other mistake and lock you out of your account.
+ </para>
+</entry>--></entry>
+ <entry id="passwd-server" state="new">
+ <title>Change password on</title>
+ <heading>Change password on</heading>
+ <para>
+ Select the server or application in which you want to change the password. Not all installations support this.
+ </para>
+</entry>
+ <entry id="Change-your-password" state="unknown">
+ <title>Verander wachtwoord</title>
+ <heading>Verander wachtwoord</heading>
+ <para>
+ Druk op de "Change your password" button onder de velden om het wachtwoord te wijzigen in het systeem.
+ </para>
+<!-- English entry:
+<entry id="Change-your-password">
+ <title>Change your password</title>
+ <heading>Change your password</heading>
+ <para>
+ Press the "Change your password" button at the bottom of the form to submit your password request change to the system. This button tells the system to actually change your password.
+ </para>
+</entry>--></entry>
+ <entry id="reset" state="unknown">
+ <title>Reset</title>
+ <heading>Reset</heading>
+ <para>
+ Druk op deze knop om alle velden te legen zodat u opnieuw uw wachtwoorden in kunt vullen.
+ </para>
+<!-- English entry:
+<entry id="reset">
+ <title>Reset</title>
+ <heading>Reset</heading>
+ <para>
+ Use the Reset button at the bottom of the form to clear any form data that you have entered and start over.
+ </para>
+</entry>--></entry>
+</help>
--- /dev/null
+<?xml version="1.0" encoding="CP1251"?>
+<!-- $Horde: passwd/locale/ru_RU/help.xml,v 1.1.2.1 2008/10/09 17:12:18 jan Exp $ -->
+<help>
+
+<entry id="passwd-username" md5="26022f0d72dd291089785e8366ba9a43" state="uptodate">
+ <title>Èìÿ ïîëüçîâàòåëÿ</title>
+ <heading>Âàøå èìÿ ïîëüçîâàòåëÿ</heading>
+ <para>
+ Ââåäèòå ñþäà èìÿ ïîëüçîâàòåëÿ (åñëè îíî åùå íå çàïîëíåíî). Íå âñå óñòàíîâêè ïîääåðæèâàþò ýòî.
+ </para>
+</entry>
+
+
+<entry id="passwd-old-password" md5="08dcc84d98462ad590356ce6ed609c40" state="uptodate">
+ <title>Ñòàðûé ïàðîëü</title>
+ <heading>Ñòàðûé ïàðîëü</heading>
+ <para>
+ Ââåäèòå ñþäà Âàø òåêóùèé ðàáî÷èé ïàðîëü. Âû äîëæíû You must ïðàâèëüíî ââåñòè òåêóùèé ïàðîëü, èíà÷å âû íå ñìîæåòå óñòàíîâèòü íîâûé ïàðîëü.
+ </para>
+</entry>
+
+<entry id="passwd-new-password" md5="4f24def5684976fc4e2507d839369641" state="uptodate">
+ <title>Íîâûé ïàðîëü</title>
+ <heading>Íîâûé ïàðîëü</heading>
+ <para>
+ Ââåäèòå íîâûé ïàðîëü, êîòîðûé Âû õîòèòå óñòàíîâèòü. Ââåäåííûé ïàðîëü äîëæåí ñîîòâåòñâîâàòü íåêîòîðûì ìèíèìàëüíûì ñòàíäàðòàì (äîñòàòî÷íàÿ äëèííà, íå ñîâïàäàòü ñ èìåíåì ïîëüçîâàòåëÿ, ñîñòîÿòü èç êîìáèíàöèè áóêâ è äðóãèõ ñèìâîëîâ, è ò.ä.), èíà÷å Âû ïîëó÷èòå îøèáêó.
+ </para>
+</entry>
+
+<entry id="passwd-confirm-password" md5="546e1b91945400f7607fa4f13364885f" state="uptodate">
+ <title>Ïîäòâåðæäåíèå íîâîãî ïàðîëÿ</title>
+ <heading>Ïîäòâåðæäåíèå íîâîãî ïàðîëÿ</heading>
+ <para>
+ Ââåäèò íîâûé ïàðîëü âòîðîé ðàç â ïîëå "Ïîäòâåðäèòå íîâûé ïàðîëü". Ýòî äàåò óâåðåííîñòü, ÷òî âû íå äîïóñòèëè îøèáêè.
+ </para>
+</entry>
+
+<entry id="passwd-server" md5="768f72330860bb8c9ff79d5bec8fe4f0" state="uptodate">
+ <title>Ñìåíèòü ïàðîëü íà</title>
+ <heading>Ñìåíèòü ïàðîëü íà</heading>
+ <para>
+ Âûáåðåòå ñåðâåð èëè ïðèëîæåíèå, ñ ïîìîùüþ êîòîðîãî ñìåíèòü ïàðîëü. Íå âñå óñòàíîâêè ïîääåðæèâàþò ýòî.
+ </para>
+</entry>
+
+<entry id="Change-your-password" md5="81c332b6ab3a13ed0d01d08f7804d2dc" state="uptodate">
+ <title>Ñìåíèòü ïàðîëü</title>
+ <heading>Ñìåíèòü ïàðîëü</heading>
+ <para>
+ Íàæìèòå êíîïêó "Ñìåíèòü ïàðîëü" äëÿ ïîäà÷è çàïðîñà íà ñìåíó ïàðîëÿ.
+ </para>
+</entry>
+
+<entry id="reset" md5="298d62bb8ffcc656848f87cf6f3b5a26" state="uptodate">
+ <title>Ñáðîñèòü</title>
+ <heading>Ñáðîñèòü</heading>
+ <para>
+ Èñïîëüçóéòå êíîïêó Ñáðîñèòü âíèçó ôîðìû äëÿ î÷èñòêè ðàíåå ââåäåííûõ äàííûõ.
+ </para>
+</entry>
+
+</help>
--- /dev/null
+<?php
+/**
+ * $Horde: passwd/main.php,v 1.67.2.10 2009/07/05 17:13:32 chuck Exp $
+ *
+ * Copyright 2002-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/gpl.php.
+ *
+ * @author Eric Rostetter <eric.rostetter@physics.utexas.edu>
+ * @package Passwd
+ */
+
+@define('PASSWD_BASE', dirname(__FILE__));
+require_once PASSWD_BASE . '/lib/base.php';
+require PASSWD_BASE . '/config/backends.php';
+
+// Get the backend details.
+$backend_key = Util::getFormData('backend', false);
+if (!isset($backends[$backend_key])) {
+ $backend_key = null;
+}
+
+// Use a do-while to allow easy breaking if an error is found.
+do {
+ if (!$backend_key) {
+ break;
+ }
+
+ // Has the user submitted the form yet?
+ $submit = Util::getFormData('submit', false);
+ if (!$submit) {
+ // No so we don't need to do anything in this loop.
+ break;
+ }
+
+ $driver = $backends[$backend_key]['driver'];
+ $params = $backends[$backend_key]['params'];
+ $password_policy = isset($backends[$backend_key]['password policy'])
+ ? $backends[$backend_key]['password policy']
+ : array();
+
+ // Get the username.
+ if ($conf['user']['change'] === true) {
+ $userid = Util::getFormData('userid');
+ } else {
+ if ($conf['hooks']['default_username']) {
+ $userid = Horde::callHook('_passwd_hook_default_username',
+ array(Auth::getAuth()),
+ 'passwd');
+ } elseif ($conf['hooks']['full_name']) {
+ $userid = Auth::getAuth();
+ } else {
+ $userid = Auth::getBareAuth();
+ }
+ }
+
+ // Check for users that cannot change their passwords.
+ if (in_array($userid, $conf['user']['refused'])) {
+ $notification->push(sprintf(_("You can't change password for user %s"),
+ $userid), 'horde.error');
+ break;
+ }
+
+ // We must be passed the old (current) password, or its an error.
+ $old_password = Util::getFormData('oldpassword', false);
+ if (!$old_password) {
+ $notification->push(_("You must give your current password"),
+ 'horde.warning');
+ break;
+ }
+
+ // See if they entered the new password and verified it.
+ $new_password0 = Util::getFormData('newpassword0', false);
+ $new_password1 = Util::getFormData('newpassword1', false);
+ if (!$new_password0) {
+ $notification->push(_("You must give your new password"), 'horde.warning');
+ break;
+ }
+ if (!$new_password1) {
+ $notification->push(_("You must verify your new password"), 'horde.warning');
+ break;
+ }
+ if ($new_password0 != $new_password1) {
+ $notification->push(_("Your new passwords didn't match"), 'horde.warning');
+ break;
+ }
+ if ($new_password0 == $old_password) {
+ $notification->push(_("Your new password must be different from your current password"), 'horde.warning');
+ break;
+ }
+
+ // Check max/min lengths if specified in the backend config.
+ if (isset($password_policy['minLength']) &&
+ strlen($new_password0) < $password_policy['minLength']) {
+ $notification->push(sprintf(_("Your new password must be at least %d characters long!"), $password_policy['minLength']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['maxLength']) &&
+ strlen($new_password0) > $password_policy['maxLength']) {
+ $notification->push(sprintf(_("Your new password is too long; passwords may not be more than %d characters long!"), $password_policy['maxLength']), 'horde.warning');
+ break;
+ }
+
+ // Disect the password in a localised way.
+ $classes = array();
+ $alpha = $alnum = $num = $upper = $lower = $space = $symbol = 0;
+ for ($i = 0; $i < strlen($new_password0); $i++) {
+ $char = substr($new_password0, $i, 1);
+ if (ctype_lower($char)) {
+ $lower++; $alpha++; $alnum++; $classes['lower'] = 1;
+ } elseif (ctype_upper($char)) {
+ $upper++; $alpha++; $alnum++; $classes['upper'] = 1;
+ } elseif (ctype_digit($char)) {
+ $num++; $alnum++; $classes['number'] = 1;
+ } elseif (ctype_punct($char)) {
+ $symbol++; $classes['symbol'] = 1;
+ } elseif (ctype_space($char)) {
+ $space++; $classes['symbol'] = 1;
+ }
+ }
+
+ // Check reamaining password policy options.
+ if (isset($password_policy['minUpper']) &&
+ $password_policy['minUpper'] > $upper) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d uppercase character.", "Your new password must contain at least %d uppercase characters.", $password_policy['minUpper']), $password_policy['minUpper']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['minLower']) &&
+ $password_policy['minLower'] > $lower) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d lowercase character.", "Your new password must contain at least %d lowercase characters.", $password_policy['minLower']), $password_policy['minLower']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['minNumeric']) &&
+ $password_policy['minNumeric'] > $num) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d numeric character.", "Your new password must contain at least %d numeric characters.", $password_policy['minNumeric']), $password_policy['minNumeric']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['minAlpha']) &&
+ $password_policy['minAlpha'] > $alpha) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d alphabetic character.", "Your new password must contain at least %d alphabetic characters.", $password_policy['minAlpha']), $password_policy['minAlpha']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['minAlphaNum']) &&
+ $password_policy['minAlphaNum'] > $alnum) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d alphanumeric character.", "Your new password must contain at least %d alphanumeric characters.", $password_policy['minAlphaNum']), $password_policy['minAlphaNum']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['minClasses']) &&
+ $password_policy['minClasses'] > array_sum($classes)) {
+ $notification->push(sprintf(_("Your new password must contain at least %d different types of characters. The types are: lower, upper, numeric, and symbols."), $password_policy['minClasses']), 'horde.warning');
+ break;
+ }
+ if (isset($password_policy['maxSpace']) &&
+ $password_policy['maxSpace'] < $space) {
+ if ($password_policy['maxSpace'] > 0) {
+ $notification->push(sprintf(_("Your new password must contain less than %d whitespace characters."), $password_policy['maxSpace'] + 1), 'horde.warning');
+ } else {
+ $notification->push(_("Your new password must not contain whitespace characters."), 'horde.warning');
+ }
+ break;
+ }
+ if (isset($password_policy['minSymbol']) &&
+ $password_policy['minSymbol'] > $symbol) {
+ $notification->push(sprintf(ngettext("Your new password must contain at least %d symbol character.", "Your new password must contain at least %d symbol characters.", $password_policy['minSymbol']), $password_policy['minSymbol']), 'horde.warning');
+ break;
+ }
+
+ // Do some simple strength tests, if enabled in the config file.
+ if ($conf['password']['strengthtests']) {
+ // Check for new==old, pass==user, simple reverse strings, etc.
+ if ((strcasecmp($new_password0, $userid) == 0) ||
+ (strcasecmp($new_password0, strrev($userid)) == 0) ||
+ (strcasecmp($new_password0, $old_password) == 0) ||
+ (strcasecmp($new_password0, strrev($old_password)) == 0) ) {
+ $notification->push(_("Your new password is too simple to guess. Not changed!"),
+ 'horde.warning');
+ break;
+ }
+ // Check for percentages similarity also. This will catch very simple
+ // Things like "password" -> "password2" or "xpasssword"...
+ @similar_text($new_password0, $old_password, $percent1);
+ @similar_text($new_password0, $userid, $percent2);
+ if (($percent1 > 80) || ($percent2 > 80)) {
+ $notification->push(_("Your new password is too simple to guess! Not changed!"),
+ 'horde.warning');
+ break;
+ }
+ }
+
+ // Create a Password_Driver instance.
+ require_once PASSWD_BASE . '/lib/Driver.php';
+ $daemon = Passwd_Driver::factory($driver, $params);
+
+ if (is_a($daemon, 'PEAR_Error')) {
+ $notification->push(_("Password module is not properly configured"),
+ 'horde.error');
+ break;
+ }
+
+ $backend_userid = $userid;
+
+ if ($conf['hooks']['username']) {
+ $backend_userid = Horde::callHook('_passwd_hook_username',
+ array($userid, &$daemon),
+ 'passwd');
+ if (is_a($backend_userid, 'PEAR_Error')) {
+ $notification->push($backend_userid, 'horde.error');
+ break;
+ }
+ }
+
+ $res = $daemon->changePassword($backend_userid, $old_password,
+ $new_password0);
+
+ if (!is_a($res, 'PEAR_Error')) {
+ if (!isset($backends[$backend_key]['no_reset']) ||
+ !$backends[$backend_key]['no_reset']) {
+ Passwd::resetCredentials($old_password, $new_password0);
+ }
+
+ $notification->push(sprintf(_("Password changed on %s."),
+ $backends[$backend_key]['name']), 'horde.success');
+
+ Horde::callHook('_passwd_password_changed',
+ array($backend_userid, $old_password, $new_password0),
+ 'passwd');
+
+ $return_to = Util::getFormData('return_to');
+ if (!empty($return_to)) {
+ header('Location: ' . $return_to);
+ exit;
+ }
+ } else {
+ $notification->push(sprintf(_("Failure in changing password for %s: %s"),
+ $backends[$backend_key]['name'],
+ $res->getMessage()), 'horde.error');
+ }
+} while (false);
+
+// Choose the prefered backend from config/backends.php.
+foreach ($backends as $key => $current_backend) {
+ if (!isset($backend_key) && substr($key, 0, 1) != '_') {
+ $backend_key = $key;
+ }
+ if (Passwd::isPreferredBackend($current_backend)) {
+ $backend_key = $key;
+ break;
+ }
+}
+
+// Build the <select> widget for the backends list.
+if ($conf['backend']['backend_list'] == 'shown') {
+ $backends_list = '';
+
+ foreach ($backends as $key => $current_backend) {
+ $sel = ($key == $backend_key) ? ' selected="selected"' : '';
+ $backends_list .= '<option value="' . htmlspecialchars($key) . '"' . $sel . '>' .
+ htmlspecialchars($current_backend['name']) . '</option>';
+ }
+}
+
+// Extract userid to be shown in the username field.
+if (empty($userid)) {
+ if ($conf['hooks']['default_username']) {
+ $userid = Horde::callHook('_passwd_hook_default_username',
+ array(Auth::getAuth()),
+ 'passwd');
+ } elseif ($conf['hooks']['full_name']) {
+ $userid = Auth::getAuth();
+ } else {
+ $userid = Auth::getBareAuth();
+ }
+ if (is_a($userid, 'PEAR_Error')) {
+ Horde::logMessage($userid, __FILE__, __LINE__);
+ $userid = '';
+ }
+}
+
+$notification->push('setFocus()', 'javascript');
+$title = _("Change Password");
+require PASSWD_TEMPLATES . '/common-header.inc';
+require PASSWD_TEMPLATES . '/main/main.inc';
+require $registry->get('templates', 'horde') . '/common-footer.inc';
--- /dev/null
+messages.po
--- /dev/null
+Deny from all
--- /dev/null
+see horde/po/README
\ No newline at end of file
--- /dev/null
+# Passwd module translations.
+# This file is distributed under the same license as the Passwd package.
+# Copyright 2003 Platinum Inc. <pl@tinum.info>
+# Custom Web Applications <http://platinum-sy.com>
+# Platinum Development Team <devteam@platinum-sy.net>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd \n"
+"POT-Creation-Date: 2003-04-30 12:00+0200\n"
+"PO-Revision-Date: 2003-04-30 12:00+0200\n"
+"Last-Translator: Platinum Development Team <devteam@platinum-sy.com>\n"
+"Language-Team: Arabic <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1256\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Change your password"
+msgstr "ÊÛííÑ ßáãÉ ÇáãÑæÑ"
+
+msgid "Confirm new password:"
+msgstr "ÊÃßíÏ ßáãÉ ÇáãÑæÑ ÇáÌÏíÏÉ:"
+
+msgid "Error"
+msgstr "ÍÕá ÎØÃ"
+
+msgid "Failure in changing password : "
+msgstr "ÎØÃ Ýí ÊÛííÑ ßáãÉ ÇáãÑæÑ"
+
+msgid "Help"
+msgstr "ÇáãÓÇÚÏÉ"
+
+msgid "Language"
+msgstr "ÇááÛÉ"
+
+msgid "Logout"
+msgstr "ÎÑæÌ"
+
+msgid "Message"
+msgstr "ÑÓÇáÉ"
+
+msgid "New password:"
+msgstr "ßáãÉ ÇáãÑæÑ ÇáÌÏíÏÉ:"
+
+msgid "Old password:"
+msgstr "ßáãÉ ÇáãÑæÑ ÇáÞÏíãÉ:"
+
+msgid "Password changed!"
+msgstr "Êã ÊÛííÑ ßáãÉ ÇáãÑæÑ!"
+
+msgid "Password module is not properly configured"
+msgstr "ÎØÃ Ýí ÅÚÏÇÏÇÊ ÈÑíãÌ ßáãÉ ÇáãÑæÑ"
+
+msgid "Problem?"
+msgstr "ãÔßáÉ¿"
+
+msgid "Select your preferred language:"
+msgstr "ÇÎÊÑ áÛÊß ÇáãÝÖáÉ:"
+
+msgid "Set the language that menu items, explanations, and help are in."
+msgstr "ÍÏÏ áÛÉ ÇáÃæÇãÑ¡ ÇáÔÑÍ æÇáãÓÇÚÏÉ."
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "ÈÚÖ ãáÝÇÊ ÅÚÏÇÏÇÊ ÈÑíãÌÇÊ ßáãÉ ÇáãÑæÑ ãÝÞæÏÉ"
+
+msgid "Success"
+msgstr "Êã ÇáÃãÑ ÈäÌÇÍ"
+
+msgid ""
+"This file controls the default preferences for Password module, and also "
+"controls which preferences users can alter."
+msgstr ""
+"íÊÍßã åÐÇ ÇáãáÝ ÈÇáÅÚÏÇÏÇÊ ÇáÇÝÊÑÇÖíÉ áÈÑíãÌÇÊ ßáãÉ ÇáãÑæÑ¡ ßãÇ íÍÏÏ "
+"ÇáÅÚÏÇÏÇÊ ÇáÊí íãßä ááãÓÊÎÏã ÊÚÏíáåÇ."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"íÊÍßã åÐÇ ÇáãáÝ ÈáæÇÆÍ ÇáÃáæÇä æÇáÎØæØ ÅÖÇÝÉ Ãæ ÈÏáÇð ãä ÅÚÏÇÏÇÊ åæÑÏí "
+"'Horde'."
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"åÐÇ ãáÝ ÇáÅÚÏÇÏÇÊ ÇáÑÆíÓí áßáãÉ ÇáãÑæÑ æíÍæí ãÓÇÑÇÊ æ ÎíÇÑÇÊ ÌãíÚ ÈíÑãÌÇÊ "
+"ßáãÉ ÇáãÑæÑ"
+
+msgid "Username:"
+msgstr "ÇÓã ÇáãÓÊÎÏã:"
+
+msgid "Warning"
+msgstr "ÊäÈíå"
+
+msgid "You can not change passwd for other user"
+msgstr "áÇíãßä ÊÛííÑ ßáãÉ ÇáãÑæÑ áãÓÊÎÏã áÂÎÑ."
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "áÇíãßä ÊÛííÑ ßáãÉ ÇáãÑæÑ ááãÓÊÎÏã %s"
+
+msgid "You must give your new password"
+msgstr "íÌÈ ÅÏÎÇá ßáãÉ ãÑæÑ ÌÏíÏÉ"
+
+msgid "You must give your old password"
+msgstr "íÌÈ ÅÏÎÇá ßáãÉ ÇáãÑæÑ ÇáÞÏíãÉ"
+
+msgid "You must give your userid"
+msgstr "íÌÈ ÅÏÎÇá ãÚÑÝ ÇáãÓÊÎÏã"
+
+msgid "You must verify your new password"
+msgstr "íÌÈ ÊÃßíÏ ßáãÉ ÇáãÑæÑ ÇáÌÏíÏÉ"
+
+msgid "Your Information"
+msgstr "ÇáãÚáæãÇÊ ÇáÔÎÕíÉ"
+
+msgid "Your new passwords didn't match"
+msgstr "ÚÏã ÊØÇÈÞ Ýí ßáãÉ ÇáãÑæÑ ÇáÌÏíÏÉ"
--- /dev/null
+# Bulgarian translations for Passwd package.
+# Copyright 2002-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Miroslav Pendev <miro@cybershade.us>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 2.0.1-cvs\n"
+"POT-Creation-Date: 2002-09-14 00:38-0400\n"
+"PO-Revision-Date: 2002-11-19 20:44-0500\n"
+"Last-Translator: Miroslav Pendev <miro@cybershade.us>\n"
+"Language-Team: BG i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Backend not correctly implemented."
+msgstr "Âñå îùå íå å äîáðå ðàçðàáîòåíî..."
+
+msgid "Change Password"
+msgstr "Ñìÿíà íà ïàðîëàòà"
+
+msgid "Change your password"
+msgstr "Ñìÿíà íà ïàðîëàòà Âè"
+
+#, c-format
+msgid "Changing Password on %s"
+msgstr "Ïðîáëåì ïðè ñìÿíà íà ïàðîëàòà íà %s"
+
+msgid "Confirm New password:"
+msgstr "Ïîòâúðäåòå íîâàòà ïàðîëà:"
+
+msgid "Could not bind to ldap server"
+msgstr "Íåâúçìîæíîñò çà âðúçêà ñ LDAP ñúðâúðà"
+
+msgid "Could not connect to ldap server"
+msgstr "Íåâúçìîæíîñò çà âðúçêà ñ LDAP ñúðâúð"
+
+msgid "Could not open pipe to smbpasswd."
+msgstr "Íåâúçìîæíîñò äà ñå îòâîðè êàíàë äî smbpasswd."
+
+msgid "Error sending data to smbpasswd."
+msgstr "Ãðåøêà ïðè èçïðàùàíå íà äàííè äî smbpasswd."
+
+msgid "Failure in changing password: "
+msgstr "Ïðîáëåì ïðè ñìÿíà íà ïàðîëàòà :"
+
+msgid "Help"
+msgstr "Ïîìîù"
+
+msgid "Incorect Password"
+msgstr "Íåêîðåêòíà ïàðîëà"
+
+msgid "Logout"
+msgstr "Èçõîä"
+
+msgid "Mdaemon path not found"
+msgstr "Ïúòÿò äî Mdaemon íå å íàìåðåí"
+
+msgid "Mdaemon userlist file not accessable or not found."
+msgstr "Mdaemon ôàéë ñ ïîòðåáèòåëè íå å äîñòúïåí èëè íå áåøå íàìåðåí."
+
+msgid "New password:"
+msgstr "Íîâà ïàðîëà:"
+
+msgid "Not able to create lock file"
+msgstr "Íåâúçìîæíîñò äà ñå ñúçäàäå çàêëþ÷âàù (lock) ôàéë"
+
+msgid "Not able to create semaphore file"
+msgstr "Íåâúçìîæíîñò äà ñå ñúçäàäå ñåìàôîðåí ôàéë"
+
+msgid "Not able to retrieve current details."
+msgstr "Íåâúçìîæíîñò äà ñå èçòåãëÿò òåêóùèòå äåòàéëè."
+
+msgid ""
+"Note: You will need to logout and back in after you change your password!"
+msgstr ""
+"Íåîáõîäèìî å äà èçëåçåòå è âëåçåòå îòíîâî ñ íîâàòà ïàðîëà, ñëåä ñìÿíàòà é!"
+
+msgid "Old password:"
+msgstr "Ñòàðà ïàðîëà:"
+
+msgid "Password changed."
+msgstr "Ïàðîëàòà áåøå ñìåíåíà!"
+
+msgid "Password is not properly configured"
+msgstr "Password íå å êîíôèãóðèðàí ïðàâèëíî"
+
+msgid "Password module is not properly configured"
+msgstr "Ìîäóëúò çà ïàðîëè íå å êîíôèãóðèðàí ïðàâèëíî"
+
+msgid "Password module is not properly configured."
+msgstr "Ìîäóëúò çà ïàðîëè íå å êîíôèãóðèðàí ïðàâèëíî."
+
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Íåîáõîäèìèÿ 'phptype' íå å çàäàäåí âúâ SQL êîíôèãóðàöèÿòà."
+
+msgid "Server"
+msgstr "Ñúðâúð"
+
+msgid "Some of Password's configuration files are missing:"
+msgstr "Íÿêîè îò êîíôèãóðàöèîííèòå ôàéëîâå íà Password ëèïñâàò:"
+
+msgid ""
+"This is the main Password configuration file. It contains options for all "
+"Password scripts."
+msgstr ""
+"Òîâà å ãëàâíèÿ êîíôèãóðàöèîíåí ôàéë íà Password. Òîé ñúäúðæà ïúòèùà è îïöèè "
+"çà ñêðèïòîâåòå íà Password."
+
+msgid "Unable to connect to SQL server."
+msgstr "Íåâúçìîæíîñò çà âðúçêà ñ SQL ñúðâúð."
+
+#, c-format
+msgid "User %s@%s not found"
+msgstr "Ïîòðåáèòåë %s@%s íå áåøå íàìåðåí"
+
+msgid "User not found"
+msgstr "Íÿìà òàêúâ ïîòðåáèòåë"
+
+msgid "User not found."
+msgstr "Íÿìà òàêúâ ïîòðåáèòåë."
+
+msgid "Username:"
+msgstr "Èìå:"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Íå ìîæåòå äà ñìåíèòå ïàðîëàòà íà ïîòðåáèòåë %s"
+
+msgid "You must give your current password"
+msgstr "Òðÿáâà äà âúâåäåòå òåêóùàòà Âè ïàðîëà"
+
+msgid "You must give your new password"
+msgstr "Òðÿáâà äà âúâåäåòå íîâàòà Âè ïàðîëà"
+
+msgid "You must verify your new password"
+msgstr "Òðÿáâà äà ïîòâúðäèòå Âàøàòà íîâà ïàðîëà"
+
+#, c-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Íîâàòà Âè ïàðîëà å òâúðäå äúëãà; ïàðîëèòå íå ìîãàò äà ñà ïî-äúëãè îò %d "
+"ñèìâîëà!"
+
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Íîâàòà Âè ïàðîëà å ïðåêàëåíî ëåñíà çà îòãàòâàíå! Íÿìà äà áúäå ñìåíåíà!"
+
+#, c-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà å äúëãà ïîíå %d ñèìâîëà!"
+
+msgid "Your new password must be different from your current password"
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà å ðàçëè÷íà îò òåêóùàòà"
+
+#, c-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà!"
+
+#, c-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà (áóêâè è öèôðè)."
+
+#, c-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà (ìàëêè áóêâè)."
+
+#, c-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà (öèôðè)."
+
+#, c-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà (ãîëåìè áóêâè)."
+
+#, c-format
+msgid "Your new password must contain at less than %d whitespace characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà ñúäúðæà ïîíå %d ñèìâîëà (èíòåðâàëà)."
+
+msgid "Your new password must not contain whitespace characters."
+msgstr "Íîâàòà Âè ïàðîëà òðÿáâà äà íå ñúäúðæà èíòåðâàëè."
+
+msgid "Your new passwords didn't match"
+msgstr "Íîâàòà Âè ïàðîëà íå áåøå ïîâòîðåíà êîðåêòíî!"
+
+msgid "tempnam() failed!"
+msgstr "ãðåøêà ïðè tempnam()!"
--- /dev/null
+# Traducció al catala del módul de canvi de password
+# Copyright 2002 Free Software Foundation, Inc.
+# FIRST AUTHOR <joan.jorba@rusc.net>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-10-13 17:13+0200\n"
+"PO-Revision-Date: 2004-11-29 23:24 GMT+5\n"
+"Last-Translator: Joan Jorba Calsina <joan.jorba@rusc.net>\n"
+"Language-Team: Catala ca_ES <info@rusc.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr ""
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr ""
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr ""
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr ""
+
+#: main.php:255 templates/main/main.inc:142
+#, fuzzy
+msgid "Change Password"
+msgstr "Canvia la contrasenya"
+
+#: templates/main/main.inc:127
+#, fuzzy
+msgid "Change password on:"
+msgstr "Canvia la contrasenya"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Canvia la contrasenya"
+
+#: templates/main/main.inc:69
+#, fuzzy, php-format
+msgid "Changing password on %s"
+msgstr "Fallit el canvi de contrasenya"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Confirma la nova contrasenya:"
+
+#: lib/Driver/ldap.php:95 lib/Driver/ldap.php:263 lib/Driver/kolab.php:54
+msgid "Could not bind to ldap server"
+msgstr ""
+
+#: lib/Driver/ldap.php:70 lib/Driver/kolab.php:46
+msgid "Could not connect to ldap server"
+msgstr ""
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr ""
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:93
+#, fuzzy
+msgid "Failed to verify old password."
+msgstr "Has de verificar la teva nova contrasenya"
+
+#: main.php:211 lib/Driver/composite.php:99
+#, fuzzy, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Fallit el canvi de contrasenya"
+
+#: lib/Driver.php:56 lib/Driver/ldap.php:264 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+msgid "Incorrect Password"
+msgstr ""
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr ""
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Nova Contrasenya"
+
+#: lib/Driver.php:112
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr ""
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Antiga Contrasenya"
+
+#: lib/Driver/smbpasswd.php:47
+#, fuzzy
+msgid "Passwd is not properly configured."
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: main.php:203
+#, fuzzy, php-format
+msgid "Password changed on %s."
+msgstr "Contrasenya Canviada"
+
+#: lib/Driver/sql.php:120
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:75
+#, fuzzy
+msgid "Password module can't find the supplied bin."
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: lib/Driver/pspasswd.php:73
+#, fuzzy
+msgid "Password module is missing required parameters."
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: lib/Driver/adsi.php:51
+#, fuzzy
+msgid "Password module is missing target parameter."
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: lib/Driver/servuftp.php:98
+#, fuzzy
+msgid "Password module is not properly configured."
+msgstr "Mòdul de canvi de Clau no configurat adecuadament"
+
+#: templates/main/main.inc:11
+#, fuzzy
+msgid "Please provide a new password"
+msgstr "Has d'escriure la teva nova contrasenya"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr ""
+
+#: templates/main/main.inc:15
+#, fuzzy
+msgid "Please verify your new password"
+msgstr "Has de verificar la teva nova contrasenya"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr ""
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Reiniciar"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr ""
+
+#: lib/Driver/sql.php:128 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:143
+msgid "User not found"
+msgstr ""
+
+#: lib/Driver/ldap.php:131 lib/Driver/kolab.php:70 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr ""
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Usuari:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Vostè no pot canviar la clau pel usuari %s"
+
+#: main.php:55
+#, fuzzy
+msgid "You must give your current password"
+msgstr "Has d'escriure la teva nova contrasenya"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Has d'escriure la teva nova contrasenya"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Has de verificar la teva nova contrasenya"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr ""
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr ""
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr ""
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr ""
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr ""
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr ""
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr ""
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr ""
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr ""
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr ""
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "La contrasenya nova i la antiga no concorden"
+
+#: templates/main/main.inc:19
+#, fuzzy
+msgid "Your passwords do not match"
+msgstr "La contrasenya nova i la antiga no concorden"
+
+#: lib/Driver/ldap.php:76
+msgid "ldap_start_tls failed"
+msgstr ""
--- /dev/null
+# Czech translations for Passwd package.
+# Copyright 2004-2009 The Horde Project
+# This file is distributed under the same license as the Horde package.
+# Pavel Chytil <pavel@chytil.tk>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2004-11-25 09:19-0800\n"
+"PO-Revision-Date: 2004-11-25 09:19-0800\n"
+"Last-Translator: Pavel Chytil <pavel@chytil.tk>\n"
+"Language-Team: Czech <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/Driver/composite.php:58
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: nelze pou¾ít driver : %s"
+
+#: lib/Driver/adsi.php:54
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI chyba %s."
+
+#: lib/Driver/adsi.php:57 lib/Driver/pspasswd.php:97
+msgid "Access Denied."
+msgstr "Pøístup Zamítnut."
+
+#: lib/Driver.php:80
+msgid "Backend not correctly implemented."
+msgstr "Backend není správnì implementován."
+
+#: main.php:231 templates/main/main.inc:144
+msgid "Change Password"
+msgstr "Zmìnit Heslo"
+
+#: templates/main/main.inc:129
+msgid "Change password on:"
+msgstr "Zmìnit heslo v:"
+
+#: templates/main/main.inc:64
+msgid "Change your password"
+msgstr "Zmìnit Va¹e heslo"
+
+#: templates/main/main.inc:71
+#, php-format
+msgid "Changing password on %s"
+msgstr "Zmìnit heslo v %s"
+
+#: templates/main/main.inc:116
+msgid "Confirm new password:"
+msgstr "Potvrdit nové heslo:"
+
+#: lib/Driver/ldap.php:86 lib/Driver/ldap.php:223 lib/Driver/smbldap.php:88
+#: lib/Driver/smbldap.php:166
+msgid "Could not bind to ldap server"
+msgstr "Nelze se domluvit s ldap serverem"
+
+#: lib/Driver/ldap.php:62 lib/Driver/smbldap.php:65
+msgid "Could not connect to ldap server"
+msgstr "Nelze se pøipojit na ldap server"
+
+#: lib/Driver/smbpasswd.php:52
+msgid "Could not open pipe to smbpasswd."
+msgstr "Nelze otevøít linku na smbpasswd."
+
+#: lib/Driver/smbpasswd.php:74
+msgid "Error sending data to smbpasswd."
+msgstr "Nastala chyba pøi zasílání dat do smbpasswd."
+
+#: lib/Driver/pspasswd.php:85
+msgid "Failed to verify old password."
+msgstr "Selhala verifikace starého hesla."
+
+#: main.php:192 lib/Driver/composite.php:92
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Zmìna hesla selhala pro %s: %s"
+
+#: lib/Driver.php:51 lib/Driver/ldap.php:224 lib/Driver/poppassd.php:106
+#: lib/Driver/smbldap.php:167 lib/Driver/vmailmgr.php:35
+msgid "Incorrect Password"
+msgstr "Neplatné Heslo"
+
+#: lib/Driver/ldap.php:207
+msgid "Minimum password age has not yet expired"
+msgstr "Minimální doba platnosti hesla je¹tì nevypr¹ela"
+
+#: templates/main/main.inc:104
+msgid "New password:"
+msgstr "Nové heslo:"
+
+#: lib/Driver.php:107
+#, php-format
+msgid "No such backend '%s' found."
+msgstr "'%s' backend nebyl nalezen."
+
+#: templates/main/main.inc:92
+msgid "Old password:"
+msgstr "Staré heslo:"
+
+#: lib/Driver/smbpasswd.php:42
+msgid "Passwd is not properly configured."
+msgstr "Passwd není správnì nakonfigurován."
+
+#: main.php:189
+#, php-format
+msgid "Password changed on %s."
+msgstr "Heslo zmìnìno v %s."
+
+#: lib/Driver/pspasswd.php:67
+msgid "Password module can't find the supplied bin."
+msgstr "Password modul nenalezl poskytnutou schránku."
+
+#: lib/Driver/pspasswd.php:65
+msgid "Password module is missing required parameters."
+msgstr "Chybí po¾adované parametry pro modul Password."
+
+#: lib/Driver/adsi.php:44
+msgid "Password module is missing target parameter."
+msgstr "Chybí cílový parametr pro modul Password."
+
+#: main.php:170 lib/Driver/servuftp.php:66
+msgid "Password module is not properly configured"
+msgstr "Modul Password není správnì konfigurován"
+
+#: lib/Driver/servuftp.php:93
+msgid "Password module is not properly configured."
+msgstr "Modul Password není správnì konfigurován."
+
+#: lib/Driver/composite.php:34
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Po¾adované 'drivery' jsou nesprávnì konfigurovány v Kompozièní konfiguraci."
+
+#: lib/Driver/sql.php:40
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Nebyl zadán po¾adovaný 'phptype' v konfiguraci Passwd SQL."
+
+#: lib/Driver/vpopmail.php:42
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Nebyl zadán po¾adovaný 'phptype' v konfiguraci SQL."
+
+#: templates/main/main.inc:145
+msgid "Reset"
+msgstr "Smazat"
+
+#: lib/Driver/sql.php:69 lib/Driver/vpopmail.php:76
+msgid "Unable to connect to SQL server."
+msgstr "Nelze se pøipojit na SQL server."
+
+#: lib/Driver/poppassd.php:100 lib/Driver/sql.php:118
+#: lib/Driver/vpopmail.php:135
+msgid "User not found"
+msgstr "U¾ivatel nebyl nalezen"
+
+#: lib/Driver/ldap.php:123 lib/Driver/pine.php:219 lib/Driver/smbldap.php:124
+msgid "User not found."
+msgstr "U¾ivatel nebyl nalezen."
+
+#: templates/main/main.inc:79
+msgid "Username:"
+msgstr "U¾ivatelské Jméno:"
+
+#: main.php:39
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Nelze modifikovat heslo pro u¾ivatele %s"
+
+#: main.php:47
+msgid "You must give your current password"
+msgstr "Prosím zadejte Va¹e souèasné heslo"
+
+#: main.php:56
+msgid "You must give your new password"
+msgstr "Prosím zadejte Va¹e nové heslo"
+
+#: main.php:60
+msgid "You must verify your new password"
+msgstr "Musíte verifikovat Va¹e nové heslo"
+
+#: main.php:80
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Va¹e nové heslo je pøíli¹ dlouhé; heslo nesmí být del¹í ne¾ %d znakù!"
+
+#: main.php:159
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr ""
+"Va¹e nové heslo je pøíli¹ jednoduché k uhádnutí! Heslo nebylo zmìnìno!"
+
+#: main.php:150
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Va¹e nové heslo je pøíli¹ jednoduché k uhádnutí. Heslo nebylo zmìnìno!"
+
+#: main.php:75
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Va¹e nové heslo musí být alespoò %d znakù dlouhé!"
+
+#: main.php:68
+msgid "Your new password must be different from your current password"
+msgstr "Va¹e nové heslo musí být jiné ne¾ Va¹e staré heslo"
+
+#: main.php:120
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d pismen."
+
+#: main.php:125
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d alfanumerických znakù."
+
+#: main.php:130
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Va¹e nové heslo musí obsahovat alespoò %d rùzných typù znakù. Typy jsou: "
+"malé, velké písmena, èíslice a rùzné znaky."
+
+#: main.php:110
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d malých písmen."
+
+#: main.php:115
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d èíslic."
+
+#: main.php:105
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d velkých písmen."
+
+#: main.php:136
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Va¹e nové heslo musí obsahovat alespoò %d mezer."
+
+#: main.php:138
+msgid "Your new password must not contain whitespace characters."
+msgstr "Va¹e nové heslo nesmí obsahovat mezery."
+
+#: main.php:64
+msgid "Your new passwords didn't match"
+msgstr "Va¹e nové hesla se neshodují"
+
+#: lib/Driver/ldap.php:68 lib/Driver/smbldap.php:71
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls selhal"
--- /dev/null
+# Danish translations for Passwd package
+# Danske oversættelser for pakke Passwd
+# Copyright 2003-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Anders Bruun Olsen <anders@bruun-olsen.net>, 2003.
+# Brian Truelsen <horde+i18n@briantruelsen.dk>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.1-cvs)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2006-02-01 21:00+0100\n"
+"PO-Revision-Date: 2006-03-06 22:05+0100\n"
+"Last-Translator: Brian Truelsen <horde+i18n@briantruelsen.dk>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s findes ikke eller er ikke eksekverbar."
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: kan ikke indlæse driver: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI fejl %s."
+
+#: lib/Driver/adsi.php:64 lib/Driver/pspasswd.php:105
+msgid "Access Denied."
+msgstr "Adgang nægtet."
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "Backend er ikke korrekt implementeret."
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Skift kodeord"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Skift kodeord på:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Skift dit kodeord"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Skifter kodeord på %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Bekræft nyt kodeord:"
+
+#: lib/Driver/kolab.php:54 lib/Driver/ldap.php:99 lib/Driver/ldap.php:189
+msgid "Could not bind to LDAP server"
+msgstr "Kunne ikke koble til LDAP-server"
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:74
+msgid "Could not connect to LDAP server"
+msgstr "Kunne ikke opnå forbindelse til LDAP-server"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Kunne ikke åbne forbindelse til smbpasswd."
+
+#: lib/Driver/ldap.php:80
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Kunne ikke start TLS-forbindelse til LDAP-server"
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Fejl ved dataoverførsel til smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Kontrol af gammelt kodeord fejlede."
+
+#: main.php:211 lib/Driver/composite.php:104
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Der skete en fejl ved ændring af kodeord på %s: %s"
+
+#: lib/Driver.php:56 lib/Driver/kolab.php:78 lib/Driver/ldap.php:190
+#: lib/Driver/poppassd.php:114 lib/Driver/vmailmgr.php:42
+msgid "Incorrect Password"
+msgstr "Forkert kodeord"
+
+#: lib/Driver/ldap.php:166
+msgid "Minimum password age has not yet expired"
+msgstr "Minimum kodeordsalder er endnu ikke udstået"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Nyt kodeord:"
+
+#: lib/Driver.php:113
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Backend \"%s\" ikke fundet."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "Gammelt kodeord er ikke korrekt."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Gammelt kodeord:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd-modulet er ikke sat korrekt op."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "Kodeord er skiftet på %s."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Kodeordskolonne \"%s\" ikke fundet i kodeordstabel."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Passwd-modulet kan ikke finde den angivne <code>bin</code>."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Passwd-modulet mangler krævede parametre."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Passwd-modulet mangler mål-parametre."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Passwd modulet er ikke korrekt opsat"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Passwd-modulet er ikke korrekt sat op."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Du skal angive et nyt kodeord"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Indtast venligst dit nuværende kodeord"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Du skal bekræfte dit nye kodeord"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Påkrævet 'drivers' er forkert konfigureret i Composite-konfiguration."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Påkrævet 'phptype' er ikke specificeret i Passwd SQL-opsætning."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Påkrævet 'phptype' er ikke specificeret i SQL opsætning"
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Nulstil"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Websitet, hvortil brugeres kodeord ændres, kunne ikke nås."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Brugernavnet kunne ikke findes."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Kunne ikke opnå forbindelse til SQL serveren."
+
+#: lib/Driver/poppassd.php:108 lib/Driver/sql.php:135
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Brugernavn ikke fundet"
+
+#: lib/Driver/kolab.php:70 lib/Driver/ldap.php:133 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Brugernavn ikke fundet."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Brugernavn:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Du kan ikke skifte kodeord for brugeren %s"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Du skal angive dit nuværende kodeord"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Du skal angive et nyt kodeord"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Du skal bekræfte dit nye kodeord"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Dit nye kodeord er for langt. Kodeord må ikke være mere end %d tegn lange!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Dit nye kodeord er for simpelt at gætte! Det er ikke blevet skiftet!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Dit nye kodeord er for simpelt at gætte! Det er ikke blevet skiftet!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Dit nye kodeord skal være mindst %d tegn langt!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "Dit nye kodeord skal være forskelligt fra dit nuværende kodeord"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Dit nye kodeord skal indeholde mindst %d bogstaver."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Dit nye kodeord skal indeholde mindst %d alfanumeriske tegn."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Dit nye kodeord skal indeholde mindst %d forskellige typer tegn. Typerne er: "
+"minuskler, majuskler, cifre og symboler."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Dit nye kodeord skal indeholde mindst %d små bogstaver."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Dit nye kodeord skal indeholde mindst %d tal."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Dit nye kodeord skal indeholde mindst %d store bogstaver."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Dit nye kodeord skal indeholde færre end %d mellemrumstegn."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "Dit nye kodeord må ikke indeholde mellemrumstegn."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "Dit nye kodeord er ikke ens i begge felter"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Dit kodeord kunne ikke ændres."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Dine kodeord stemmer ikke overens"
--- /dev/null
+# German translations for Passwd.
+# Copyright 2002-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Jens Tkotz <jens.tkotz@f2h9.de>, 2002.
+# Jan Schneider <jan@horde.org>, 2002-2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.1-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2009-11-21 13:07+0100\n"
+"PO-Revision-Date: 2009-11-21 13:18+0100\n"
+"Last-Translator: Jan Schneider <jan@horde.org>\n"
+"Language-Team: German <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s existiert nicht oder ist nicht ausführbar."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "%s-Erweiterung kann nicht geladen werden!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: Treiber konnte nicht geladen werden: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI Fehler %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Zugriff verweigert."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Das Backend wurde nicht korrekt implementiert."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Kommando konnte nicht an den Server geschickt werden."
+
+#: main.php:281 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Passwort ändern"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Passwort ändern für:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Ändern Sie Ihr Passwort"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Passwort für %s ändern"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Neues Passwort bestätigen:"
+
+#: lib/Driver/ldap.php:127 lib/Driver/kolab.php:60
+msgid "Could not bind to LDAP server"
+msgstr "Anbindung im LDAP-Server fehlgeschlagen."
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Passwort konnte nicht geändert werden (Ungültiges altes Passwort?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Passwort konnte nicht geändert werden."
+
+#: lib/Driver/ldap.php:87 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr "Verbindung zum LDAP-Server fehlgeschlagen"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Anmeldung fehlgeschlagen (kein Passwort-Prompt)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Verbindung zu smbpasswd konnte nicht hergestellt werden."
+
+#: lib/Driver/ldap.php:93
+msgid "Could not start TLS connection to LDAP server"
+msgstr "TLS-Verbindung zum LDAP-Server fehlgeschlagen"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+"passwd-Programm konnte nicht gestartet werden (kein Prompt für das alte "
+"Passwort)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Dateiende."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Beim Versenden von Daten zu smbpasswd ist ein Fehler aufgetreten."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Das alte Passwort konnte nicht bestätigt werden."
+
+#: main.php:235 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Fehler beim Ändern des Passworts für %s: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Zwischenspeicher voll."
+
+#: lib/Driver.php:72 lib/Driver/ldap.php:144 lib/Driver/http.php:72
+#: lib/Driver/vmailmgr.php:42 lib/Driver/kolab.php:84
+#: lib/Driver/poppassd.php:120
+msgid "Incorrect old password."
+msgstr "Falsches altes Passwort."
+
+#: lib/Driver/ldap.php:210
+msgid "Minimum password age has not yet expired"
+msgstr "Das minimale Passwortalter ist noch nicht abgelaufen"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr "Neues Passwort ungültig (zu kurz, ungültige Zeichen, zu ähnlich, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Neues Passwort:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Kein Prompt vom Server zurückgeliefert."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Ein Backend namens \"%s\" konnte nicht gefunden werden."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Altes Passwort:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd ist nicht vollständig konfiguriert."
+
+#: main.php:222
+#, php-format
+msgid "Password changed on %s."
+msgstr "Passwort auf %s geändert."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Passwortspalte \"%s\" in der Passworttabelle nicht gefunden."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Passwd kann das angegebene Programm nicht finden."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Passwd fehlen benötigte Parameter."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Passwd fehlt der \"Ziel\"-Parameter."
+
+#: main.php:196 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Passwd ist nicht vollständig konfiguriert"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Passwd ist nicht vollständig konfiguriert."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Bitte geben Sie ein neues Passwort an"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Bitte geben Sie Ihr aktuelles Passwort an"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Bitte bestätigen Sie Ihr neues Passwort"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "'drivers' ist in der Composite-Konfiguration fehlerhaft konfiguriert."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "'phptype' wurde in der SQL-Konfiguration nicht angegeben."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "'phptype' wurde in der SQL-Konfiguration nicht angegeben."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Zurücksetzen"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Die Webseite zur Änderung der Passwörter konnte nicht erreicht werden."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Der Benutzername konnte nicht gefunden werden."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Zeitüberschreitung."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Verbindung zum SQL Server kann nicht hergestellt werden."
+
+#: lib/Driver/ldap.php:99
+msgid "Unable to disable directory referrals"
+msgstr "Directory-Referrals konnten nicht deaktiviert werden"
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Der Expect-Stream konnte nicht geöffnet werden!"
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Benutzer nicht gefunden"
+
+#: lib/Driver/ldap.php:187 lib/Driver/ldap.php:259 lib/Driver/kolab.php:76
+#: lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Benutzer nicht gefunden."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: main.php:60
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Sie können das Passwort von Benutzer %s nicht ändern"
+
+#: main.php:68
+msgid "You must give your current password"
+msgstr "Sie müssen Ihr altes Passwort angeben"
+
+#: main.php:77
+msgid "You must give your new password"
+msgstr "Sie müssen Ihr neues Passwort angeben"
+
+#: main.php:81
+msgid "You must verify your new password"
+msgstr "Sie müssen Ihr neues Passwort bestätigen"
+
+#: main.php:101
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Ihr neues Passwort ist zu lang, das Passwort darf nicht länger als %d "
+"Zeichen sein!"
+
+#: main.php:185
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Ihr neues Passwort ist zu leicht zu erraten! Nicht geändert!"
+
+#: main.php:176
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Ihr neues Passwort ist zu leicht zu erraten. Nicht geändert!"
+
+#: main.php:96
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Ihr neues Passwort muss mindestens %d Zeichen lang sein!"
+
+#: main.php:89
+msgid "Your new password must be different from your current password"
+msgstr "Ihr neues Passwort muss sich von Ihrem alten unterscheiden"
+
+#: main.php:141
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] "Ihr neues Passwort muss mindestens %d Buchstaben enthalten."
+msgstr[1] "Ihr neues Passwort muss mindestens %d Buchstaben enthalten."
+
+#: main.php:146
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] ""
+"Ihr neues Passwort muss mindestens %d Buchstaben oder Zahl enthalten."
+msgstr[1] ""
+"Ihr neues Passwort muss mindestens %d Buchstaben oder Zahlen enthalten."
+
+#: main.php:151
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Ihr neues Passwort muss mindestens %d verschiedenen Zeichentypen enhalten. "
+"Typen sind: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen."
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] "Ihr neues Passwort muss mindestens %d Kleinbuchstaben enthalten."
+msgstr[1] "Ihr neues Passwort muss mindestens %d Kleinbuchstaben enthalten."
+
+#: main.php:136
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] "Ihr neues Passwort muss mindestens %d Zahl enthalten."
+msgstr[1] "Ihr neues Passwort muss mindestens %d Zahlen enthalten."
+
+#: main.php:165
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] "Ihr neues Passwort muss mindestens %d Symbolzeichen enthalten."
+msgstr[1] "Ihr neues Passwort muss mindestens %d Symbolzeichen enthalten."
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] "Ihr neues Passwort muss mindestens %d Großbuchstaben enthalten."
+msgstr[1] "Ihr neues Passwort muss mindestens %d Großbuchstaben enthalten."
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Ihr neues Passwort darf nicht mehr als %d Leerzeichen enthalten."
+
+#: main.php:159
+msgid "Your new password must not contain whitespace characters."
+msgstr "Ihr neues Passwort darf keine Leerzeichen enthalten."
+
+#: main.php:85
+msgid "Your new passwords didn't match"
+msgstr "Ihre neuen Passwörter stimmen nicht überein"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Ihr Passwort konnte nicht geändert werden."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Ihre Passwörter stimmen nicht überein"
--- /dev/null
+# Spanish translations for passwd package
+# Traducciones al español para el paquete passwd.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the passwd package.
+# Automatically generated, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.1-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2009-02-20 17:11+0100\n"
+"PO-Revision-Date: 2009-02-20 17:11+0100\n"
+"Last-Translator: Manuel P. Ayala <mayala@unex.es>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s no existe o no es ejecutable."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "¡No se puede cargar la extensión %s!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: no se puede cargar el controlador: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "Error ADSI %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Acceso denegado."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "No se ha desarrollado adecuadamente el motor."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "No se puede enviar el comando al servidor."
+
+#: main.php:268 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Cambiar la contraseña"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Cambiar contraseña de:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Cambiar la contraseña"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Cambiando la contraseña de %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Confirmar la nueva contraseña:"
+
+#: lib/Driver/ldap.php:114 lib/Driver/kolab.php:60
+msgid "Could not bind to LDAP server"
+msgstr "No se pudo enlazar al servidor LDAP"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "No se pudo cambiar la contraseña (¿antigua contraseña incorrecta)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "No se pudo cambiar la contraseña."
+
+#: lib/Driver/ldap.php:80 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr "No se pudo conectar al servidor LDAP"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr ""
+"No se pudo iniciar sesión en el sistema (no hay solicitud de contraseña)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "No se pudo abrir una canalización a smbpasswd."
+
+#: lib/Driver/ldap.php:86
+msgid "Could not start TLS connection to LDAP server"
+msgstr "No se pudo iniciar una conexión TLS al servidor LDAP"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+"No se pudo iniciar el programa passwd (no hay solicitud de contraseña "
+"antigua)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Fin del archivo."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Error al enviar los datos a smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "La comprobación de la contraseña antigua ha fallado."
+
+#: main.php:222 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Fallo al cambiar la contraseña de %s: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Buffer lleno."
+
+#: lib/Driver.php:72 lib/Driver/ldap.php:131 lib/Driver/poppassd.php:120
+#: lib/Driver/vmailmgr.php:42 lib/Driver/http.php:72 lib/Driver/kolab.php:84
+msgid "Incorrect old password."
+msgstr "Contraseña antigua incorrecta"
+
+#: lib/Driver/ldap.php:190
+msgid "Minimum password age has not yet expired"
+msgstr "La antigüedad mínima de la contraseña no ha caducado aún"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+"La contraseña nueva no es válida (demasiado corta, incorrecta, muy "
+"parecida, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Nueva contraseña:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "El servidor no devolvió una solicitud."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "No se encontró el motor \"%s\"."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Antigua contraseña:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd no está bien configurado."
+
+#: main.php:214
+#, php-format
+msgid "Password changed on %s."
+msgstr "Se ha cambiado la contraseña en %s."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr ""
+"No se encontró la columna de contraseña \"%s\" en la tabla de contraseñas."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "El módulo de contraseñas no puede localizar el binario indicado."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Al módulo de contraseñas le faltan parámetros necesarios."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Al módulo de contraseñas le falta el parámetro de destino."
+
+#: main.php:188 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "El módulo de contraseñas no está bien configurado"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "El módulo de contraseñas no está bien configurado."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Introduzca una nueva contraseña"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Introduzca su contraseña actual"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Compruebe la contraseña nueva"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Los 'controladores' requeridos están desconfigurados en la configuración de "
+"Redacción."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"No se ha especificado en la configuración de Passwd SQL el 'phptype' "
+"requerido."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr ""
+"No se ha especificado en la configuración de SQL el 'phptype' requerido."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Limpiar"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr ""
+"El sitio web solicitado para cambiar las contraseñas de los usuarios no se "
+"pudo alcanzar."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "No se pudo encontrar el nombre de usuario."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Tiempo agotado."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Incapaz de conectarse al servidor SQL."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "¡Incapaz de abrir el canal esperado!"
+
+#: lib/Driver/poppassd.php:114 lib/Driver/sql.php:135
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "No se encontró el usuario"
+
+#: lib/Driver/pine.php:231 lib/Driver/ldap.php:167 lib/Driver/ldap.php:249
+#: lib/Driver/smbldap.php:160 lib/Driver/kolab.php:76
+msgid "User not found."
+msgstr "No se encontró el usuario."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Usuario:"
+
+#: main.php:52
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "No puede cambiar la clave del usuario %s"
+
+#: main.php:60
+msgid "You must give your current password"
+msgstr "Tiene que introducir su contraseña actual"
+
+#: main.php:69
+msgid "You must give your new password"
+msgstr "Tiene que introducir su nueva contraseña"
+
+#: main.php:73
+msgid "You must verify your new password"
+msgstr "Tiene que comprobar la contraseña nueva"
+
+#: main.php:93
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Su nueva contraseña es demasiado larga; ¡las contraseñas no pueden tener más "
+"de %d caracteres!"
+
+#: main.php:177
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr ""
+"¡Su nueva contraseña es demasiado fácil de adivinar! ¡No se ha cambiado!"
+
+#: main.php:168
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr ""
+"¡Su nueva contraseña es demasiado fácil de adivinar! ¡No se ha cambiado!"
+
+#: main.php:88
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "¡Su nueva contraseña tiene que tener al menos %d caracteres!"
+
+#: main.php:81
+msgid "Your new password must be different from your current password"
+msgstr "Su nueva contraseña tiene que ser distinta de la actual"
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter alfabético."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres alfabéticos."
+
+#: main.php:138
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter alfanumérico."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres alfanuméricos."
+
+#: main.php:143
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Su nueva contraseña tiene que contener al menos %d tipos distintos de "
+"caracteres. Los tipos son: minúsculas, mayúsculas, números y símbolos."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter en minúsculas."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres en minúsculas."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter numérico."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres numéricos."
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter de puntuación."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres de puntuación."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] ""
+"Su nueva contraseña tiene que contener al menos %d carácter en mayúsculas."
+msgstr[1] ""
+"Su nueva contraseña tiene que contener al menos %d caracteres en mayúsculas."
+
+#: main.php:149
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Su nueva contraseña tiene que contener menos de %d espacios."
+
+#: main.php:151
+msgid "Your new password must not contain whitespace characters."
+msgstr "Su nueva contraseña no puede contener espacios."
+
+#: main.php:77
+msgid "Your new passwords didn't match"
+msgstr "La contraseña nueva y la antigua no concuerdan"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Su contraseña no se pudo cambiar"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Sus contraseñas no concuerdan"
--- /dev/null
+# PASSWD ESTONIAN TRANSLATION
+#
+# Toomas Aas <toomas.aas@raad.tartu.ee>, 2004 - 2010
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.1.2\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2010-04-12 20:51+0300\n"
+"PO-Revision-Date: 2010-04-13 22:00+0300\n"
+"Last-Translator: Toomas Aas <toomas.aas@raad.tartu.ee>\n"
+"Language-Team: Estonian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s puudub või pole käivitatav."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "%s laiendust ei saa laadida!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: ei õnnestu laadida draiverit: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI viga %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Juurdepääs keelatud."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Alusrakendus ei ole korralikult paigaldatud."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Käsku ei õnnestunud serverile saata."
+
+#: main.php:281 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Vaheta salasõna"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Vaheta salasõna süsteemis:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Muuda oma salasõna"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Salasõna muutmine süsteemis %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Korda uut salasõna:"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:120
+msgid "Could not bind to LDAP server"
+msgstr "Ei saanud sisse LDAP serverisse"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Salasõna muutmine nurjus (vale vana salasõna?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Salasõna muutmine nurjus."
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:80
+msgid "Could not connect to LDAP server"
+msgstr "Ei saanud ühendust LDAP serveriga."
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Süsteemi sisselogimine nurjus (ei näinud parooliviipa)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Ei õnnestunud avada toru smbpasswd-ga."
+
+#: lib/Driver/ldap.php:86
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Ei õnnestunud avada TLS ühendust LDAP serveriga."
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr "passwd programmi käivitamine nurjus (ei näinud vana parooli viipa)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Faili lõpp."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Viga andmete saatmisel smbpasswd-le."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Vana salasõna kontroll nurjus."
+
+#: main.php:235 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Salasõna muutmine %s süsteemis nurjus: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Puhver täis"
+
+#: lib/Driver.php:72 lib/Driver/http.php:72 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:84 lib/Driver/poppassd.php:120 lib/Driver/ldap.php:138
+msgid "Incorrect old password."
+msgstr "Vale vana salasõna."
+
+#: lib/Driver/ldap.php:204
+msgid "Minimum password age has not yet expired"
+msgstr "Salasõna vähim kehtivusaeg pole veel täis"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr "Uus salasõna ei sobi (liiga lühike, lubamatu sõna, liiga sarnane, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Uus salasõna:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Server ei tagastanud viipa."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Alusrakendust \"%s\" ei leitud."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Vana salasõna:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd moodul ei ole korralikult häälestatud."
+
+#: main.php:222
+#, php-format
+msgid "Password changed on %s."
+msgstr "Salasõna süsteemis %s muudetud."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Salasõnade tabelis ei leitud salasõna veergu \"%s\"."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Salasõna moodul ei leia etteantud programmi."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Salasõna moodulil puuduvad vajalikud parameetrid."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Salasõna moodulil puudub target parameeter."
+
+#: main.php:196 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Salasõna moodul ei ole korralikult häälestatud"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Salasõna moodul ei ole korralikult häälestatud."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Sa pead sisestama uue salasõna"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Sa pead sisestama kehtiva salasõna"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Uus salasõna tuleb sisestada kaks korda"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Kohustuslik parameeter 'drivers' on Composite seadistuses valesti määratud."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Passwd mooduli SQL häälestuses puudub vajalik 'phptype'."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "SQL häälestuses puudub vajalik 'phptype'."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Tühjenda vorm"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Salasõna muutmise veebisaidiga ei saanud ühendust."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Kasutajanime ei leitud."
+
+msgid "Time out."
+msgstr "Ajalimiidi ületamine."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Ei saa ühendust SQL serveriga."
+
+#: lib/Driver/ldap.php:92
+msgid "Unable to disable directory referrals"
+msgstr "Kataloogiviiteid ei saa välja lülitada."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Expect voo avamine nurjus!"
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Kasutajat ei leitud"
+
+#: lib/Driver/kolab.php:76 lib/Driver/pine.php:231 lib/Driver/ldap.php:181
+#: lib/Driver/ldap.php:253
+msgid "User not found."
+msgstr "Kasutajat ei leitud."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Kasutajanimi:"
+
+#: main.php:60
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Sa ei saa muuta kasutaja %s salasõna"
+
+#: main.php:68
+msgid "You must give your current password"
+msgstr "Sa pead sisestama oma kehtiva salasõna"
+
+#: main.php:77
+msgid "You must give your new password"
+msgstr "Sa pead sisestama oma uue salasõna"
+
+#: main.php:81
+msgid "You must verify your new password"
+msgstr "Uus salasõna tuleb sisestada kaks korda"
+
+#: main.php:101
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Uus salasõna on liiga pikk; salasõna ei tohi olla pikem kui %d märki!"
+
+#: main.php:185
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Uut salasõna on liiga lihtne ära arvata! Salasõna ei muudetud!"
+
+#: main.php:176
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Uut salasõna on liiga lihtne ära arvata. Salasõna ei muudetud!"
+
+#: main.php:96
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Uus salasõna peab olema vähemalt %d märki pikk!"
+
+#: main.php:89
+msgid "Your new password must be different from your current password"
+msgstr "Uus salasõna peab erinema praegusest salasõnast"
+
+#: main.php:141
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d tähte."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d tähte."
+
+#: main.php:146
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d tähte või numbrit."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d tähte või numbrit."
+
+#: main.php:151
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Uus salasõna peab sisaldama vähemalt %d eri tüüpi märki. Tüübid on: "
+"väiketäht, suurtäht, number ja muu märk."
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d väiketähte."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d väiketähte."
+
+#: main.php:136
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d numbrit."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d numbrit."
+
+#: main.php:165
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d erimärki."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d erimärki."
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] "Uus salasõna peab sisaldama vähemalt %d suurtähte."
+msgstr[1] "Uus salasõna peab sisaldama vähemalt %d suurtähte."
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Uus salasõna peab sisaldama vähem kui %d tühikut."
+
+#: main.php:159
+msgid "Your new password must not contain whitespace characters."
+msgstr "Uus salasõna ei tohi sisaldada tühikuid."
+
+#: main.php:85
+msgid "Your new passwords didn't match"
+msgstr "Sisestatud salasõnad ei klapi"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Salasõnad ei õnnestunud muuta."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Salasõnad ei klapi"
--- /dev/null
+# Persian translations for Passwd package.
+# This file is distributed under the same license as the Passwd package.
+#
+# Copyright 2004 High Concil of Informatics (www.shci.ir)
+# Provided by Amirkabir Metanetworking Ltd, 2004 <horde@metanetworking.com>
+# Mohsen Nader-Badr <naderi@metanetworking.com>
+# Chakameh Mortezania <mortezania@metanetworking.com>
+# Salman Niksefat <niksefat@metanetworking.com>
+# hamed Gheybit <gheybi@metanetworking.com>
+# Vahid Ghafarpour <ghafarpour@metanetworking.com>
+# Zahra Ahmadi Firouzjaee <ahmadi@metanetworking.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3 ALPHA\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-07-14 11:48+0430\n"
+"PO-Revision-Date: 2005-07-08 12:45+0430\n"
+"Last-Translator: Amirkabir Metanetworking ltd. <persian-horde@metanetworking."
+"com>\n"
+"Language-Team: Persian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s موجود نیست و یا قابل اجرا نیست"
+
+#: lib/Driver/composite.php:59
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: نمیتوان راهانداز را بارکرد: %s"
+
+#: lib/Driver/adsi.php:54
+#, php-format
+msgid "ADSI error %s."
+msgstr "خطای ADSI %s."
+
+#: lib/Driver/pspasswd.php:97 lib/Driver/adsi.php:57
+msgid "Access Denied."
+msgstr "عدم اجازهٔ دسترسی."
+
+#: lib/Driver.php:80
+msgid "Backend not correctly implemented."
+msgstr "پشتیبان به درستی پیادهسازی نشدهاست."
+
+#: main.php:244 templates/main/main.inc:144
+msgid "Change Password"
+msgstr "تغییر اسم رمز"
+
+#: templates/main/main.inc:129
+msgid "Change password on:"
+msgstr "تغییر اسم رمز بر روی:"
+
+#: templates/main/main.inc:64
+msgid "Change your password"
+msgstr "اسم رمز خود را تغییر دهید"
+
+#: templates/main/main.inc:71
+#, php-format
+msgid "Changing password on %s"
+msgstr "تغییر اسم رمز بر روی %s"
+
+#: templates/main/main.inc:116
+msgid "Confirm new password:"
+msgstr "تأیید اسم رمز جدید:"
+
+#: lib/Driver/ldap.php:93 lib/Driver/ldap.php:240 lib/Driver/kolab.php:48
+#: lib/Driver/smbldap.php:90 lib/Driver/smbldap.php:171
+msgid "Could not bind to ldap server"
+msgstr "نمیتوان به کارساز ldap پیوست"
+
+#: lib/Driver/ldap.php:64 lib/Driver/kolab.php:40 lib/Driver/smbldap.php:67
+msgid "Could not connect to ldap server"
+msgstr "نمیتوان به کارساز ldap متصل شد"
+
+#: lib/Driver/smbpasswd.php:53
+msgid "Could not open pipe to smbpasswd."
+msgstr "نمیتوان راهی به smbpasswd باز کرد."
+
+#
+#: lib/Driver/smbpasswd.php:75
+msgid "Error sending data to smbpasswd."
+msgstr "خطا در ارسال داده به smbpasswd."
+
+#: lib/Driver/pspasswd.php:85
+msgid "Failed to verify old password."
+msgstr "بازبینی اسم رمز قدیمی ناموفّق بود."
+
+#: main.php:205 lib/Driver/composite.php:93
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "عدم موفّقیّت در تغییر اسم رمز بر %s : %s"
+
+#: lib/Driver.php:51 lib/Driver/vmailmgr.php:35 lib/Driver/poppassd.php:109
+#: lib/Driver/ldap.php:241 lib/Driver/kolab.php:72 lib/Driver/smbldap.php:172
+msgid "Incorrect Password"
+msgstr "اسم رمز نادرست"
+
+#: lib/Driver/ldap.php:223
+msgid "Minimum password age has not yet expired"
+msgstr "حداقل عمر اسم رمز هنوز منقضی نشدهاست"
+
+#: templates/main/main.inc:104
+msgid "New password:"
+msgstr "اسم رمز جدید:"
+
+#: lib/Driver.php:107
+#, php-format
+msgid "No such backend '%s' found."
+msgstr "پشتیبان '%s' پیدانشد."
+
+#: templates/main/main.inc:92
+msgid "Old password:"
+msgstr "اسم رمز قدیمی:"
+
+#: lib/Driver/smbpasswd.php:43
+msgid "Passwd is not properly configured."
+msgstr "Passwd به طور کامل پیکربندی نشده است."
+
+#: main.php:197
+#, php-format
+msgid "Password changed on %s."
+msgstr "اسم رمز بر %s تغییر یافت."
+
+#: lib/Driver/pspasswd.php:67
+msgid "Password module can't find the supplied bin."
+msgstr "مدول اسم رمز باینری مورد نیاز را نتوانست پیدا کند."
+
+#: lib/Driver/pspasswd.php:65
+msgid "Password module is missing required parameters."
+msgstr "مدول اسم رمز پارامترهای موردنیاز را ندارد."
+
+#: lib/Driver/adsi.php:44
+msgid "Password module is missing target parameter."
+msgstr "مدول اسم رمز پارامترهای مقصد را ندارد."
+
+#: main.php:178 lib/Driver/servuftp.php:66
+msgid "Password module is not properly configured"
+msgstr "مدول اسم رمز به طور مناسب پیکربندی نشده است"
+
+#: lib/Driver/servuftp.php:93
+msgid "Password module is not properly configured."
+msgstr "مدول اسم رمز به طور کامل پیکربندی نشده است."
+
+#: lib/Driver/composite.php:35
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "فیلد 'drivers' در پیکربندی، غلط پیکربندی شده است."
+
+#: lib/Driver/sql.php:41
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "فیلد 'phptype' در پیکربندی مدول passwd مشخص نشده است."
+
+#: lib/Driver/vpopmail.php:44
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "فیلد 'phptype' در پیکربندی SQL مشخص نشده است."
+
+#: templates/main/main.inc:145
+msgid "Reset"
+msgstr "بازنشانی"
+
+#: lib/Driver/vpopmail.php:78 lib/Driver/sql.php:70
+msgid "Unable to connect to SQL server."
+msgstr "امکان اتصال به کارساز SQl نمیباشد."
+
+#: lib/Driver/poppassd.php:103 lib/Driver/vpopmail.php:138
+#: lib/Driver/sql.php:120
+msgid "User not found"
+msgstr "کاربر پیدا نشد"
+
+#: lib/Driver/pine.php:225 lib/Driver/ldap.php:130 lib/Driver/kolab.php:64
+#: lib/Driver/smbldap.php:127
+msgid "User not found."
+msgstr "کاربر پیدا نشد."
+
+#: templates/main/main.inc:79
+msgid "Username:"
+msgstr "نام کاربر:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "شما نمیتوانید اسم رمز کاربر %s را تغییر دهید"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "شما باید اسم رمز کنونی خود را بدهید"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "شما باید اسم رمز جدید خود را بدهید "
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "شما باید اسم رمز جدید خود را بازبینی کنید"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"اسم رمز جدید شما بسیار طولانی است، اسم رمزها نباید بیش از %d نویسه باشد!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "اسم رمز جدید شما برای حدس زدن بسیار آسان میباشد! اسم رمز تغییر نیافت!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "اسم رمز جدید شما برای حدس زدن بسیار آسان میباشد. اسم رمز تغییر نیافت!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "اسم رمز جدید شما باید حداقل %d نویسه باشد!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "اسم رمز جدید شما باید با اسم رمز کنونی شما متفاوت باشد"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "اسم رمز جدید شما حداقل باید شامل %d نویسهٔ الفبایی باشد."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "اسم رمز جدید شما حداقل باید شامل %d نویسهٔ الفبایی و عددی باشد."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"اسم رمز جدید شما حداقل باید شامل %d از انواع متفاوت نویسه باشد. انواع بدین "
+"صورت هستند: حروف کوچک، حروف بزرگ، عددی و نشانهها."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "اسم رمز جدید شما حداقل باید شامل %d نویسه با حروف کوچک باشد."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "اسم رمز جدید شما حداقل باید شامل %d نویسه عددی باشد."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "اسم رمز جدید شما حداقل باید شامل %d نویسه با حروف بزرگ باشد."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "اسم رمز جدید شما حداکثر باید شامل %d نویسهٔ جای خالی باشد."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "اسم رمز جدید شما نباید شامل نویسهٔ جای خالی باشد."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "اسم رمزهای جدید شما تطابق ندارد"
+
+#: lib/Driver/ldap.php:70 lib/Driver/smbldap.php:73
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls ناموفّق بود"
--- /dev/null
+# Finnish translation for Passwd.
+# Copyright
+# Tero Matinlassi <tero.matinlassi@edu.vantaa.fi>, 2002.
+# Leena Heino <liinu@uta.fi>, 2002-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.1-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-11-03 12:17+0200\n"
+"PO-Revision-Date: 2008-11-03 12:59+0200\n"
+"Last-Translator: Leena Heino <liinu@uta.fi>\n"
+"Language-Team: Finnish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s ei ole olemassa tai ei ole ajettava ohjelma."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "%s-laajennusta ei voitu ladata!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: ei voi ladata ajuria: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI virhe %s."
+
+#: lib/Driver/adsi.php:64 lib/Driver/pspasswd.php:105
+msgid "Access Denied."
+msgstr "Käyttö kielletty."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Taustajärjestelmä ei toiminut oikein."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Komento lähetettiin palvelimelle."
+
+#: main.php:268 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Vaihda salasanasi"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Vaihda salasana:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Vaihda salasanasi"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Vaihdetaan salasanaa %s:lle"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Vahvista uusi salasana"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:114
+msgid "Could not bind to LDAP server"
+msgstr "LDAP-palvelinta ei voitu käyttää"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Ei voitu vaihtaa salasanaa (väärä vanha salasana?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Ei voitu vaihtaa salasanaa."
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:80
+msgid "Could not connect to LDAP server"
+msgstr "LDAP-palvelimeen ei saatu yhteyttä"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Ei voitu kirjautua järjestelmään (ei salasanakehoitetta)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Ei voitu aukaista putkea smbpasswd-ohjelmalle."
+
+#: lib/Driver/ldap.php:86
+msgid "Could not start TLS connection to LDAP server"
+msgstr "LDAP-palvelimeen ei saatu TLS-suojattua yhteyttä"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+"Ei voitu käynnistää passwd komentoa (ei kehoitetta vanhalle salasanalle)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Tiedoston loppu."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Tapahtui virhe lähetettäessä tietoa smbpasswd-ohjelmalle."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Vanha salasana on väärä."
+
+#: main.php:222 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Salasanan vaihto epäonnistui %s:lle: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Bufferi on täynnä."
+
+#: lib/Driver.php:72 lib/Driver/http.php:72 lib/Driver/kolab.php:84
+#: lib/Driver/ldap.php:131 lib/Driver/poppassd.php:120
+#: lib/Driver/vmailmgr.php:42
+msgid "Incorrect old password."
+msgstr "Väärä vanha salasana"
+
+#: lib/Driver/ldap.php:190
+msgid "Minimum password age has not yet expired"
+msgstr "Salasanan vaihtamisenestoaika ei ole vielä kulunut umpeen"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+"Uusi salasana ei kelpaa (liian lynyt, huono salasana, liian "
+"samankaltainen, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Uusi salasana:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Palvelin ei palauttanut kehoitetta."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Taustajärjestelmää \"%s\" ei löytynyt."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Vanha salasana:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Password-ohjelmisto ei ole asennettu oikein."
+
+#: main.php:214
+#, php-format
+msgid "Password changed on %s."
+msgstr "Salasana vaihdettu %s."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Password saraketta \"%s\" ei löytynyt password taulusta."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Password-moduuli ei löydä annettua komentoa."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Password-moduulilta puuttuu tarvittavia parametrejä."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Password-moduulille ei ole määritelty target parametria."
+
+#: main.php:188 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Password-moduuli ei ole asennettu oikein"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Password-moduuli ei ole asennettu oikein."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Sinun täytyy antaa uusi salasanasi"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Sinun täytyy antaa nykyinen salasanasi"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Sinun täytyy vahvistaa uusi salasanasi"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Tarvittavaa 'drivers'-asetusta ei ollut määritelty Composite-asetuksissa."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"Tarvittavaa 'phptype'-asetusta ei ollut määritelty Passwd SQL-asetuksissa."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Tarvittavaa 'phptype'-asetusta ei ollut määritelty SQL-asetuksissa."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Tyhjennä"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Salasananvaihtosivustolle ei saatu yhteyttä."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Käyttäjätunnusta ei löytynyt."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Aika ylittyi."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "SQL-palvelimeen ei saada yhteyttä."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Expect vuota ei voitu aukaista!"
+
+#: lib/Driver/poppassd.php:114 lib/Driver/sql.php:135
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Käyttäjää ei löytynyt"
+
+#: lib/Driver/kolab.php:76 lib/Driver/ldap.php:167 lib/Driver/ldap.php:249
+#: lib/Driver/pine.php:231 lib/Driver/smbldap.php:160
+msgid "User not found."
+msgstr "Käyttäjää ei löytynyt."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Käyttäjätunnus:"
+
+#: main.php:52
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Et voi vaihtaa käyttäjän %s salasanaa"
+
+#: main.php:60
+msgid "You must give your current password"
+msgstr "Sinun täytyy antaa nykyinen salasanasi"
+
+#: main.php:69
+msgid "You must give your new password"
+msgstr "Sinun täytyy antaa haluamasi uusi salasana"
+
+#: main.php:73
+msgid "You must verify your new password"
+msgstr "Sinun täytyy vahvistaa uusi salasanasi"
+
+#: main.php:93
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Uusi salasanasi on liian pitkä; salasanat eivät saa olla %d merkkiä pidempiä!"
+
+#: main.php:177
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Uusi salasanasi on liian helppo arvata. Salasanaa ei vaihdettu!"
+
+#: main.php:168
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Uusi salasanasi on liian helppo arvata. Salasanaa ei vaihdettu!"
+
+#: main.php:88
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Uuden salasanasi täytyy olla vähintään %d merkkiä pitkä!"
+
+#: main.php:81
+msgid "Your new password must be different from your current password"
+msgstr "Uusi salasana ei saa olla sama kuin nykyinen salasanasi"
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d kirjain"
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d kirjainta"
+
+#: main.php:138
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d kirjain tai numero."
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d kirjainta tai numeroa."
+
+#: main.php:143
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Uuden salasanan pitää täyttää vähintään %d vaatimusta. Vaatimukset ovat: "
+"pieniä kirjaimia, isoja kirjaimia, numeroita ja symboleita."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d pieni kirjain."
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d pientä kirjainta."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d numero."
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d numeroa."
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d symbolimerkki."
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d symbolimerkkiä."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] "Uudessa salasanassa pitää olla vähintään %d iso kirjain."
+msgstr[1] "Uudessa salasanassa pitää olla vähintään %d isoa kirjainta."
+
+#: main.php:149
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Uudessa salasanassa pitää olla vähintään %d välilyöntimerkkiä."
+
+#: main.php:151
+msgid "Your new password must not contain whitespace characters."
+msgstr "Uudessa salasanassa ei saa olla välilyöntimerkkejä."
+
+#: main.php:77
+msgid "Your new passwords didn't match"
+msgstr "Antamasi uudet salasanat eivät täsmää"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Salasanaasii ei voitu vaihtaa."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Antamasi salasanat eivät täsmää"
--- /dev/null
+# Passwd-h3 module translations.
+# translation of fr_FR.po to Français
+# Copyright 2003, 2004 Free Software Foundation, Inc.
+# Eric Rostetter <rostetter@mail.utexas.edu>, 2002.
+# Pierre Lachance <pl@pierrelachance.net> et Benoit St-André (ben@benoitst-andre.net), 2003, 2004.
+# Thierry Thomas <thierry@pompo.net>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd-h3-3.0\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-08-26 23:03+0200\n"
+"PO-Revision-Date: 2005-08-26 23:30+0200\n"
+"Last-Translator: Thierry Thomas <thierry@pompo.net>\n"
+"Language-Team: French <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s n'existe pas ou n'est pas exécutable."
+
+#: lib/Driver/composite.php:59
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s : chargement du pilote %s impossible"
+
+#: lib/Driver/adsi.php:54
+#, php-format
+msgid "ADSI error %s."
+msgstr "Erreur ADSI %s."
+
+#: lib/Driver/pspasswd.php:97 lib/Driver/adsi.php:57
+msgid "Access Denied."
+msgstr "Accès refusé."
+
+#: lib/Driver.php:80
+msgid "Backend not correctly implemented."
+msgstr "Dorsal incorrectement implémenté."
+
+#: main.php:246 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Modification du mot de passe"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Modification du mot de passe sur :"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Modification de votre mot de passe"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Modifier votre mot de passe sur %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Confirmer le nouveau mot de passe :"
+
+#: lib/Driver/kolab.php:48 lib/Driver/smbldap.php:90
+#: lib/Driver/smbldap.php:171 lib/Driver/ldap.php:93 lib/Driver/ldap.php:240
+msgid "Could not bind to ldap server"
+msgstr "Ne peut se connecter au serveur LDAP"
+
+#: lib/Driver/kolab.php:40 lib/Driver/smbldap.php:67 lib/Driver/ldap.php:64
+msgid "Could not connect to ldap server"
+msgstr "Échec de la connexion au serveur LDAP"
+
+#: lib/Driver/smbpasswd.php:53
+msgid "Could not open pipe to smbpasswd."
+msgstr "Impossible de communiquer avec smbpasswd."
+
+#: lib/Driver/smbpasswd.php:75
+msgid "Error sending data to smbpasswd."
+msgstr "Erreur lors de l'envoi de données vers smbpasswd."
+
+#: lib/Driver/pspasswd.php:85
+msgid "Failed to verify old password."
+msgstr "Échec de la vérification de l'ancien mot de passe."
+
+#: main.php:203 lib/Driver/composite.php:93
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "La modification de votre mot de passe sur %s a échoué : %s"
+
+#: lib/Driver.php:51 lib/Driver/vmailmgr.php:35 lib/Driver/kolab.php:72
+#: lib/Driver/poppassd.php:109 lib/Driver/smbldap.php:172
+#: lib/Driver/ldap.php:241
+msgid "Incorrect Password"
+msgstr "Mot de passe incorrect"
+
+#: lib/Driver/ldap.php:223
+msgid "Minimum password age has not yet expired"
+msgstr "L'âge minimum du mot de passe n'est pas encore expiré"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Nouveau mot de passe :"
+
+#: lib/Driver.php:107
+#, php-format
+msgid "No such backend '%s' found."
+msgstr "Aucun dorsal « %s » trouvé."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Ancien mot de passe :"
+
+#: lib/Driver/smbpasswd.php:43
+msgid "Passwd is not properly configured."
+msgstr ""
+"Le module de changement de mot de passe n'est pas correctement configuré."
+
+#: main.php:195
+#, php-format
+msgid "Password changed on %s."
+msgstr "Mot de passe modifié sur %s."
+
+#: lib/Driver/pspasswd.php:67
+msgid "Password module can't find the supplied bin."
+msgstr ""
+"Le module de changement du mot de passe ne trouve pas le programme indiqué."
+
+#: lib/Driver/pspasswd.php:65
+msgid "Password module is missing required parameters."
+msgstr ""
+"Paramètres obligatoires absents pour le module de changement du mot de passe."
+
+#: lib/Driver/adsi.php:44
+msgid "Password module is missing target parameter."
+msgstr "Paramètre cible absent pour le module de changement du mot de passe."
+
+#: main.php:176 lib/Driver/servuftp.php:66
+msgid "Password module is not properly configured"
+msgstr ""
+"Le module de changement du mot de passe n'est pas correctement configuré"
+
+#: lib/Driver/servuftp.php:93
+msgid "Password module is not properly configured."
+msgstr ""
+"Le module de changement du mot de passe n'est pas correctement configuré."
+
+#: lib/Driver/composite.php:35
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Le pilote n'est pas correctement configuré."
+
+#: lib/Driver/sql.php:41
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "'phptype' requis non indiqué dans la configuration de Passwd SQL."
+
+#: lib/Driver/vpopmail.php:44
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "'phptype' requis non indiqué dans la configuration de SQL."
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "RÀZ"
+
+#: lib/Driver/vpopmail.php:78 lib/Driver/sql.php:70
+msgid "Unable to connect to SQL server."
+msgstr "Connexion impossible au serveur SQL."
+
+#: lib/Driver/vpopmail.php:138 lib/Driver/sql.php:120
+#: lib/Driver/poppassd.php:103
+msgid "User not found"
+msgstr "Utilisateur non trouvé"
+
+#: lib/Driver/kolab.php:64 lib/Driver/pine.php:225 lib/Driver/smbldap.php:127
+#: lib/Driver/ldap.php:130
+msgid "User not found."
+msgstr "Utilisateur non trouvé."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Utilisateur :"
+
+#: main.php:45
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Vous ne pouvez pas changer le mot de passe pour l'utilisateur %s"
+
+#: main.php:53
+msgid "You must give your current password"
+msgstr "Vous devez saisir votre mot de passe actuel"
+
+#: main.php:62
+msgid "You must give your new password"
+msgstr "Vous devez saisir votre nouveau mot de passe"
+
+#: main.php:66
+msgid "You must verify your new password"
+msgstr "Vous devez ressaisir votre nouveau mot de passe"
+
+#: main.php:86
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Votre nouveau mot de passe est trop long ; un mot de passe ne peut posséder "
+"plus de %d caractères !"
+
+#: main.php:165
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Votre nouveau mot de passe est trop simple ! Non modifié !"
+
+#: main.php:156
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Votre nouveau mot de passe est trop simple. Non modifié !"
+
+#: main.php:81
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Votre nouveau mot de passe doit avoir au moins %d caractères !"
+
+#: main.php:74
+msgid "Your new password must be different from your current password"
+msgstr "Votre nouveau mot de passe doit être différent de l'actuel !"
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d caractères alphabétiques."
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d caractères alphanumériques."
+
+#: main.php:136
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d types de caractères "
+"différents.Les types sont : minuscule, majuscule, numérique et symboles."
+
+#: main.php:116
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d caractères minuscules."
+
+#: main.php:121
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d caractères numériques."
+
+#: main.php:111
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr ""
+"Votre nouveau mot de passe doit avoir au moins %d caractères majuscules."
+
+#: main.php:142
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Votre nouveau mot de passe doit avoir moins de %d caractères espace."
+
+#: main.php:144
+msgid "Your new password must not contain whitespace characters."
+msgstr "Votre nouveau mot de passe ne doit pas contenir de caractères espace."
+
+#: main.php:70
+msgid "Your new passwords didn't match"
+msgstr "Votre nouveau mot de passe ne correspond pas"
+
+#: lib/Driver/smbldap.php:73 lib/Driver/ldap.php:70
+msgid "ldap_start_tls failed"
+msgstr "Échec de ldap_start_tsl"
--- /dev/null
+# passwd 2.2 Galician translation
+#
+# Version inicial de:
+#
+# Rafael Varela <rafael.varela@usc.es>
+# Guillermo Mendez <guille@usc.es>
+# Servicio de atencion a usuarios e sistemas
+# Universidade de Santiago de Compostela
+#
+# Revisada y corregida por:
+#
+# Servicio de normalizacion linguistica <snlusc@usc.es>
+# Universidade de Santiago de Compostela
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"POT-Creation-Date: 2002-02-28 00:14-0600\n"
+"PO-Revision-Date: 2003-08-19 12:42GMT+1\n"
+"Last-Translator: guille <guille@usc.es>\n"
+"Language-Team: Galego\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+msgid "Change your password"
+msgstr "Cambie a súa chave de acceso"
+
+msgid "Confirm new password:"
+msgstr "Confirme o nova chave de acceso"
+
+msgid "Error"
+msgstr "Erro"
+
+msgid "Failure in changing password : "
+msgstr "Fallou o cambio de chave de acceso"
+
+msgid "Help"
+msgstr "Axuda"
+
+msgid "Language"
+msgstr "Lingua"
+
+msgid "Logout"
+msgstr "Finalizar a sesión"
+
+msgid "Message"
+msgstr "Mensaxe"
+
+msgid "New password:"
+msgstr "Chave de acceso nova:"
+
+msgid "Old password:"
+msgstr "Chave de acceso anterior:"
+
+msgid "Password changed!"
+msgstr "¡Chave de acceso cambiada!"
+
+msgid "Password module is not properly configured"
+msgstr "O módulo para cambiar a chave de acceso non se configurou"
+
+msgid "Problem?"
+msgstr "¿Problemas?"
+
+msgid "Reset"
+msgstr "Reiniciar"
+
+msgid "Select your preferred language:"
+msgstr "Seleccione a lingua:"
+
+msgid "Set the language that menu items, explanations, and help are in."
+msgstr "Establece a lingua dos menús, das explicacións e da axuda."
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr ""
+"Algúns dos arquivos de configuración do módulo para cambiar a chave non se "
+"dan atopado:"
+
+msgid "Success"
+msgstr "Correctamente"
+
+msgid ""
+"This file controls the default preferences for Password module, and also "
+"controls which preferences users can alter."
+msgstr ""
+"Este arquivo controla as preferencias predeterminadas do módulo para cambiar "
+"a chavee ademais controla que preferencias pode mudar o usuario."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Este arquivo controla as follas de estilo que se usan para establecer as "
+"cores e tipos de letra, e complemententa ou substitúe os valores "
+"predeterminados de Horde."
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Este é o arquivo principal de configuración do módulo para cambiar a chave "
+"de acceso. Contén as rutas e opcións para tódolos programas (deste módulo)."
+
+msgid "Username:"
+msgstr "Usuario:"
+
+msgid "Warning"
+msgstr "Advertencia"
+
+msgid "You can not change passwd for other user"
+msgstr "Non pode mudar a chave de acceso doutro usuario"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Non pode cambiar a chave de acceso do usuario %s"
+
+msgid "You must give your new password"
+msgstr "Escriba a nova chave de acceso"
+
+msgid "You must give your old password"
+msgstr "Escriba a chave de acceso anterior"
+
+msgid "You must give your userid"
+msgstr "Escriba o seu nome de usuario"
+
+msgid "You must verify your new password"
+msgstr "Repita a nova chave de acceso"
+
+msgid "Your Information"
+msgstr "A súa información"
+
+msgid "Your new passwords didn't match"
+msgstr "As novas chaves de acceso son diferentes"
+
+msgid "Account Manager"
+msgstr "Xestor da conta"
+
+msgid "Changing Password on %s"
+msgstr "Cambiando a chave de acceso en %s"
--- /dev/null
+# Croatian translations for Passwd package.
+# Copyright (C) 2009 Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Valentin Vidic <Valentin.Vidic@CARNet.hr>, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.1)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2009-10-14 15:13+0200\n"
+"PO-Revision-Date: 2009-07-16 17:17+0200\n"
+"Last-Translator: Valentin Vidic <Valentin.Vidic@CARNet.hr>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s ne postoji ili nemate dozvole za izvršavanje."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "%s ekstenzija se ne može učitati!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: nije uspjelo učitavanje pokretačkog programa (driver): %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI greška %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Pristup odbijen."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Backend nije ispravno implementiran."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Nije uspjelo slanje naredbe na poslužitelj."
+
+#: main.php:281 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Promijeni lozinku"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Promijenite lozinku za:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Promijenite Vašu lozinku"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Promjena lozinke za %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Potvrda nove lozinke:"
+
+#: lib/Driver/ldap.php:114 lib/Driver/kolab.php:60
+msgid "Could not bind to LDAP server"
+msgstr "Prijava na LDAP poslužitelj nije uspjela"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Promjena lozinke nije uspjela (neispravna stara lozinka?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Promjena lozinke nije uspjela."
+
+#: lib/Driver/ldap.php:80 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr "Spajanje na LDAP poslužitelj nije uspjelo."
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Prijava na sustav nije uspjela (nema upita lozinke)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Spajanje na smbpasswd nije uspjelo."
+
+#: lib/Driver/ldap.php:86
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Pokretanje TLS veze na LDAP poslužitelj nije uspjelo."
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr "Pokretanje passwd programa nije uspjelo (nema upita stare lozinke)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Kraj datoteke."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Greška prilikom slanja podataka u smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Provjera stare lozinke nije uspjela."
+
+#: main.php:235 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Promjena lozinke za %s nije uspjela: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Pun međuspremnik."
+
+#: lib/Driver.php:72 lib/Driver/http.php:72 lib/Driver/vmailmgr.php:42
+#: lib/Driver/ldap.php:131 lib/Driver/poppassd.php:120 lib/Driver/kolab.php:84
+msgid "Incorrect old password."
+msgstr "Neispravna stara lozinka."
+
+#: lib/Driver/ldap.php:197
+msgid "Minimum password age has not yet expired"
+msgstr "Još nije prošao minimalni period između promjena lozinke"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+"Nova lozinka nije ispravna (prekratka, neispravna stara lozinka, preslična "
+"staroj lozinki, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Nova lozinka:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Poslužitelj nije poslao upit."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Backend \"%s\" nije pronađen."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Stara lozinka:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Promjena lozinke nije ispravno konfigurirana."
+
+#: main.php:222
+#, php-format
+msgid "Password changed on %s."
+msgstr "Lozinka za %s je uspješno promijenjena."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Stupac lozinke \"%s\" nije pronađen u tablici lozinki."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Modul za promjenu lozinki ne može pronaći zadani program."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Nedostaju obavezni parametri modula za promjenu lozinki."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Nedostaje parametar odredišta modula za promjenu lozinki."
+
+#: main.php:196 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Modul za promjenu lozinki nije ispravno konfiguriran"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Modul za promjenu lozinki nije ispravno konfiguriran."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Molimo unesite novu lozinku"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Molimo unesite svoju trenutnu lozinku"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Molimo unesite svoju lozinku."
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Parametar 'drivers' nije ispravan u Composite konfiguraciji."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Parametar 'phptype' nije postavljen u Passwd SQL konfiguraciji."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Parametar 'phptype' nije postavljen u SQL konfiguraciji."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Resetiraj"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Web stranica za promjenu korisničkih lozinki nije dostupna."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Korisničko ime nije pronađeno."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Vrijeme izvršavanje isteklo."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Nije uspjelo povezivanje na SQL poslužitelj."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Nije uspjelo spajanje na expect."
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Korisnik nije pronađen"
+
+#: lib/Driver/smbldap.php:160 lib/Driver/pine.php:231 lib/Driver/ldap.php:174
+#: lib/Driver/ldap.php:249 lib/Driver/kolab.php:76
+msgid "User not found."
+msgstr "Korisnik nije pronađen."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Korisničko ime:"
+
+#: main.php:60
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Ne možete promjeniti lozinku za korisnika %s"
+
+#: main.php:68
+msgid "You must give your current password"
+msgstr "Morate unijeti svoju trenutnu lozinku"
+
+#: main.php:77
+msgid "You must give your new password"
+msgstr "Morate unijeti novu lozinku"
+
+#: main.php:81
+msgid "You must verify your new password"
+msgstr "Morate potvrditi novu lozinku"
+
+#: main.php:101
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Nova lozinka je preduga; lozinka ne smije sadržavati više od %d znakova "
+
+#: main.php:185
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Nova lozinka je prejednostavna za pogoditi! Lozinka nije promijenjena!"
+
+#: main.php:176
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Nova lozinka je prejednostavna za pogoditi. Lozinka nije promijenjena!"
+
+#: main.php:96
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Nova lozinka mora imati barem %d znakova!"
+
+#: main.php:89
+msgid "Your new password must be different from your current password"
+msgstr "Nova i stara lozinka ne smiju biti iste"
+
+#: main.php:141
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d slovo."
+msgstr[1] "Nova lozinka mora sadržavati barem %d slova."
+msgstr[2] "Nova lozinka mora sadržavati barem %d slova."
+
+#: main.php:146
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d slovo ili broj."
+msgstr[1] "Nova lozinka mora sadržavati barem %d slova ili broja."
+msgstr[2] "Nova lozinka mora sadržavati barem %d slova ili broja."
+
+#: main.php:151
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Nova lozinka mora sadržavati barem %d različitih tipova znakova. Tipovi "
+"znakova su: mala slova, velika slova, brojevi i simboli."
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d malo slovo."
+msgstr[1] "Nova lozinka mora sadržavati barem %d mala slova."
+msgstr[2] "Nova lozinka mora sadržavati barem %d mala slova."
+
+#: main.php:136
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d broj."
+msgstr[1] "Nova lozinka mora sadržavati barem %d broja."
+msgstr[2] "Nova lozinka mora sadržavati barem %d broja."
+
+#: main.php:165
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d simbol."
+msgstr[1] "Nova lozinka mora sadržavati barem %d simbola."
+msgstr[2] "Nova lozinka mora sadržavati barem %d simbola."
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] "Nova lozinka mora sadržavati barem %d veliko slovo."
+msgstr[1] "Nova lozinka mora sadržavati barem %d velikih slova."
+msgstr[2] "Nova lozinka mora sadržavati barem %d velikih slova."
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Nova lozinka mora imati manje od %d znakova razmaka."
+
+#: main.php:159
+msgid "Your new password must not contain whitespace characters."
+msgstr "Nova lozinka ne može sadržavati znakove razmaka."
+
+#: main.php:85
+msgid "Your new passwords didn't match"
+msgstr "Nove lozinke se ne podudaraju"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Promjena lozinke nije uspjela."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Nove lozinke se ne podudaraju"
--- /dev/null
+# passwd module translations
+# Copyright 2002-2009 The Horde Project.
+# Gyula Szabo <gyufi@sztaki.hu>, 2003.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"POT-Creation-Date: 2003-03-06 11:46+0100\n"
+"PO-Revision-Date: 2003-03-06 11:49+0100\n"
+"Last-Translator: Gyula Szabo <gyufi@sztaki.hu>\n"
+"Language-Team: Hungarian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/Driver.php:197
+msgid "Backend not correctly implemented."
+msgstr "A Backend nincs megfelelõen beillesztve."
+
+#: main.php:221
+msgid "Change Password"
+msgstr "Jelszó módosítás"
+
+#: templates/main/main.inc:26 templates/main/main.inc:79
+msgid "Change your password"
+msgstr "Jelszó módosítás"
+
+#: templates/main/main.inc:33
+#, php-format
+msgid "Changing Password on %s"
+msgstr "Jelszómódosítás a %s szerveren"
+
+#: templates/main/main.inc:57
+msgid "Confirm new password:"
+msgstr "új jelszó megerõsítése:"
+
+#: lib/Driver/ldap.php:61 lib/Driver/ldap.php:133
+msgid "Could not bind to ldap server"
+msgstr "Az LDAP szerverhez nem lehet kapcsolódni"
+
+#: lib/Driver/ldap.php:51
+msgid "Could not connect to ldap server"
+msgstr "Az LDAP szerver nem érhetõ el."
+
+#: lib/Driver/smbpasswd.php:51
+msgid "Could not open pipe to smbpasswd."
+msgstr "Nem lehet csatlakozni az smbpasswd csõvezetékhez."
+
+#: status.php:16
+msgid "Error"
+msgstr "Hiba"
+
+#: lib/Driver/poppassd.php:108
+msgid "Error Changing Password"
+msgstr "Jelszómódosítási hiba"
+
+#: lib/Driver/smbpasswd.php:72
+msgid "Error sending data to smbpasswd."
+msgstr "Adattovábbítási hiba az smbpasswd-hez."
+
+#: main.php:179
+msgid "Failure in changing password : "
+msgstr "Hiba a jelszómódosításnál: "
+
+#: templates/menu/menu.inc:30
+msgid "Help"
+msgstr "Segítség"
+
+#: lib/Driver/ldap.php:134 lib/Driver/vmailmgr.php:53
+#: lib/Driver/poppassd.php:102
+msgid "Incorect Password"
+msgstr "Hibás jelszó"
+
+#: templates/menu/menu.inc:41
+msgid "Logout"
+msgstr "Kijelentkezés"
+
+#: status.php:29
+msgid "Message"
+msgstr "Üzenet"
+
+#: templates/main/main.inc:51
+msgid "New password:"
+msgstr "Új jelszó:"
+
+#: templates/main/main.inc:45
+msgid "Old password:"
+msgstr "Jelenlegi jelszó:"
+
+#: main.php:177
+msgid "Password changed!"
+msgstr "A jelszó megváltozott!"
+
+#: lib/Driver/smbpasswd.php:44 lib/Driver/servuftp.php:85
+#: lib/Driver/servuftp.php:122 lib/Driver.php:179 main.php:162
+#: templates/index/notconfigured.inc:4
+msgid "Password module is not properly configured"
+msgstr "A Jelszó modul nincs megfelelõen konfigurálva"
+
+#: templates/menu/menu.inc:37
+msgid "Problem?"
+msgstr "Probléma"
+
+#: lib/Driver/sql.php:37 lib/Driver/vpopmail.php:39
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "'phptype' nincs specifikálva az SQL konfigurációban."
+
+#: templates/main/main.inc:80
+msgid "Reset"
+msgstr "Tiszta ûrlap"
+
+#: templates/main/main.inc:64
+msgid "Server"
+msgstr "Server"
+
+#: templates/index/notconfigured.inc:40
+msgid "Some of Password module's configuration files are missing:"
+msgstr "A következõ Password modul konfigurációs állományok hiányzoznak:"
+
+#: status.php:20
+msgid "Success"
+msgstr "Sikerült"
+
+#: templates/index/notconfigured.inc:52
+msgid ""
+"This file contains backed configuration information for the Password module "
+"scripts."
+msgstr ""
+"Ez a file tartalmazza a Passwd modul szkriptjeinek konfigurációsinformációit."
+
+#: templates/index/notconfigured.inc:45
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Ez a Passwd modul fõ konfigurációs állománya. Ez tartalmazza az élérési "
+"útvonalakat,és az opciókat a Passwd modul összes szkriptjéhez."
+
+#: lib/Driver/sql.php:68 lib/Driver/vpopmail.php:73
+msgid "Unable to connect to SQL server."
+msgstr "Az SQL szerver nem érhetõ el."
+
+#: lib/Driver/sql.php:127 lib/Driver/poppassd.php:96
+#: lib/Driver/vpopmail.php:135
+msgid "User not found"
+msgstr "Nincs ilyen felhasználó"
+
+#: lib/Driver/ldap.php:99
+msgid "User not found."
+msgstr "Nincs ilyen felhasználó"
+
+#: templates/main/main.inc:39
+msgid "Username:"
+msgstr "Felhasznólói név:"
+
+#: status.php:24
+msgid "Warning"
+msgstr "Figyelmeztetés"
+
+#: main.php:41
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Nem tudod megváltoztatni %s jelszavát!"
+
+#: main.php:57
+msgid "You must give your new password"
+msgstr "Meg kell adnod az új jelszót"
+
+#: main.php:49
+msgid "You must give your old password"
+msgstr "Meg kell adnod az eredeti jelszót"
+
+#: main.php:61
+msgid "You must verify your new password"
+msgstr "Az új jelszavadat kétszer kell megadnod"
+
+#: main.php:83
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "A jelszavad túl hosszú! A jelszó nem lehet több %d karakternél!"
+
+#: main.php:144 main.php:152
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "A jelszavad túl könnyen kitalálható! Nem módosítom!"
+
+#: main.php:78
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Az új jelszónak legalább %d karaktenek kell lennie!"
+
+#: main.php:71
+msgid "Your new password must be different from your current password"
+msgstr "Az új és a jelenlegi jelszónak különböznie kell"
+
+#: main.php:120
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Az új jelszónak legalább %d betût kell tartalmaznia."
+
+#: main.php:125
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Az új jelszónak legalább %d alfanumerikus karaktert kell tartalmaznia."
+
+#: main.php:110
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Az új jelszónak legalább %d kisbetût kell tartalmaznia."
+
+#: main.php:115
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Az új jelszónak legalább %d számot kell tartalmaznia."
+
+#: main.php:105
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Az új jelszónak legalább %d nagybetût kell tartalmaznia."
+
+#: main.php:130
+#, php-format
+msgid "Your new password must contain at less than %d whitespace characters."
+msgstr "Az új jelszó nem tartalmazhat %d-nál több üres karaktert."
+
+#: main.php:132
+msgid "Your new password must not contain whitespace characters."
+msgstr "Az új jelszó nem tartalmazhat üres karaktert."
+
+#: main.php:66
+msgid "Your new passwords didn't match"
+msgstr "Az új jelszavak nem egyeznek!"
+
+#: lib/Driver/smbpasswd.php:97
+msgid "tempnam() failed!"
+msgstr "tempnam() sikertelen!"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd v2.1\n"
+"POT-Creation-Date: 2004-01-09 09:37+0700\n"
+"PO-Revision-Date: 2004-01-09 13:56+0700\n"
+"Last-Translator: Slamin <slamin@unej.ac.id>\n"
+"Language-Team: UPT TI UNEJ <uptti@unej.ac.id>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Backend not correctly implemented."
+msgstr "Backend tidak diimplementasikan dengan benar."
+
+msgid "Change Password"
+msgstr "Ubah Password"
+
+msgid "Change your password"
+msgstr "Ubah password anda"
+
+#, c-format
+msgid "Changing Password on %s"
+msgstr "Mengubah Password pada %s"
+
+msgid "Confirm new password:"
+msgstr "Konfirmasi password baru:"
+
+msgid "Could not bind to ldap server"
+msgstr "Tidak bisa dikirim ke server ldap"
+
+msgid "Could not connect to ldap server"
+msgstr "Tidak bisa koneksi ke server ldap"
+
+msgid "Could not open pipe to smbpasswd."
+msgstr "Tidak bisa membuka pipe ke smbpasswd."
+
+msgid "Error sending data to smbpasswd."
+msgstr "Kesalahan mengirim data ke smbpasswd."
+
+msgid "Error"
+msgstr "Kesalahan"
+
+msgid "Failure in changing password : "
+msgstr "Gagal mengubah password : "
+
+msgid "Help"
+msgstr "Bantuan"
+
+msgid "Incorect Password"
+msgstr "Password Salah"
+
+msgid "Logout"
+msgstr "Keluar"
+
+msgid "Message"
+msgstr "Pesan"
+
+msgid "New password:"
+msgstr "Password baru:"
+
+msgid "Old password:"
+msgstr "Password lama:"
+
+msgid "Password changed!"
+msgstr "Password berubah!"
+
+msgid "Password module is not properly configured"
+msgstr "Modul password tidak dikonfigurasi dengan sempurna"
+
+msgid "Problem?"
+msgstr "Masalah?"
+
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "'phptype' yang diperlukan tidak dispesifikasi pada konfigurasi SQL."
+
+msgid "Reset"
+msgstr "Reset"
+
+msgid "Server"
+msgstr "Server"
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "Beberapa file konfigurasi modul Password hilang:"
+
+msgid "Success"
+msgstr "Sukses"
+
+msgid ""
+"This file contains backend configuration information for the Password module "
+"scripts."
+msgstr ""
+"File ini berisi informasi konfigurasi backend untuk script modul Password."
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Ini adalah file utama konfigurasi modul Password. File ini berisi path dan "
+"pilihan untuk semua script modul Password."
+
+msgid "Unable to connect to SQL server."
+msgstr "Tidak bisa koneksi ke server SQL."
+
+msgid "User not found"
+msgstr "Pemakai tidak ditemukan"
+
+msgid "User not found."
+msgstr "Pemakai tidak ditemukan."
+
+msgid "Username:"
+msgstr "Username:"
+
+msgid "Warning"
+msgstr "Peringatan"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Anda tidak bisa mengubah password untuk user %s"
+
+msgid "You must give your new password"
+msgstr "Anda harus memberi password baru anda"
+
+msgid "You must give your old password"
+msgstr "Anda harus memberi password lama anda"
+
+msgid "You must verify your new password"
+msgstr "Anda harus verifikasi password baru anda"
+
+#, c-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Password baru anda terlalu panjang; password mungkin tidak lebih panjang "
+"dari %d karakter!"
+
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Password baru anda terlalu simpel untuk ditebak! Tidak berubah!"
+
+#, c-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Password baru anda harus paling sedikit sepanjang %d karakter"
+
+msgid "Your new password must be different from your current password"
+msgstr "Password baru anda harus berbeda dengan password anda saat ini"
+
+#, c-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Password baru anda harus berisi paling sedikit %d karakter alfabet."
+
+#, c-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+"Password baru anda harus berisi paling sedikit %d karakter alfanumerik."
+
+#, c-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Password baru anda harus berisi paling sedikit %d huruf kecil."
+
+#, c-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Password baru anda harus berisi paling sedikit %d karakter numerik."
+
+#, c-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Password baru anda harus berisi paling sedikit %d huruf besar."
+
+#, c-format
+msgid "Your new password must contain at less than %d whitespace characters."
+msgstr "Password baru anda harus berisi kurang dari %d karakter spasi."
+
+msgid "Your new password must not contain whitespace characters."
+msgstr "Password baru anda tidak boleh berisi karakter spasi."
+
+msgid "Your new passwords didn't match"
+msgstr "Password baru anda tidak cocok"
+
+msgid "tempnam() failed!"
+msgstr "tempnam() gagal!"
--- /dev/null
+# Passwd module translations.
+# Copyright 2003 Free Software Foundation, Inc.
+# Gianrico Fichera <gianrico.fichera@itesys.it>, 2003.
+# Fabio Pedretti <fabio.pedretti@ing.unibs.it>, 2006-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.2\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-06-24 11:21+0200\n"
+"PO-Revision-Date: 2008-06-24 16:10+0200\n"
+"Last-Translator: Fabio Pedretti <fabio.pedretti@ing.unibs.it>\n"
+"Language-Team: Italian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s non esiste o non è eseguibile."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "L'estensione %s non può essere caricata!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: impossibile caricare il driver: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "Errore ADSI %s."
+
+#: lib/Driver/adsi.php:64 lib/Driver/pspasswd.php:105
+msgid "Access Denied."
+msgstr "Accesso Proibito."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Backend non implementato correttamente"
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Impossibile inviare comandi al server."
+
+#: main.php:263 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Cambia Password"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Cambio password per:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Cambia la tua password"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Cambio password per %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Conferma la nuova password:"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:114
+msgid "Could not bind to LDAP server"
+msgstr "Impossibile collegarsi al LDAP server"
+
+# c-format
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Impossibile cambiare la password (vecchia password sbagliata?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Impossibile cambiare password"
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:80
+msgid "Could not connect to LDAP server"
+msgstr "Impossibile connettersi al server LDAP"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Impossibile autenticarsi al sistema (mancanza di password)."
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Impossibile aprire un pipe a smbpasswd."
+
+#: lib/Driver/ldap.php:86
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Impossibile effettuare connessioni TLS al server LDAP"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+"Impossibile eseguire il programma passwd (mancanza della vecchia password)."
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Fine del file."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Errore nell' invio di dati a smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Verifica della vecchia password fallita."
+
+#: main.php:217 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Errore nel cambiamento di password per %s: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Buffer pieno."
+
+#: lib/Driver.php:72 lib/Driver/kolab.php:84 lib/Driver/poppassd.php:120
+#: lib/Driver/vmailmgr.php:42
+msgid "Incorrect Password"
+msgstr "Password Errata"
+
+#: lib/Driver/ldap.php:131
+msgid "Incorrect old password."
+msgstr "Vecchia password errata."
+
+#: lib/Driver/ldap.php:190
+msgid "Minimum password age has not yet expired"
+msgstr "L'età minima della password non è ancora stata raggiunta"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+"Nuova password non valida (troppo corta, password errata, troppo simile, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Nuova password:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Nessun prompt restituito dal server."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Nessun backend \"%s\" trovato."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "La vecchia password non è corretta."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Vecchia password:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd non è configurato correttamente"
+
+#: main.php:209
+#, php-format
+msgid "Password changed on %s."
+msgstr "La password su %s è stata cambiata."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Colonna password \"%s\" non trovata nella tabella password."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Il modulo password non ha trovato il binario fornito."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Al modulo password mancano dei parametri richiesti."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Al modulo password manca il parametro target."
+
+#: main.php:183 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Modulo password non configurato correttamente"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Modulo password non configurato correttamente."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Inserisci una nuova password"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Inserisci la tua password attuale"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Verifica la tua nuova password"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Parametro 'drivers' non configurato correttamente nella configurazione di "
+"Composite."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"Parametro 'phptype' non specificato nella configurazione di Passwd SQL."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Parametro 'phptype' non specificato nella configurazione SQL."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Resetta"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Il sito richiesto per cambiare le password utente non è raggiungibile."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "L'utente non può essere trovato."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Tempo esaurito."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Impossibile connettersi al server SQL."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Impossibile aprire il flusso expect!"
+
+#: lib/Driver/poppassd.php:114 lib/Driver/sql.php:135
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Utente non trovato"
+
+#: lib/Driver/kolab.php:76 lib/Driver/ldap.php:167 lib/Driver/ldap.php:249
+#: lib/Driver/pine.php:231 lib/Driver/smbldap.php:160
+msgid "User not found."
+msgstr "Utente non trovato."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Nome utente:"
+
+# c-format
+#: main.php:52
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Non puoi cambiare la password dell'utente %s"
+
+#: main.php:60
+msgid "You must give your current password"
+msgstr "Devi inserire la tua password attuale"
+
+#: main.php:69
+msgid "You must give your new password"
+msgstr "Devi inserire la tua nuova password"
+
+#: main.php:73
+msgid "You must verify your new password"
+msgstr "Devi verificare la tua nuova password"
+
+#: main.php:93
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"La tua password è troppo lunga; una password non può essere lunga più di %d "
+"caratteri!"
+
+#: main.php:172
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "La tua password è troppo facile da indovinare! Non è stata cambiata!"
+
+#: main.php:163
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "La tua password è troppo facile da indovinare! Non è stata cambiata!"
+
+#: main.php:88
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "La tua password deve essere lunga almeno %d caratteri!"
+
+#: main.php:81
+msgid "Your new password must be different from your current password"
+msgstr "La tua nuova password deve essere differente dalla vecchia."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "La tua nuova password deve contenere almeno %d lettere."
+
+#: main.php:138
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+"La tua nuova password deve contenere almeno %d caratteri alphanumerici."
+
+#: main.php:143
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"La tua nuova password deve contenere almeno %d tipi di caratteri. I tipi "
+"sono: minuscolo, maiuscolo, numerico e simbolico."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "La tua nuova password deve contenere almeno %d caratteri minuscoli."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "La tua nuova password deve contenere almeno %d caratteri numerici."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "La tua nuova password deve contenere almeno %d caratteri maiuscoli."
+
+#: main.php:149
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr ""
+"La tua nuova password deve contenere meno di %d caratteri del tipo spazi "
+"bianchi."
+
+#: main.php:151
+msgid "Your new password must not contain whitespace characters."
+msgstr ""
+"La tua nuova password non deve contenere caratteri del tipo spazi bianchi."
+
+#: main.php:77
+msgid "Your new passwords didn't match"
+msgstr "Le tue nuove password non corrispondono"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "La password non può essere cambiata."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Le tue password non corrispondono"
--- /dev/null
+# Japanese translation for Passwd.
+# Copyright YEAR Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.0\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-10-09 16:51+0200\n"
+"PO-Revision-Date: 2006-03-24 22:40+0900\n"
+"Last-Translator: Hiromi Kimura <hiromi@tac.tsukuba.ac.jp>\n"
+"Language-Team: Japanese <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=SHIFT_JIS\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s \82ª\91¶\8dÝ\82µ\82È\82¢\82©\8eÀ\8ds\89Â\94\\82Å\82Í\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: \83h\83\89\83C\83o\81[\82ª\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI \83G\83\89\81[ %s\81B"
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "\83A\83N\83Z\83X\82ª\8b\91\94Û\82³\82ê\82Ü\82µ\82½\81B"
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "\83o\83b\83N\83G\83\93\83h\82Ì\90Ý\92è\82ª\90³\82µ\82\82 \82è\82Ü\82¹\82ñ\81B"
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "\83p\83X\83\8f\81[\83h\95Ï\8dX"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "\83p\83X\83\8f\81[\83h\95Ï\8dX:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "\83p\83X\83\8f\81[\83h\95Ï\8dX"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "%s \82Ì\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ü\82·"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82Ì\8am\94F\81F"
+
+#: lib/Driver/ldap.php:95 lib/Driver/ldap.php:263 lib/Driver/kolab.php:54
+msgid "Could not bind to ldap server"
+msgstr "LDAP \83T\81[\83o\82É\83o\83C\83\93\83h\82Å\82«\82Ü\82¹\82ñ"
+
+#: lib/Driver/ldap.php:70 lib/Driver/kolab.php:46
+msgid "Could not connect to ldap server"
+msgstr "LDAP \83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "smbpasswd \82É\83p\83C\83v\82Å\90Ú\91±\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "smbpasswd \82Ö\82Ì\83f\81[\83^\91\97\90M\92\86\83G\83\89\81[\82Å\82·\81B"
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "\8cÃ\82¢\83p\83X\83\8f\81[\83h\82ª\8am\94F\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: main.php:211 lib/Driver/composite.php:99
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "%s \82Ì\83p\83X\83\8f\81[\83h\95Ï\8dX\8e¸\94s: %s"
+
+#: lib/Driver.php:56 lib/Driver/ldap.php:264 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+msgid "Incorrect Password"
+msgstr "\95s\90³\82È\83p\83X\83\8f\81[\83h\82Å\82·"
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr "\83p\83X\83\8f\81[\83h\82Ì\97L\8cø\8aú\8cÀ\82Í\89ß\82¬\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\81F"
+
+#: lib/Driver.php:112
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "\83o\83b\83N\83G\83\93\83h \"%s\" \82ª\8c©\95t\82©\82è\82Ü\82¹\82ñ\81B"
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "\8cÃ\82¢\83p\83X\83\8f\81[\83h\81F"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd \82ª\90³\82µ\82\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "%s \82Ì\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B"
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "\83p\83X\83\8f\81[\83h\83\82\83W\83\85\81[\83\8b\82Í\8ew\92è\82³\82ê\82½\83p\83X\81ibin\81j\82ð\8c©\82Â\82¯\82ç\82ê\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "\83p\83X\83\8f\81[\83h\83\82\83W\83\85\81[\83\8b\82Í\97v\8b\81\82³\82ê\82½\83p\83\89\83\81\81[\83^\82ð\8c©\82Â\82¯\82ç\82ê\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "\83p\83X\83\8f\81[\83h\83\82\83W\83\85\81[\83\8b\82Í\96Ú\93I\82Ì\83p\83\89\83\81\81[\83^\82ð\8c©\82Â\82¯\82ç\82ê\82Ü\82¹\82ñ\81B"
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "\83p\83X\83\8f\81[\83h\83\82\83W\83\85\81[\83\8b\82ª\90³\82µ\82\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "\83p\83X\83\8f\81[\83h\83\82\83W\83\85\81[\83\8b\82ª\90³\82µ\82\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ð\93ü\97Í\82µ\82Ä\89º\82³\82¢"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "\8c»\8dÝ\82Ì\83p\83X\83\8f\81[\83h\82ð\93ü\97Í\82µ\82Ä\89º\82³\82¢"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ð\8am\94F\82µ\82Ä\89º\82³\82¢"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "\97v\8b\81\82³\82ê\82½\83h\83\89\83C\83o\81[\82Í\90³\82µ\82\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "SQL \90Ý\92è\82É\95K\97v\82È 'phptype' \82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "SQL \90Ý\92è\82É\95K\97v\82È 'phptype' \82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "\83\8a\83Z\83b\83g"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "SQL \83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ\81B"
+
+#: lib/Driver/sql.php:125 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:143
+msgid "User not found"
+msgstr "\83\86\81[\83U\82ª\8c©\95t\82©\82è\82Ü\82¹\82ñ"
+
+#: lib/Driver/ldap.php:131 lib/Driver/kolab.php:70 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "\83\86\81[\83U\82ª\8c©\95t\82©\82è\82Ü\82¹\82ñ"
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "\83\86\81[\83U\96¼\81F"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "\82 \82È\82½\82Í\83\86\81[\83U %s \82Ì\83p\83X\83\8f\81[\83h\82Í\95Ï\8dX\82Å\82«\82Ü\82¹\82ñ"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "\8cÃ\82¢\83p\83X\83\8f\81[\83h\82ð\8ew\92è\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ð\8ew\92è\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ð\8am\94F\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ª\92·\82·\82¬\82Ü\82·\81B%d \95¶\8e\9a\82Ü\82Å\82É\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82Í\8aÈ\92P\82·\82¬\82Ü\82·\81I \95Ï\8dX\82µ\82Ü\82¹\82ñ\81I"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82Í\8aÈ\92P\82·\82¬\82Ü\82·\81I \95Ï\8dX\82µ\82Ü\82¹\82ñ\81I"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82Í %d \95¶\8e\9a\88È\8fã\82É\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82Í\8cÃ\82¢\83p\83X\83\8f\81[\83h\82Æ\82Í\88á\82¤\82à\82Ì\82É\82µ\82Ä\89º\82³\82¢"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\89p\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\89p\90\94\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É\82Í\8f\82È\82\82Æ\82à %d \8cÂ\82Ì\88Ù\82È\82é\95¶\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B\82Â\82Ü\82è\81A\8f¬\95¶"
+"\8e\9a\81A\91å\95¶\8e\9a\81A\90\94\8e\9a\82Æ\8bL\8d\86\82Å\82·\81B"
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\8f¬\95¶\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\90\94\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\91å\95¶\8e\9a\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É %d \8cÂ\88È\8fã\82Ì\8bó\94\92\82ð\8aÜ\82ß\82Ä\89º\82³\82¢\81B"
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82É\8bó\94\92\82ð\93ü\82ê\82È\82¢\82Å\89º\82³\82¢\81B"
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "\90V\82µ\82¢\83p\83X\83\8f\81[\83h\82ª\88ê\92v\82µ\82Ü\82¹\82ñ"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "\83p\83X\83\8f\81[\83h\82ª\88ê\92v\82µ\82Ü\82¹\82ñ"
+
+#: lib/Driver/ldap.php:76
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls \82É\8e¸\94s\82µ\82Ü\82µ\82½"
--- /dev/null
+# Lithuanian translations for Passwd package.
+# Copyright 2007-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Darius Matuliauskas <darius@lnk.lt>, 2003.
+# Vilius Sumskas <vilius@lnk.lt>, 2004, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 3.1-cvs\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2007-11-23 16:25+0200\n"
+"PO-Revision-Date: 2007-11-23 16:26+0200\n"
+"Last-Translator: Vilius Sumskas <vilius@lnk.lt>\n"
+"Language-Team: Lithuanian <vilius@lnk.lt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-13\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%"
+"100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s neegzistuoja arba nëra paleidþiamasis failas."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "Nepavyko uþkrauti %s modulio!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: nepavyko uþkrauti tvarkyklës: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI klaida %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Neuþtenka teisiø."
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr "Slaptaþodþio keitimo posistemë neteisingai realizuota."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Nepavyko nusiøsti komandos á serverá."
+
+#: main.php:263 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Slaptaþodþio keitimas"
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr "Slaptaþodþio keitimas serveryje:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Slaptaþodþio keitimas"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr "Slaptaþodþio keitimas serveryje %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Pakartokite naujà slaptaþodá:"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:99 lib/Driver/ldap.php:190
+msgid "Could not bind to LDAP server"
+msgstr "Nepavyko autentifikuotis á LDAP serverá."
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Nepavyko pakeisti slaptaþodþio (blogas senas slaptaþodis?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Nepavyko pakeisti slaptaþodþio"
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:74
+msgid "Could not connect to LDAP server"
+msgstr "Nepavyko prisijungti prie LDAP serverio"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Nepavyko prisijungti prie sistemos (sistema neuþklausë slaptaþodþio)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Klaida jungiantis prie smbpasswd."
+
+#: lib/Driver/ldap.php:80
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Nepavyko prisijungti prie LDAP serverio per TLS"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+"Nepavyko paleisti passwd programos (sistema neuþklausæ seno slaptaþodþio)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Failo pabaiga."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Klaida siunèiant duomenis smbpasswd komandai."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Nepavyko patikrinti seno slaptaþodþio."
+
+#: main.php:217 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr "Klaida keièiant slaptaþodá serveryje %s: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Buferis pilnas."
+
+#: lib/Driver.php:72 lib/Driver/poppassd.php:120 lib/Driver/kolab.php:84
+#: lib/Driver/vmailmgr.php:42 lib/Driver/ldap.php:191
+msgid "Incorrect Password"
+msgstr "Slaptaþodis neteisingas"
+
+#: lib/Driver/ldap.php:166
+msgid "Minimum password age has not yet expired"
+msgstr "Minimalus slaptaþodþio galiojimo laikas dar nepasibaigë"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+"Neteisingas naujas slaptaþodis (per trumpas, blogas, panaðus á senà, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Naujas slaptaþodis:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Serveris nepaklausë slaptaþodþio."
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "\"%s\" posistemës nëra."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "Neteisingas senas slaptaþodis."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Senas slaptaþodis:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Slaptaþodþio keitimo modulis nesukonfigûruotas."
+
+#: main.php:209
+#, php-format
+msgid "Password changed on %s."
+msgstr "Slaptaþodis serveryje %s pakeistas."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Slaptaþodþiø lentelëje nëra slaptaþodþio stulpelio \"%s\"."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Slaptaþodþio keitimo modulis negali rasti reikiamø duomenø."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Slaptaþodþio keitimo modulis neranda reikalingø parametrø."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Slaptaþodþio keitimo modulis neranda nustatytø parametrø."
+
+#: main.php:183 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Slaptaþodþio keitimo modulis nesukonfigûruotas"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Slaptaþodþio keitimo modulis nesukonfigûruotas."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Nurodykite naujà slaptaþodá"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Nurodykite savo darbartiná slaptaþodá"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Pakartokite savo naujà slaptaþodá"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Parametras 'drivers' neteisingai sukonfigûruotas nustatymuose."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Parametras 'phptype' nenurodytas Passwd SQL konfigûracijoje."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Parametras 'phptype' nenurodytas SQL konfigûracijoje."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Iðvalyti"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Vartotojø slaptaþodþiø keitimo puslapis nepasiekiamas."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Tokio vartotojo vardo nëra."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Baigësi slaptaþodþio keitimo laikas."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Nepavyko prisijungti prie SQL serverio."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Nepavyko atidaryti expect srauto!"
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Vartotojas nerastas"
+
+#: lib/Driver/smbldap.php:141 lib/Driver/pine.php:231 lib/Driver/kolab.php:76
+#: lib/Driver/ldap.php:133
+msgid "User not found."
+msgstr "Vartotojas nerastas."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "Vartotojo vardas:"
+
+#: main.php:52
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Jûs negalite pakeisti vartotojo %s slaptaþodþio"
+
+#: main.php:60
+msgid "You must give your current password"
+msgstr "Privalote nurodyti dabartiná slaptaþodá"
+
+#: main.php:69
+msgid "You must give your new password"
+msgstr "Áveskite naujà slaptaþodá"
+
+#: main.php:73
+msgid "You must verify your new password"
+msgstr "Pakartokite naujà slaptaþodá"
+
+#: main.php:93
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Jûsø naujasis slaptaþodis per ilgas; jame gali bûti nedaugiau nei %d "
+"simboliai"
+
+#: main.php:172
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Slaptaþodis per paprastas - áveskite sudëtingesná!"
+
+#: main.php:163
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Slaptaþodis per paprastas - áveskite sudëtingesná."
+
+#: main.php:88
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Slaptaþodis turi bûti bent %d simboliø ilgio!"
+
+#: main.php:81
+msgid "Your new password must be different from your current password"
+msgstr "Naujasis slaptaþodis turi skirtis nuo dabartinio"
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Slaptaþodyje privalo bûti bent %d raidës."
+
+#: main.php:138
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Slaptaþodyje privalo bûti bent %d simboliai."
+
+#: main.php:143
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Jûsø naujàjá slaptaþodá turi sudaryti bent %d skirtingi simboliø tipai. "
+"Tipai: didþiosios raidës, maþosios raidës, skaièiai ir kiti simboliai."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Slaptaþodyje privalo bûti bent %d maþosios raidës."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Slaptaþodyte privalo bûti bent %d skaièiai."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Slaptaþodyje privalo bûti bent %d didþiosios raidës."
+
+#: main.php:149
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Naujajame slaptaþodyje gali bûti nedaugiau nei %d tarpø."
+
+#: main.php:151
+msgid "Your new password must not contain whitespace characters."
+msgstr "Naujajame slaptaþodyje negali bûti tarpø."
+
+#: main.php:77
+msgid "Your new passwords didn't match"
+msgstr "Nauji slaptaþodþiai nesutampa"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Jûsø slaptaþodþio pakeisti negalima."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Jûsø slaptaþodþiai nesutampa"
--- /dev/null
+# Passwd module translations
+# Copyright 2002 Free Software Foundation, Inc.
+# Eric Rostetter <rostetter@mail.utexas.edu>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"POT-Creation-Date: 2002-02-19 10:23-0600\n"
+"PO-Revision-Date: 2005-06-01 12:00+0200\n"
+"Last-Translator: Resan Sa-Ardnuam <horde@sa-ardnuam.nl\n"
+"Language-Team: <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Change your password"
+msgstr "Wijzig wachtwoord"
+
+msgid "Confirm new password:"
+msgstr "Nogmaals nieuw wachtwoord:"
+
+msgid "Error"
+msgstr "Fout"
+
+msgid "Failure in changing password : "
+msgstr "Fout bij veranderen van wachtwoord : "
+
+msgid "Help"
+msgstr "Help"
+
+msgid "Language"
+msgstr "Taal"
+
+msgid "Logout"
+msgstr "Afmelden"
+
+msgid "Message"
+msgstr "Bericht"
+
+msgid "New password:"
+msgstr "Nieuw wachtwoord:"
+
+msgid "Old password:"
+msgstr "Oud wachtwoord:"
+
+msgid "Password changed!"
+msgstr "Wachtwoord veranderd!"
+
+msgid "Password module is not properly configured"
+msgstr "Password is niet juist geconfigureerd"
+
+msgid "Problem?"
+msgstr "Probleem?"
+
+msgid "Select your preferred language:"
+msgstr "Selecteer uw taal voorkeur:"
+
+msgid "Set the language that menu items, explanations, and help are in."
+msgstr "Stel de taal in voor menu items, verklaringen en help in "
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "Een aantal configuratie bestanden van de Password module ontbreken:"
+
+msgid "Success"
+msgstr "Gelukt"
+
+msgid ""
+"This file controls the default preferences for Password module, and also "
+"controls which preferences users can alter."
+msgstr ""
+"Dit bestand regelt de standaard instellingen voor de Password module, en "
+"ookwelke instellingen de gebruiker kan veranderen."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Dit bestand beheert de stylesheet die gebruikt wordt om kleuren en "
+"lettertypen toe te voegen of de standaard instelling van Horde de "
+"overschrijven"
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Dit is het belangrijkste configuratie bestand van de Password module. Het "
+"bevat paden en opties voor alle Password module scripts."
+
+msgid "Username:"
+msgstr "Gebuikersnaam:"
+
+msgid "Warning"
+msgstr "Waarschuwing"
+
+msgid "You can not change passwd for other user"
+msgstr "U kan niet een wachtwoord veranderen van een andere gebruiker"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "U kan niet het wachtwoord wijzigen voor gebruiker %s"
+
+msgid "You must give your new password"
+msgstr "U moet uw nieuwe wachtwoord geven"
+
+msgid "You must give your old password"
+msgstr "U moet uw oude wachtwoord geven"
+
+msgid "You must give your userid"
+msgstr "U moet uw nieuwe gebruikersnaam geven"
+
+msgid "You must verify your new password"
+msgstr "U moet uw nieuwe wachtwoord verifiëren"
+
+msgid "Your Information"
+msgstr "Uw Informatie"
+
+msgid "Your new passwords didn't match"
+msgstr "Uw nieuwe wachtwoord kwam niet overeen"
+
+msgid "Password"
+msgstr "Wachtwoord"
--- /dev/null
+# Passwd Norwegian Nynorsk translation
+# Copyright 2002 Per-Stian Vatne
+# This file is distributed under the same license as the Passwd package.
+# Per-Stian Vatne <psv@orsta.org>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 0.0.1-cvs\n"
+"POT-Creation-Date: 2002-06-09 01:01+0200\n"
+"PO-Revision-Date: 2002-06-09 01:12+0100\n"
+"Last-Translator: Per-Stian Vatne <psv@orsta.org>\n"
+"Language-Team: Norwegian Nynorsk <nynorsk@orsta.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Change your password"
+msgstr "Endre passord"
+
+msgid "Confirm new password:"
+msgstr "Stadfest nytt passord:"
+
+msgid "Failure in changing password : "
+msgstr "Feil ved endring av passord:"
+
+msgid "Help"
+msgstr "Hjelp"
+
+msgid "Internal Error"
+msgstr "Intern feil"
+
+msgid "Logout"
+msgstr "Logg ut"
+
+msgid "New password:"
+msgstr "Nytt passord:"
+
+msgid ""
+"Note: You will need to logout and back in after you change your password!"
+msgstr "Merk: Du må logge ut og inn igjen etter at du endrar passordet ditt!"
+
+msgid "Old password:"
+msgstr "Gammalt passord:"
+
+msgid "Password changed!"
+msgstr "Passord endra!"
+
+msgid "Password module is not properly configured"
+msgstr "Passord-modulen er ikkje ordentleg konfigurert"
+
+msgid "Problem?"
+msgstr "Problem?"
+
+msgid "Reset"
+msgstr "Nullstill"
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "Nokre av Passord-modulen sinde konfigurasjonsfiler manglar:"
+
+msgid ""
+"This file controls the default preferences for Password module, and also "
+"controls which preferences users can alter."
+msgstr ""
+"Denne fila kontrollerer standardinnstillingane for Passord-modulen, og "
+"kontrollerer også kva innstillingar brukarane kan endre."
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Denne fila kontrollerer stilarket som blir brukt til å definere fargar og "
+"skrifttypar, og legg til eller overstyrer standardverdiane til Horde."
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Dette er hovedkonfigurasjonsfila for Passord-modulen. Den inneheld "
+"katalognamn og innstillingar for alle skripta i Passord-modulen."
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Du kan ikkje endre passord for brukaren %s"
+
+msgid "You must give your new password"
+msgstr "Du må skrive inn ditt nye passord"
+
+msgid "You must give your old password"
+msgstr "Du må skrive inn ditt gamle passord"
+
+msgid "You must verify your new password"
+msgstr "Du må stadfeste ditt nye passord"
+
+msgid "Your new passwords didn't match"
+msgstr "Dine nye passord samsvarte ikkje"
+
+msgid "Your old password isn't correct"
+msgstr "Ditt gamle passord er ikkje korrekt"
--- /dev/null
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Horde Project
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2009-11-21 13:07+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr ""
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr ""
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr ""
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr ""
+
+#: lib/Driver.php:101
+msgid "Backend not correctly implemented."
+msgstr ""
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr ""
+
+#: main.php:281 templates/main/main.inc:141
+msgid "Change Password"
+msgstr ""
+
+#: templates/main/main.inc:126
+msgid "Change password for:"
+msgstr ""
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr ""
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password for %s"
+msgstr ""
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr ""
+
+#: lib/Driver/ldap.php:127 lib/Driver/kolab.php:60
+msgid "Could not bind to LDAP server"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr ""
+
+#: lib/Driver/ldap.php:87 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr ""
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr ""
+
+#: lib/Driver/ldap.php:93
+msgid "Could not start TLS connection to LDAP server"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr ""
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr ""
+
+#: main.php:235 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password for %s: %s"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr ""
+
+#: lib/Driver.php:72 lib/Driver/ldap.php:144 lib/Driver/http.php:72
+#: lib/Driver/vmailmgr.php:42 lib/Driver/kolab.php:84
+#: lib/Driver/poppassd.php:120
+msgid "Incorrect old password."
+msgstr ""
+
+#: lib/Driver/ldap.php:210
+msgid "Minimum password age has not yet expired"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr ""
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr ""
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr ""
+
+#: lib/Driver.php:128
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr ""
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr ""
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr ""
+
+#: main.php:222
+#, php-format
+msgid "Password changed on %s."
+msgstr ""
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr ""
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr ""
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr ""
+
+#: main.php:196 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr ""
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr ""
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr ""
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr ""
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr ""
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr ""
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr ""
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr ""
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr ""
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr ""
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr ""
+
+#: lib/Driver/ldap.php:99
+msgid "Unable to disable directory referrals"
+msgstr ""
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr ""
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr ""
+
+#: lib/Driver/ldap.php:187 lib/Driver/ldap.php:259 lib/Driver/kolab.php:76
+#: lib/Driver/pine.php:231
+msgid "User not found."
+msgstr ""
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr ""
+
+#: main.php:60
+#, php-format
+msgid "You can't change password for user %s"
+msgstr ""
+
+#: main.php:68
+msgid "You must give your current password"
+msgstr ""
+
+#: main.php:77
+msgid "You must give your new password"
+msgstr ""
+
+#: main.php:81
+msgid "You must verify your new password"
+msgstr ""
+
+#: main.php:101
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+
+#: main.php:185
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr ""
+
+#: main.php:176
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr ""
+
+#: main.php:96
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr ""
+
+#: main.php:89
+msgid "Your new password must be different from your current password"
+msgstr ""
+
+#: main.php:141
+#, php-format
+msgid "Your new password must contain at least %d alphabetic character."
+msgid_plural ""
+"Your new password must contain at least %d alphabetic characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:146
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric character."
+msgid_plural ""
+"Your new password must contain at least %d alphanumeric characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:151
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d lowercase character."
+msgid_plural "Your new password must contain at least %d lowercase characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:136
+#, php-format
+msgid "Your new password must contain at least %d numeric character."
+msgid_plural "Your new password must contain at least %d numeric characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:165
+#, php-format
+msgid "Your new password must contain at least %d symbol character."
+msgid_plural "Your new password must contain at least %d symbol characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d uppercase character."
+msgid_plural "Your new password must contain at least %d uppercase characters."
+msgstr[0] ""
+msgstr[1] ""
+
+#: main.php:157
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr ""
+
+#: main.php:159
+msgid "Your new password must not contain whitespace characters."
+msgstr ""
+
+#: main.php:85
+msgid "Your new passwords didn't match"
+msgstr ""
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr ""
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr ""
--- /dev/null
+# Polish translations for Passwd package
+# Polskie tlumaczenia dla pakietu Passwd.
+# Copyright 2007-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Mariusz Zynel <mariusz@math.uwb.edu.pl>, 2001.
+# Piotr Roszatycki <dexter@debian.org>, 2001.
+# Krzysztof Kozlowski <kozik1@o2.pl>, 2005.
+# Piotr Adamcio <adamcios@o2.pl>, 2007.
+# Tadeusz Lesiecki <lesiecki@tmtsystem.pl>, 2007.
+# Piotr Tarnowski <drfugazi@drfugazi.eu.org>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.1-cvs)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2007-06-21 11:08+0200\n"
+"PO-Revision-Date: 2007-06-21 11:45+0200\n"
+"Last-Translator: Piotr Tarnowski <drfugazi@drfugazi.eu.org>\n"
+"Language-Team: Polish <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
+"|| n%100>=20) ? 1 : 2);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s nie istnieje lub nie jest wykonywalny."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "Nie mo¿na za³adowaæ rozszerzenia %s!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: nie mo¿na za³adowaæ drivera: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "B³±d ADSI %s."
+
+#: lib/Driver/adsi.php:64 lib/Driver/pspasswd.php:105
+msgid "Access Denied."
+msgstr "Dostêp zabroniony"
+
+#: lib/Driver.php:89
+msgid "Backend not correctly implemented."
+msgstr "Backend nie poprawnie zaimplementowany."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Nie mo¿na wys³aæ polecenia do serwera."
+
+#: main.php:255 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "Zmieñ has³o"
+
+#: templates/main/main.inc:126
+msgid "Change password on:"
+msgstr "Zmieñ has³o na:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "Zmieñ swoje has³o"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password on %s"
+msgstr "Zmiana has³a na %s"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "Powtórz nowe has³o:"
+
+#: lib/Driver/ldap.php:99 lib/Driver/ldap.php:189 lib/Driver/kolab.php:60
+msgid "Could not bind to LDAP server"
+msgstr "Nie mo¿na przy³±czyæ do serwera LDAP"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "Nie mo¿na zmieniæ has³a (b³êdne stare has³o?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "Nie mo¿na zmieniæ has³a."
+
+#: lib/Driver/ldap.php:74 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr "Nie mo¿na po³±czyæ z serwerem LDAP"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "Nie mo¿na zalogowaæ siê do systemu (brak promptu has³a)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Nie mo¿na otworzyæ tunelu do smbpasswd."
+
+#: lib/Driver/ldap.php:80
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Nie mo¿na ustanowiæ szyfrowanego po³±czenia TLS do serwera LDAP"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr "Nie mo¿na uruchomiæ programu passwd (brak promptu do starego has³a)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "Koniec pliku."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "B³±d przy wysy³aniu danych do smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "B³±d podczas weryfikacji starego has³a."
+
+#: main.php:211 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "B³±d przy zmianie has³a na %s: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "Pe³ny bufor."
+
+#: lib/Driver.php:60 lib/Driver/vmailmgr.php:42 lib/Driver/ldap.php:190
+#: lib/Driver/kolab.php:84 lib/Driver/poppassd.php:120
+msgid "Incorrect Password"
+msgstr "Nieprawid³owe has³o"
+
+#: lib/Driver/ldap.php:166
+msgid "Minimum password age has not yet expired"
+msgstr "Minimalny wiek has³a jeszcze nie min±³"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr "Nowe has³o nie jest poprawne (zbyt krótkie, z³e, zbyt podobne itp.)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "Nowe has³o:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Nie otrzymano promptu od serwera."
+
+#: lib/Driver.php:116
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Nie znaleziono backendu \"%s\"."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "Stare has³o jest nieprawid³owe."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "Stare has³o:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd nie jest prawid³owo skonfigurowane."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "Zmieniono has³o na %s."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Nie znaleziono kolumny has³a \"%s\" w tabeli hase³."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Modu³ hase³ nie móg³ znale¼æ w³a¶ciwej binarki."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Modu³owi hase³ brakuje wymaganych parametrów."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Modu³owi hase³ brakuje docelowego parametru."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Modu³ hase³ nie jest poprawnie skonfigurowany"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Modu³ hase³ nie jest skonfigurowany prawid³owo."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Proszê podaæ nowe has³o"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Proszê podaæ aktualne has³o"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Proszê zweryfikowaæ swoje nowe has³o"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Wymagane 'drivery' s± ¼le skonfigurowane w konfiguracji composite"
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"Wymagany parametr 'phptype' nie jest okre¶lony w konfiguracji has³a SQL."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Wymagany parametr 'phptype' nie jest okre¶lony w konfiguracji SQL."
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "Przywróæ"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Nie mo¿na wy¶wietliæ wymaganej do zmiany hase³ u¿ytkowników strony."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Nazwa u¿ytkownika nie zosta³a znaleziona."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "Czas min±³."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Nie mo¿na po³±czyæ z serwerem SQL."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "Nie mo¿na otworzyæ oczekiwanego strumienia!"
+
+#: lib/Driver/sql.php:135 lib/Driver/vpopmail.php:150
+#: lib/Driver/poppassd.php:114
+msgid "User not found"
+msgstr "Nie znaleziono u¿ytkownika"
+
+#: lib/Driver/ldap.php:133 lib/Driver/smbldap.php:140 lib/Driver/pine.php:231
+#: lib/Driver/kolab.php:76
+msgid "User not found."
+msgstr "Nie znaleziono u¿ytkownika."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "U¿ytkownik:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Nie mo¿esz zmieniæ has³a dla u¿ytkownika %s"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Musisz wpisaæ swoje obecne has³o"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Musisz wprowadziæ swoje nowe has³o"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Musisz zweryfikowaæ swoje nowe has³o"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Twoje howe has³o jest zbyt d³ugie. Has³o nie mo¿e byæ d³u¿sze ni¿ %d znaków!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Twoje nowe has³o jest zbyt proste do odgadniêcia! Nie zmieniam!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Twoje nowe has³o jest zbyt proste do odgadniêcia. Nie zmieniam!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Twoje has³o musi posiadaæ przynajmniej %d znaków!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "Twoje nowe has³o musi siê ró¿niæ od obecnego"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Twoje nowe has³o musi zawieraæ przynajmniej %d liter."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+"Twoje nowe has³o musi zawieraæ przynajmniej %d znaków alfanumerycznych."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Twoje nowe has³o musi zawieraæ przynajmniej %d ró¿ne typów znaków. Typy "
+"znaków to: ma³e litery, du¿e litery, cyfry, symbole."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Twoje nowe has³o musi zawieraæ przynajmniej %d ma³ych liter."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Twoje nowe has³o musi zawieraæ przynajmniej %d cyfrê(y)."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Twoje nowe has³o musi zawieraæ przynajmniej %d du¿ych liter."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr ""
+"Twoje nowe has³o musi zawieraæ mniej ni¿ %d bia³ych znaków (spacji itp.)."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "Twoje has³o nie mo¿e zawieraæ bia³ych znaków (spacji itp.)."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "Twoje nowe has³a nie zgadzaj± siê"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Twoje has³o nie mo¿e byæ zmienione."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Twoje has³a nie s± zgodne"
--- /dev/null
+# Portuguese-Brazil translation for Horde Passwd.
+# Copyright 2002-2009 The Horde Project.
+# Darci Antonio Tartari <dtartari@portoriogrande.com.br>, 2002.
+# Fabio de Almeida <fabiodealmeida@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.0)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-11-17 21:29-0200\n"
+"PO-Revision-Date: 2005-11-18 11:40+0100\n"
+"Last-Translator: Fabio de Almeida <fabiodealmeida@gmail.com>\n"
+"Language-Team: Portuguese-Brazil <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s não existe ou não é executável."
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: Impossível carregar driver: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "Erro ADSI %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Acesso negado."
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "Backend não implementado ainda."
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Modifique sua senha"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Modificar senha em"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Modifique sua senha"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Alterando senha em %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Confirme a senha nova:"
+
+#: lib/Driver/kolab.php:54 lib/Driver/ldap.php:95 lib/Driver/ldap.php:263
+msgid "Could not bind to ldap server"
+msgstr "Não foi possível conectar ao servidor LDAP."
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:70
+msgid "Could not connect to ldap server"
+msgstr "Falha ao conectar ao servidor LDAP."
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Não foi possível se comunicar com smbpasswd."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Erro enviando dados para smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "A senha antiga não confere."
+
+#: main.php:211 lib/Driver/composite.php:99
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Ocorreu uma falha ao modificar sua senha em %s: %s"
+
+#: lib/Driver.php:56 lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+#: lib/Driver/ldap.php:264 lib/Driver/vmailmgr.php:42
+msgid "Incorrect Password"
+msgstr "Senha Incorreta"
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr "A validade mínima da senha ainda não foi alcançada"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Senha nova:"
+
+#: lib/Driver.php:112
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Não foi encontrado o backend \"%s\"."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Senha antiga:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "O módulo de senha não está configurado corretamente."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "Senha modificada em %s."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "O módulo de senha não está configurado corretamente"
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Parâmetros inválidos ou faltando."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Parâmetros inválidos ou faltando."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "O módulo de senha não está configurado corretamente"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "O módulo de senha não está configurado corretamente"
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Por favor forneça sua nova senha."
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Por favor forneça sua senha atual."
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Você deve confirmar sua senha nova"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Parâmetro 'drivers' não foi configurado corretamente."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"Parâmetro 'phptype' não foi especificado na configuração SQL do módulo "
+"passwd."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Parâmetro 'phptype' não foi especificado na configuração SQL."
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Limpar"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Impossível conectar ao servidor SQL."
+
+#: lib/Driver/sql.php:125 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:143
+msgid "User not found"
+msgstr "Usuário não encontrado."
+
+#: lib/Driver/kolab.php:70 lib/Driver/ldap.php:131 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Usuário não encontrado."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Usuário:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Você não pode mudar a senha para o usuário %s"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Você precisa fornecer sua senha atual"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Você precisa fornecer sua senha nova"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Você precisa confirmar sua senha nova"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "A senha é muito longa; o limite é de %d caracteres."
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "A senha nova é muito fácil de adivinhar! Senha não alterada."
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "A senha nova é muito fácil de adivinhar. Senha não alterada."
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "A senha nova deve ter no mínimo %d caracteres."
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "A senha nova deve ser diferente da senha atual."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "A senha nova deve ter no mínimo %d letras."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "A senha nova deve ter no mínimo %d caracteres alfanuméricos."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"A nova senha deve ter no mínimo %d tipos de caracteres. Os tipos são: "
+"minúsculas, maiúsculas, números e símbolos."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "A senha nova deve ter no mínimo %d letras minúsculas."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "A senha nova deve ter no mínimo %d caracteres numéricos."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "A senha nova deve ter no mínimo %d letras maiúsculas."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "A senha nova deve ter menos de %d espaços em branco."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "A senha nova não pode conter espaços."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "Sua senha nova não confere"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Sua senha nova não confere"
+
+#: lib/Driver/ldap.php:76
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls falhou"
--- /dev/null
+# Portuguese-Brazil translation for Horde Passwd.
+# Copyright YEAR Free Software Foundation, Inc.
+# Darci Antonio Tartari <dtartari@portoriogrande.com.br>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Horde 2.1 Passwd\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2006-12-26 23:59+0000\n"
+"PO-Revision-Date: 2007-01-06 12:13-0000\n"
+"Last-Translator: Manuel Menezes de Sequeira <Manuel.Sequeira@iscte.pt>\n"
+"Language-Team: Portuguese of Portugal <Manuel.Sequeira@iscte.pt>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s não existe ou não é executável."
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: impossível carregar o controlador: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "Erro ADSI %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Acesso Negado."
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "Mecanismo mal implementado."
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Alterar Palavra-Passe"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Alterar palavra-passe em:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Altere a sua palavra-passe"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Alterando palavra-passe em %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Confirme a sua nova palavra-passe:"
+
+#: lib/Driver/ldap.php:95 lib/Driver/ldap.php:263 lib/Driver/kolab.php:54
+msgid "Could not bind to ldap server"
+msgstr "Falha na ligação (bind) ao servidor LDAP"
+
+#: lib/Driver/ldap.php:70 lib/Driver/kolab.php:46
+msgid "Could not connect to ldap server"
+msgstr "Falha na conexão ao servidor LDAP"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Falha na abertura de ligação (pipe) a smbpasswd."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Erro ao enviar dados para smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Falha ao verificar a antiga palavra-passe."
+
+#: main.php:211 lib/Driver/composite.php:99
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Falha ao alterar a palavra-passe em %s: %s"
+
+#: lib/Driver.php:56 lib/Driver/ldap.php:264 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+msgid "Incorrect Password"
+msgstr "Palavra-Passe Incorrecta"
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr "Prazo mínimo da palavra-passe ainda não expirou"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Nova palavra-passe:"
+
+#: lib/Driver.php:115
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Mecanismo \"%s\" não encontrado."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Palavra-passe antiga:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr ""
+"O módulo de alteração de palavras-passe não está correctamente configurado."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "Palavra-passe alterada em %s."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr ""
+"O módulo de alteração de palavras-passe não consegue encontrar o binário "
+"fornecido."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr ""
+"O módulo de alteração de palavras-passe tem parâmetros necessários em falta."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "O módulo de alteração de palavras-passe tem parâmetro alvo em falta."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr ""
+"O módulo de alteração de palavras-passe não está correctamente configurado"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr ""
+"O módulo de alteração de palavras-passe não está correctamente configurado."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Por favor introduza uma nova palavra-passe."
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Por favor introduza a sua palavra-passe actual."
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Por favor confirme a sua nova palavra-passe"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "O parâmetro 'drivers' está errado na configuração de Composite."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "O parâmetro 'phptype' está errado na configuração de Password SQL."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "O parâmetro 'phptype' não consta na configuração de SQL."
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Limpar"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Não foi possível ligar ao servidor SQL."
+
+#: lib/Driver/sql.php:125 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:143
+msgid "User not found"
+msgstr "Utilizador não encontrado"
+
+#: lib/Driver/ldap.php:131 lib/Driver/kolab.php:70 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Utilizador não encontrado."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Nome de Utilizador:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Não pode alterar a palavra-passe do utilizador %s"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Tem de fornecer a sua palavra-passe actual"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Tem de fornecer a sua nova palavra-passe"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Tem de confirmar a sua nova palavra-passe"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"A sua nova palavra-passe é demasiado longa; as palavras-passe não podem ter "
+"mais de %d caracteres!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "A sua nova palavra-passe adivinha-se facilmente! Não foi alterada!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "A sua nova palavra-passe adivinha-se facilmente. Não foi alterada!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "A sua nova palavra-passe tem de ter pelo menos %d caracteres!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "A sua nova palavra-passe tem de ser diferente da actual"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "A sua nova palavra-passe tem de conter pelo menos %d letras."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr ""
+"A sua nova palavra-passe tem de conter pelo menos %d caracteres "
+"alfanuméricos."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"A sua nova palavra-passe tem de conter pelo menos %d tipos de caracteres. Os "
+"tipos são: letra mínuscula, letra maiúscula, dígito e símbolo."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr ""
+"A sua nova palavra-passe tem de conter pelo menos %d letras minúsculas."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "A sua nova palavra-passe tem de conter pelo menos %d dígitos."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr ""
+"A sua nova palavra-passe tem de conter pelo menos %d letras maiúsculas."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr ""
+"A sua nova palavra-passe tem de conter menos de %d caracteres brancos "
+"(espaços, etc.)."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr ""
+"A sua nova palavra-passe não pode conter caracteres brancos (espaços, etc.)."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "As suas novas palavras-passe não correspondem"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "As palavras-passe não correspondem"
+
+#: lib/Driver/ldap.php:76
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls falhou"
--- /dev/null
+# Passwd Romanian Translation.
+# Copyright 2003-2009 The Horde Project
+# Eugen Hoanca <eugenh@urban-grafx.ro>, 2003.
+# Marius Dragulescu <mariusd@urban-grafx.ro>, 2003.
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd 2.2\n"
+"POT-Creation-Date: 2003-02-24 14:49+0200\n"
+"PO-Revision-Date: 2003-03-01 12:00+0200\n"
+"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
+"Language-Team: Romanian <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Backend not correctly implemented."
+msgstr "Backend incorect implementat."
+
+msgid "Change Password"
+msgstr "Schimba parola"
+
+msgid "Change your password"
+msgstr "Schimba parola ta"
+
+#, c-format
+msgid "Changing Password on %s"
+msgstr "Schimbare parola la %s"
+
+msgid "Confirm new password:"
+msgstr "Confirmare parola noua:"
+
+msgid "Could not bind to ldap server"
+msgstr "Conectare nereusita la serverul ldap"
+
+msgid "Could not connect to ldap server"
+msgstr "Conectare nereusita la serverul ldap"
+
+msgid "Could not open pipe to smbpasswd."
+msgstr "Legatura imposibila cu smbpasswd"
+
+msgid "Error sending data to smbpasswd."
+msgstr "Eroare la trimiterea datelor catre smbpasswd."
+
+msgid "Error"
+msgstr "Eroare"
+
+msgid "Failure in changing password : "
+msgstr "Eroare in schimbarea parolei : "
+
+msgid "Help"
+msgstr "Ajutor"
+
+msgid "Incorect Password"
+msgstr "Parola incorecta"
+
+msgid "Logout"
+msgstr "Iesire"
+
+msgid "Message"
+msgstr "Mesaj"
+
+msgid "New password:"
+msgstr "Parola noua:"
+
+msgid "Old password:"
+msgstr "Parola veche:"
+
+msgid "Password changed!"
+msgstr "Parola schimbata!"
+
+msgid "Password module is not properly configured"
+msgstr "Modulul de parole incorect configurat"
+
+msgid "Problem?"
+msgstr "Problema?"
+
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "'phptype' nespecificat in configuratia SQL."
+
+msgid "Reset"
+msgstr "Resetare"
+
+msgid "Server"
+msgstr "Server"
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "Anumite fisiere de configurare Password lipsesc:"
+
+msgid "Success"
+msgstr "Succes"
+
+msgid ""
+"This file contains backend configuration information for the Password module "
+"scripts."
+msgstr ""
+"Acest fisier contine informatiile de configurare pentru modulul Password "
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Acesta e fisierul principal de configurare Password. Contine caile si "
+"optiunile pentru scripturile Passwd. "
+
+msgid "Unable to connect to SQL server."
+msgstr "Conectare la serverul SQL esuata."
+
+msgid "User not found"
+msgstr "Utilizator negasit"
+
+msgid "User not found."
+msgstr "Utilizator negasit."
+
+msgid "Username:"
+msgstr "Utilizator:"
+
+msgid "Warning"
+msgstr "Avertisment"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Nu poti schimba parola pentru utilizatorul %s"
+
+msgid "You must give your new password"
+msgstr "Trebuie introdusa o noua parola"
+
+msgid "You must give your old password"
+msgstr "Trebuie introdusa vechea parola"
+
+msgid "You must verify your new password"
+msgstr "Trebuie verificata noua parola"
+
+#, c-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr ""
+"Noua parola e prea lunga; parolele nu pot fi mai lungi de %d caractere!"
+
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Noua parola e prea simplu de ghicit! Neschimbata!"
+
+#, c-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Noua parola trebuie sa fie de minim %d caractere!"
+
+msgid "Your new password must be different from your current password"
+msgstr "Noua parola trebuie sa fie diferita de parola curenta"
+
+#, c-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Noua parola trebuie sa contina minim %d caractere alfabetice."
+
+#, c-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Noua parola trebuie sa contina minim %d caractere alfanumerice."
+
+#, c-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Noua parola trebuie sa contina minim %d caractere minuscule."
+
+#, c-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Noua parola trebuie sa contina cel putin %d caractere numerice."
+
+#, c-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Noua parola trebuie sa contina minim %d caractere majuscule."
+
+#, c-format
+msgid "Your new password must contain at less than %d whitespace characters."
+msgstr "Noua parola trebuie sa contina mai putin de %d spatii."
+
+msgid "Your new password must not contain whitespace characters."
+msgstr "Noua parola nu trebuie sa contina spatii."
+
+msgid "Your new passwords didn't match"
+msgstr "Parolele noi nu se potrivesc"
+
+msgid "tempnam() failed!"
+msgstr "tempnam() esuata!"
--- /dev/null
+# Russian translations for Passwd package
+# Copyright 2005-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# Automatically generated, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.0-cvs)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-08-22 23:11+0900\n"
+"PO-Revision-Date: 2005-08-22 16:40+0000\n"
+"Last-Translator: Illya Belov <belov@iop.irkps.ru>\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CP1251\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s íå ñóùåñòâóåò èëè íå èñïîëíÿåìûé"
+
+#: lib/Driver/composite.php:59
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: íåâîçìîæíî çàãðóçèòü äðàéâåð: %s"
+
+#: lib/Driver/adsi.php:54
+#, php-format
+msgid "ADSI error %s."
+msgstr "Îøèáêà ADSI %s"
+
+#: lib/Driver/adsi.php:57 lib/Driver/pspasswd.php:97
+msgid "Access Denied."
+msgstr "Äîñòóï çàïðåùåí"
+
+#: lib/Driver.php:80
+msgid "Backend not correctly implemented."
+msgstr "Backend íå êîððåêòíî íàñòðîåí"
+
+#: main.php:246 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Ñìåíèòü ïàðîëü"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Ñìåíèòü ïàðîëü íà:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Ñìåíèòü ïàðîëü"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Ñìåíèòü ïàðîëü íà %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Ïîäòâåðäèòå íîâûé ïàðîëü:"
+
+#: lib/Driver/ldap.php:93 lib/Driver/ldap.php:240 lib/Driver/smbldap.php:90
+#: lib/Driver/smbldap.php:171 lib/Driver/kolab.php:48
+msgid "Could not bind to ldap server"
+msgstr "Íåâîçìîæíî ñâÿçàòüñÿ ñ ldap ñåðâåðîì."
+
+#: lib/Driver/ldap.php:64 lib/Driver/smbldap.php:67 lib/Driver/kolab.php:40
+msgid "Could not connect to ldap server"
+msgstr "Íåâîçìîæíî ñîåäèíèòñÿ ñ ldap ñåðâåðîì."
+
+#: lib/Driver/smbpasswd.php:53
+msgid "Could not open pipe to smbpasswd."
+msgstr "Íåâîçìîæíî îòêðûòü pipe äëÿ smbpasswd."
+
+#: lib/Driver/smbpasswd.php:75
+msgid "Error sending data to smbpasswd."
+msgstr "Îøèáêà îòïðàâêè äàííûõ äëÿ smbpasswd."
+
+#: lib/Driver/pspasswd.php:85
+msgid "Failed to verify old password."
+msgstr "Íåóäàëîñü ïîäòâåðäèòü ñòàðûé ïàðîëü"
+
+#: main.php:203 lib/Driver/composite.php:93
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Íå óäàåòñÿ ñìåíèòü ïàðîëü íà %s: %s"
+
+#: lib/Driver.php:51 lib/Driver/ldap.php:241 lib/Driver/poppassd.php:109
+#: lib/Driver/smbldap.php:172 lib/Driver/vmailmgr.php:35
+#: lib/Driver/kolab.php:72
+msgid "Incorrect Password"
+msgstr "Íåâåðíûé ïàðîëü"
+
+#: lib/Driver/ldap.php:223
+msgid "Minimum password age has not yet expired"
+msgstr "Ìèíèìàëüíûé ñðîê äåéñòâèÿ ïàðîëÿ åùå íå èñòåê"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Íîâûé ïàðîëü"
+
+#: lib/Driver.php:107
+#, php-format
+msgid "No such backend '%s' found."
+msgstr "Íå íàéäåí backend %s"
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Ñòàðûé ïàðîëü:"
+
+#: lib/Driver/smbpasswd.php:43
+msgid "Passwd is not properly configured."
+msgstr "Passwd íå ñêîíôèãóðèðîâàí äîëæíûì îáðàçîì"
+
+#: main.php:195
+#, php-format
+msgid "Password changed on %s."
+msgstr "Ïàðîëü èçìåíåí íà %s"
+
+#: lib/Driver/pspasswd.php:67
+msgid "Password module can't find the supplied bin."
+msgstr "Passwd ìîäóëü íå ìîæåò íàéòè íåîáõîäèìûå"
+
+#: lib/Driver/pspasswd.php:65
+msgid "Password module is missing required parameters."
+msgstr "Passwd ìîäóëü. Îòñóòñòâóþò íåîáõîäèìûå ïàðàìåòðû"
+
+#: lib/Driver/adsi.php:44
+msgid "Password module is missing target parameter."
+msgstr "Passwd ìîäóëü. Îòñóòñòâóþò âûõîäíûå ïàðàìåòðû"
+
+#: main.php:176 lib/Driver/servuftp.php:66
+msgid "Password module is not properly configured"
+msgstr "Passwd ìîäóëü íå íàñòðîåí äîëæíûì îáðàçîì"
+
+#: lib/Driver/servuftp.php:93
+msgid "Password module is not properly configured."
+msgstr "Passwd ìîäóëü íå íàñòðîåí äîëæíûì îáðàçîì"
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Íåîáõîäèì íîâûé ïàðîëü"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Íåîáõîäèì òåêóùèé ïàðîëü"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Âû äîëæíû ïîäòâåðäèòü íîâûé ïàðîëü"
+
+#: lib/Driver/composite.php:35
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"Òðåáóåìûå äðàéâåðà íå ñêîíôèãóðèðîâàíû â ñîñòàâíîé (Composite) êîíôèãóðàöèè"
+
+#: lib/Driver/sql.php:41
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Òðåáóåìûé 'phptype' íå îïðåäåëåí â êîíôèãóðàöèè Passwd SQL"
+
+#: lib/Driver/vpopmail.php:44
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Òðåáóåìûé 'phptype' íå îïðåäåëåí â êîíôèãóðàöèè SQL"
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Ñáðîñèòü"
+
+#: lib/Driver/sql.php:70 lib/Driver/vpopmail.php:78
+msgid "Unable to connect to SQL server."
+msgstr "Íå ìîãó ñîåäèíèòñÿ ñ SQL ñåðâåðîì"
+
+#: lib/Driver/poppassd.php:103 lib/Driver/sql.php:120
+#: lib/Driver/vpopmail.php:138
+msgid "User not found"
+msgstr "Ïîëüçîâàòåëü íå íàéäåí"
+
+#: lib/Driver/ldap.php:130 lib/Driver/pine.php:225 lib/Driver/smbldap.php:127
+#: lib/Driver/kolab.php:64
+msgid "User not found."
+msgstr "Ïîëüçîâàòåëü íå íàéäåí"
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Èìÿ ïîëüçîâàòåëÿ:"
+
+#: main.php:45
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Âû íå ìîæåòå ìåíÿòü ïàðîëü äëÿ ïîëüçîâàòåëÿ %s"
+
+#: main.php:53
+msgid "You must give your current password"
+msgstr "Íåîáõîäèì òåêóùèé ïàðîëü"
+
+#: main.php:62
+msgid "You must give your new password"
+msgstr "Íåîáõîäèì íîâûé ïàðîëü"
+
+#: main.php:66
+msgid "You must verify your new password"
+msgstr "Âû äîëæíû ïîäòâåðäèòü íîâûé ïàðîëü"
+
+#: main.php:86
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Ïàðîëü ñëèøêîì äëèííûé; ïàðîëü íå äîëæíå ïðèâûøàòü äëèííó %d ñèìâîëîâ"
+
+#: main.php:165
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Ïàðîëü ñëèøêîì ëåãêèé! Èçìåíåíèé íå ïðîèçâåäåíî"
+
+#: main.php:156
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Ïàðîëü ñëèøêîì ëåãêèé! Èçìåíåíèé íå ïðîèçâåäåíî"
+
+#: main.php:81
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Ïàðîëü äîëæåí áûòü áîëåå %d ñèìâîëîâ"
+
+#: main.php:74
+msgid "Your new password must be different from your current password"
+msgstr "Íîâûé ïàðîëü äîëæåí îòëè÷àòüñÿ îò òåêóùåãî"
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Íîâûé ïàðîëü äîëæåí ñîäåðæàòü êàê ìèíèìóì %d àëôàâèòíûõ ñèìâîëîâ"
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Íîâûé ïàðîëü äîëæåí ñîäåðæàòü êàê ìèíèìóì %d àëôàâèòíûõ ñèìâîëîâ"
+
+#: main.php:136
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+
+#: main.php:116
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr ""
+"Íîâûé ïàðîëü äîëæåí ñîäåðæàòü êàê ìèíèìóì %d ñèìâîëîâ â íèæíåì ðåãèñòðå"
+
+#: main.php:121
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Íîâûé ïàðîëü äîëæåí ñîäåðæàòü êàê ìèíèìóì %d ÷èñëîâûõ ñèìâîëîâ"
+
+#: main.php:111
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr ""
+"Íîâûé ïàðîëü äîëæåí ñîäåðæàòü êàê ìèíèìóì %d ñèìâîëîâ â âåðõíåì ðåãèñòðå"
+
+#: main.php:142
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Íîâûé ïàðîëü äîëæåí ñîäåðæàòü ïðîáåëû. Êàê ìèíèìóì %d øò."
+
+#: main.php:144
+msgid "Your new password must not contain whitespace characters."
+msgstr "Íîâûé ïàðîëü äîëæåí íå äîëæåí ñîäåðæàòü ïðîáåëîâ"
+
+#: main.php:70
+msgid "Your new passwords didn't match"
+msgstr "Íîâûé ïàðîëü íå ñîâïàäàåò"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Ïàðîëè íå ñîâïàäàþò"
+
+#: lib/Driver/ldap.php:70 lib/Driver/smbldap.php:73
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls íåóäàëñÿ"
--- /dev/null
+# Slovak translations for passwd package
+# Slovenské preklady pre balík passwd.
+# Copyright 2005 Ivan Noris <vix@vazka.sk>
+# This file is distributed under the same license as the horde package.
+# (C) 2005 Ivan Noris <vix@vazka.sk>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd 3.0\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2005-09-16 22:17+0200\n"
+"PO-Revision-Date: 2005-09-16 22:17+0200\n"
+"Last-Translator: Ivan Noris <vix@vazka.sk>\n"
+"Language-Team: Slovak <vix@vazka.sk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s neexistuje alebo sa nedá spusti»."
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: nepodarilo sa naèíta» ovládaè: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "Chyba ADSI %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Prístup zamietnutý."
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "Backend nie je správne implementovaný."
+
+#: main.php:250 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Zmeni» heslo"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Zmeni» heslo na:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Zmeni» Va¹e heslo"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Mení sa heslo na %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Potvrïte nové heslo:"
+
+#: lib/Driver/ldap.php:95 lib/Driver/ldap.php:263 lib/Driver/kolab.php:54
+msgid "Could not bind to ldap server"
+msgstr "Nepodarilo sa prihlási» k ldap serveru"
+
+#: lib/Driver/ldap.php:70 lib/Driver/kolab.php:46
+msgid "Could not connect to ldap server"
+msgstr "Nepodarilo sa pripoji» k ldap serveru"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Nepodarilo sa pripoji» k programu smbpasswd."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Nastala chyba pri posielaní údajov programu smbpasswd."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Nepodarilo sa overi» staré heslo."
+
+#: main.php:207 lib/Driver/composite.php:99
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Chyba pri zmene hesla na %s: %s"
+
+#: lib/Driver.php:56 lib/Driver/ldap.php:264 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+msgid "Incorrect Password"
+msgstr "Nesprávne heslo"
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr "Minimálna platnos» hesla e¹te nevypr¹ala"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Nové heslo:"
+
+#: lib/Driver.php:112
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Backend \"%s\" nebol nájdený."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Staré heslo:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Modul Passwd nie je správne nakonfigurovaný."
+
+#: main.php:199
+#, php-format
+msgid "Password changed on %s."
+msgstr "Heslo na %s zmenené."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Modul na zmenu hesiel nemohol nájs» dodaný binárny program."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Modulu Password chýbajú po¾adované parametre."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Modulu Password chýba parameter cieµa."
+
+#: main.php:176 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Modul Password nie je správne nakonfigurovaný"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Modul Password nie je správne nakonfigurovaný."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Prosím zadajte nové heslo"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Prosím zadajte aktuálne heslo"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Prosím zadajte e¹te raz nové heslo"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr ""
+"V konfigurácii Composite nie je ¹pecifikovaná po¾adovaná polo¾ka 'drivers'"
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr ""
+"V konfigurácii Passwd SQL nie je ¹pecifikovaná po¾adovaná polo¾ka 'phptype'"
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "V konfigurácii SQL nie je ¹pecifikovaná po¾adovaná polo¾ka 'phptype'"
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Vymaza» formulár"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Nepodarilo sa spoji» s SQL serverom."
+
+#: lib/Driver/sql.php:125 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:143
+msgid "User not found"
+msgstr "Pou¾ívateµ nebol nájdený"
+
+#: lib/Driver/ldap.php:131 lib/Driver/kolab.php:70 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Pou¾ívateµ nebol nájdený."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Pou¾ívateµské meno:"
+
+#: main.php:45
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Nemô¾ete zmeni» heslo pre pou¾ívateµa %s"
+
+#: main.php:53
+msgid "You must give your current password"
+msgstr "Musíte zada» Va¹e aktuálne heslo"
+
+#: main.php:62
+msgid "You must give your new password"
+msgstr "Musíte zada» Va¹e nové heslo"
+
+#: main.php:66
+msgid "You must verify your new password"
+msgstr "Musíte e¹te raz zada» Va¹e nové heslo"
+
+#: main.php:86
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Va¹e nové heslo je príli¹ dlhé; heslá nesmú by» dlh¹ie ako %d znakov!"
+
+#: main.php:165
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Va¹e nové heslo je príli¹ jednoduché na uhádnutie! Nezmenené!"
+
+#: main.php:156
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Va¹e nové heslo je príli¹ jednoduché na uhádnutie. Nezmenené!"
+
+#: main.php:81
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Va¹e nové heslo musí ma» aspoò %d znakov!"
+
+#: main.php:74
+msgid "Your new password must be different from your current password"
+msgstr "Va¹e nové heslo musí by» iné ako aktuálne heslo"
+
+#: main.php:126
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Va¹e nové heslo musí obsahova» najmenej %d písmen."
+
+#: main.php:131
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Va¹e nové heslo musí obsahova» najmenej %d alfanumerických znakov."
+
+#: main.php:136
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Va¹e nové heslo musí obsahova» najmenej %d typov znakov. Typy znakov sú: "
+"malé písmená, veµké písmená, èíslice a symboly."
+
+#: main.php:116
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Va¹e nové heslo musí obsahova» najmenej %d malých písmen."
+
+#: main.php:121
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Va¹e nové heslo musí obsahova» najmenej %d èíslic."
+
+#: main.php:111
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Va¹e nové heslo musí obsahova» najmenej %d veµkých písmen."
+
+#: main.php:142
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Va¹e nové heslo musí obsahova» menej ako %d medzier."
+
+#: main.php:144
+msgid "Your new password must not contain whitespace characters."
+msgstr "Va¹e nové heslo nesmie obsahova» medzery."
+
+#: main.php:70
+msgid "Your new passwords didn't match"
+msgstr "Va¹e nové heslá nie sú rovnaké"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Va¹e heslá nie sú rovnaké"
+
+#: lib/Driver/ldap.php:76
+msgid "ldap_start_tls failed"
+msgstr "ldap_start_tls zlyhalo"
--- /dev/null
+# Slovenian translations for Passwd packaga
+# Slovenski prevod Passwd paketa
+# Copyright 2006-2009 The Horde Project
+# This file is distributed under the same license as the horde package.
+# Automatically generated, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2006-07-25 11:30+0200\n"
+"PO-Revision-Date: 2006-04-30 10:32+0100\n"
+"Last-Translator: duck@obala.net\n"
+"Language-Team: sl_SI <duck@obala.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s ne obstaja ali ga ne morem pognati"
+
+#: lib/Driver/composite.php:65
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: ne morem naložiti gonilnika: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI napaka %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Dostop zavrnjen."
+
+#: lib/Driver.php:85
+msgid "Backend not correctly implemented."
+msgstr "Gonilnik ni implementiran."
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Spremeni geslo"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Spremeni geslo na:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Spremeni gelso"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "Spremeni geslo na %s"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Potrdi novo geslo"
+
+#: lib/Driver/ldap.php:99 lib/Driver/ldap.php:189 lib/Driver/kolab.php:54
+msgid "Could not bind to LDAP server"
+msgstr "Ne morem se povezati na LDAP strežnik"
+
+#: lib/Driver/ldap.php:74 lib/Driver/kolab.php:46
+msgid "Could not connect to LDAP server"
+msgstr "Ne morem se povezati na LDAP strežnik."
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "Ne morem odpreti povezavo na smbpasswd"
+
+#: lib/Driver/ldap.php:80
+msgid "Could not start TLS connection to LDAP server"
+msgstr "Ne morem zagnati TLS povezave na LDAP strežnik"
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "Napaka pri pošiljanu podatkov na smbpasswd"
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Ne morem preveriti starega gesla."
+
+#: main.php:211 lib/Driver/composite.php:104
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Napaka v spreminjanu gesla na %s: %s"
+
+#: lib/Driver.php:56 lib/Driver/ldap.php:190 lib/Driver/vmailmgr.php:42
+#: lib/Driver/kolab.php:78 lib/Driver/poppassd.php:114
+msgid "Incorrect Password"
+msgstr "Napačno geslo"
+
+#: lib/Driver/ldap.php:166
+msgid "Minimum password age has not yet expired"
+msgstr "Geslo še ni poteklo."
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Novo geslo:"
+
+#: lib/Driver.php:113
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "Gonilnik %s ne obstaja."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "Staro geslo je napačno"
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Staro geslo"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Modul ni prav nastavljen."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "Geslo je bilo spremenjeno na %s."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "Kolona za gesla %s ne obstaja v tabeli."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Ne najdem binarne aplikacije"
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Modulu za gesla manjkajo zahtevani parameterji."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Modulu za gesla manjkajo zahtevani parameterji."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Modulu za gesla ni pravilno nastavljen."
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Modulu za gesla manjkajo zahtevani parameterji."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Navedite novo geslo."
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Navedite trenutno geslo."
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Preverite vaše geslo"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Zahtevani gonilnik je napačno nastavljen v združenem gonilniku."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Zahtevani tip povezave ni nastavljen nastavitvah baze podatkov."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "Zahtevani tip povezave ni nastavljen nastavitvah baze podatkov."
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Ponastavi"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "Zahtevana stran za spremembo gesla ni dostopna."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "Ne najdem uporabniškega imena."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "Ne morem se povezati na SQL strežnik."
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:108
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Ne najdem uporabnika."
+
+#: lib/Driver/ldap.php:133 lib/Driver/kolab.php:70 lib/Driver/pine.php:231
+msgid "User not found."
+msgstr "Ne najdem uporabnika."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Uporabniško ime:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "Ne moremte spremeniti gesla za uporabnika %s"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Morate vnesti trenutno geslo."
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Morate vnesti novo geslo."
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Morate vnesti novo geslo."
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Vaše geslo je predlogo. Ne more biti daljše od %d znakov."
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Geslo je preveč preposto. Ni spremenjano!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Geslo je preveč preposto. Ni spremenjano!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Geslo mora biti vsaj %d znakov dolgo."
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "Novo geslo mora biti drugaćno od starega."
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Gesl mora vsebovati vsaj %d črk."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Geslo mroa vsebovati vsaj %d števil."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Gelo mora vsebovati vsaj %d razičnih tipov znakov. Tipi znakov: majhne črke, "
+"velike črke, številke, simboli."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Geslo mora vsebovati vsaj %d majhnih črk."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Geslo mora vsebovati vsaj %d številk."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Geslo mora vsebovati vsaj %d velikih črk."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Geslo mora vsebovati vsaj manj kot %d presledkov."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "Geslo ne sme vsebovati presledkov."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "Geslo in njegova potrditev si ne ustrezata."
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "Geslo ne more biti spremenjeno."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Vaše geslo ne ustreza."
--- /dev/null
+# Passwd module translations.
+# Copyright YEAR Free Software Foundation, Inc.
+# Mattias Webjörn Eriksson <mattias@webjorn>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"POT-Creation-Date: 2002-06-16 23:32+0200\n"
+"PO-Revision-Date: 2002-06-15 03:13+0200\n"
+"Last-Translator: Mattias Webjörn Eriksson <mattias@webjorn>\n"
+"Language-Team: Swedish <SE@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+msgid "Change your password"
+msgstr "Byt lösenord"
+
+msgid "Confirm new password:"
+msgstr "Bekräfta ditt lösenord:"
+
+msgid "Could not bind to ldap server as guest"
+msgstr "Kunde inte binda till ldap servern som gäst"
+
+msgid "Could not connect to ldap server"
+msgstr "Kunde inte ansluta till ldap servern"
+
+msgid "Failure in changing password : "
+msgstr "Misslyckades med att ändra lösenord : "
+
+msgid "Help"
+msgstr "Hjälp"
+
+msgid "Internal Error"
+msgstr "Internt fel"
+
+msgid "Logout"
+msgstr "Logga ut"
+
+msgid "New password:"
+msgstr "Nytt lösenord:"
+
+msgid ""
+"Note: You will need to logout and back in after you change your password!"
+msgstr "OBS! Du måste logga ut direkt efter att du har byt lösenord!"
+
+msgid "Old password:"
+msgstr "Gammalt lösenord:"
+
+msgid "Password changed!"
+msgstr "Lösenordet ändrades!"
+
+msgid "Password module is not properly configured"
+msgstr "Lösenordsmodulen är inte correct konfigurerad"
+
+msgid "Problem?"
+msgstr "Problem?"
+
+msgid "Reset"
+msgstr "Återställ"
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "Några av lösenordsmodulens konfigurations filer saknas"
+
+msgid ""
+"This file controls the default preferences for Password module, and also "
+"controls which preferences users can alter."
+msgstr ""
+"Denna fil hanterar standard inställningarna för lösenordsmodulen, samt vilka "
+"inställningar som användarna kan ändra"
+
+msgid ""
+"This file controls the stylesheet that is used to set colors and fonts in "
+"addition to or overriding Horde defaults."
+msgstr ""
+"Den här filen hanterar stylesheets, vilket används för färger och fonter, "
+"utöver de standard värden från Hordemodulen"
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr ""
+"Det här är huvudkonfigurationsfilen för lösenordsmodulen. Den innehåller val "
+"för alla skript."
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Du kan inte ändra lösenord för användare %s"
+
+msgid "You must give your new password"
+msgstr "Du måste ange ditt nya lösenord"
+
+msgid "You must give your old password"
+msgstr "Du måste ange ditt gamla lösenord"
+
+msgid "You must verify your new password"
+msgstr "Du måste verifiera ditt nya lösenord"
+
+msgid "Your new passwords didn't match"
+msgstr "Ditt nya lösenord verifierades inte korrekt"
+
+msgid "Your old password isn't correct"
+msgstr "Ditt gamla lösenord är inte korrekt"
--- /dev/null
+# Turkish translations for Passwd package
+# Þifre paketi için Türkçe çeviriler.
+# Copyright 2008-2009 The Horde Project
+# This file is distributed under the same license as the Passwd package.
+# horde-tr @ metu.edu.tr, 2007-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Passwd H3 (3.0.1)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2008-04-15 12:57+0300\n"
+"PO-Revision-Date: 2008-04-15 12:57+0300\n"
+"Last-Translator: Emre Sezginer\n"
+"Language-Team: i18n@lists.horde.org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-9\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s yok, ya da çalýþtýrýlabilir deðil."
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: sürücü yüklenemedi: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI hatasý %s."
+
+#: lib/Driver/pspasswd.php:105 lib/Driver/adsi.php:64
+msgid "Access Denied."
+msgstr "Eriþim Engellendi."
+
+#: lib/Driver.php:89
+msgid "Backend not correctly implemented."
+msgstr "Arka araç doðru uygulanmamýþ."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "Sunucuya komut gönderilemiyor."
+
+#: main.php:255 templates/main/main.inc:142
+msgid "Change Password"
+msgstr "Þifre Deðiþtir"
+
+#: templates/main/main.inc:127
+msgid "Change password on:"
+msgstr "Þifre deðiþtir:"
+
+#: templates/main/main.inc:62
+msgid "Change your password"
+msgstr "Þifrenizi deðiþtirin"
+
+#: templates/main/main.inc:69
+#, php-format
+msgid "Changing password on %s"
+msgstr "%s þifreniz deðiþtiriliyor"
+
+#: templates/main/main.inc:114
+msgid "Confirm new password:"
+msgstr "Yeni þifreyi doðrulayýnýz:"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:95 lib/Driver/ldap.php:263
+msgid "Could not bind to LDAP server"
+msgstr "LDAP sunucuya bað kurulamadý."
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:70
+msgid "Could not connect to LDAP server"
+msgstr "LDAP sunucuya baðlanýlamadý"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "smbpasswd komutuna tünel açýlamadý."
+
+#: lib/Driver/ldap.php:76
+msgid "Could not start TLS connection to LDAP server"
+msgstr "LDAP sunucuya TLS baðlantýsý baþlatýlamadý"
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "smbpasswd ye veri gönderirken hata oluþtu."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "Eski þifre doðrulanamadý."
+
+#: main.php:211 lib/Driver/composite.php:97
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "%s için þifre deðiþtirilemedi: %s"
+
+#: lib/Driver.php:60 lib/Driver/vmailmgr.php:42 lib/Driver/kolab.php:84
+#: lib/Driver/poppassd.php:120 lib/Driver/ldap.php:264
+msgid "Incorrect Password"
+msgstr "Hatalý Þifre"
+
+#: lib/Driver/ldap.php:255
+msgid "Minimum password age has not yet expired"
+msgstr "En az þifre kullaným süresi henuz dolmadý"
+
+#: templates/main/main.inc:102
+msgid "New password:"
+msgstr "Yeni þifre:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "Sunucudan tepki gelmedi."
+
+#: lib/Driver.php:116
+#, php-format
+msgid "No such backend \"%s\" found."
+msgstr "\"%s\" arka aracý bulunamadý."
+
+#: templates/main/main.inc:90
+msgid "Old password:"
+msgstr "Eski þifre:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Þifre doðru yapýlandýrýlmadý."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "%s için þifre deðiþtirildi."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "\"%s\" þifre kolonu, þifre tablosunda bulunamadý."
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Þifre modülü, belirtilen uygulamayý bulamýyor."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Þifre modülü için gerekli deðiþkenler eksik."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Þifre modülü için gerekli hedef deðiþken eksik."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Þifre modülü doðru yapýlandýrýlmadý"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Þifre modülü doðru yapýlandýrýlmadý ."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "Lütfen yeni bir þifre giriniz"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "Lütfen þu anda geçerli olan þifreyi giriniz"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "Lütfen yeni þifrenizi doðrulayýnýz"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "Gerekli 'sürücü', bileþik yapýlandýrmada hatalý ayarlanmýþ."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Þifre SQL yapýlandýrmasýnda gerekli olan 'phptype' belirtilmedi."
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "SQL yapýlandýrmasýnda gerekli olan 'phptype' belirtilmedi."
+
+#: templates/main/main.inc:143
+msgid "Reset"
+msgstr "Sýfýrla"
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "SQL sunucuya baðlantý kurulamadý."
+
+#: lib/Driver/sql.php:135 lib/Driver/poppassd.php:114
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "Kullanýcý bulunamadý"
+
+#: lib/Driver/kolab.php:76 lib/Driver/pine.php:231 lib/Driver/ldap.php:131
+msgid "User not found."
+msgstr "Kullanýcý bulunamadý."
+
+#: templates/main/main.inc:77
+msgid "Username:"
+msgstr "Kullanýcý Adý:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "%s kullanýcýsý için þifre deðiþtiremezsiniz"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "Þu anda geçerli olan þifrenizi girmelisiniz"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "Yeni þifrenizi girmelisiniz"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "Yeni þifrenizi doðrulamalýsýnýz"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "Yeni þifreniz çok uzun. Þifre %d karakterden daha uzun olamaz!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "Yeni þifrenizi tahmin etmek çok kolay! Deðiþtirilmedi!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "Yeni þifrenizi tahmin etmek çok kolay. Deðiþtirilmedi!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "Yeni þifreniz en az %d karakter uzunluðunda olmalýdýr!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "Yeni þifreniz, þu anda geçerli olandan farklý olmalýdýr"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "Yeni þifreniz en az %d harf içermelidir."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "Yeni þifreniz en az %d alfasayýsal karakter içermelidir."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"Yeni þifreniz en az %d deðiþik çeþit karakter içermelidir. Çeþitler: küçük "
+"harf, büyük harf, sayý ve simge."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "Yeni þifreniz en az %d küçük harf içermelidir."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "Yeni þifreniz en az %d sayý içermelidir ."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "Yeni þifreniz en az %d büyük harf içermelidir."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "Yeni þifreniz, %d adetden daha az boþluk içermelidir."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "Yeni þifreniz boþluk içermemelidir."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "Yeni þifreniz uymadý"
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "Þifreleriniz uymuyor"
--- /dev/null
+# Passwd module translations
+# Copyright 2002 Free Software Foundation, Inc.
+# Wenzhuo Zhang <wenzhuo@zhmail.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd\n"
+"POT-Creation-Date: 2002-12-05 22:56+0800\n"
+"PO-Revision-Date: 2002-12-12 12:23+0800\n"
+"Last-Translator: Wenzhuo Zhang <wenzhuo@zhmail.com>\n"
+"Language-Team: Simplified Chinese <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Change your password"
+msgstr "ÐÞ¸ÄÃÜÂë"
+
+msgid "Confirm new password:"
+msgstr "È·ÈÏÐÂÃÜÂë"
+
+msgid "Could not bind to ldap server"
+msgstr "ÎÞ·¨°ó¶¨µ½ ldap ·þÎñÆ÷"
+
+msgid "Could not connect to ldap server"
+msgstr "ÎÞ·¨Á¬½Óµ½ ldap ·þÎñÆ÷"
+
+msgid "Could not open pipe to smbpasswd."
+msgstr "ÎÞ·¨´ò¿ªµ½ smbpasswd µÄ¹ÜµÀ¡£"
+
+msgid "Error closing pipe to smbpasswd"
+msgstr "¹Ø±Õµ½ smbpasswd µÄ¹ÜµÀʱ·¢Éú´íÎó"
+
+msgid "Error sending data to smbpasswd."
+msgstr "·¢ËÍÊý¾Ýµ½ smbpasswd ʱ·¢Éú´íÎó"
+
+msgid "Error"
+msgstr "´íÎó"
+
+msgid "Failure in changing password : "
+msgstr "ÐÞ¸ÄÃÜÂëʧ°Ü"
+
+msgid "Help"
+msgstr "°ïÖú"
+
+msgid "Internal Error"
+msgstr "ÄÚ²¿´íÎó"
+
+msgid "Logout"
+msgstr "×¢Ïú"
+
+msgid "Mdaemon path not found"
+msgstr "Mdaemon ·¾¶Î´ÕÒµ½"
+
+msgid "Mdaemon userlist file not accessable or not found."
+msgstr "Mdaemon userlist Îļþ²»¿É·ÃÎÊ»òδÕÒµ½¡£"
+
+msgid "Message"
+msgstr "ÏûÏ¢"
+
+msgid "New password:"
+msgstr "ÐÂÃÜÂ룺"
+
+msgid "No configuration information specified for SQL authentication."
+msgstr "ûÓÐΪ SQL ÈÏÖ¤É趨µÄÅäÖÃÐÅÏ¢¡£"
+
+msgid "Not able to create lock file"
+msgstr "ÎÞ·¨´´½¨ lock Îļþ"
+
+msgid "Not able to create semaphore file"
+msgstr "ÎÞ·¨´´½¨ semaphore Îļþ"
+
+msgid "Not able to retrieve current details."
+msgstr "ÎÞ·¨»ñÈ¡µ±Ç°µÄÏêϸÐÅÏ¢"
+
+msgid ""
+"Note: You will need to logout and back in after you change your password!"
+msgstr "×¢Ò⣺ÐÞ¸ÄÃÜÂëºó±ØÐëÍ˳öÖØÐµÇ¼!"
+
+msgid "Old password:"
+msgstr "¾ÉÃÜÂ룺"
+
+msgid "Password changed!"
+msgstr "ÃÜÂëÒÑÐÞ¸Ä!"
+
+msgid "Password module is not properly configured MD5"
+msgstr "ÃÜÂëÄ£¿éÅäÖò»ÕýÈ· MD5"
+
+msgid "Password module is not properly configured!"
+msgstr "ÃÜÂëÄ£¿éÅäÖò»ÕýÈ·!"
+
+msgid "Password module is not properly configured"
+msgstr "ÃÜÂëÄ£¿éÅäÖò»ÕýÈ·"
+
+msgid "Password module is not properly configured."
+msgstr "ÃÜÂëÄ£¿éÅäÖò»ÕýÈ·¡£"
+
+msgid "Problem?"
+msgstr "ÎÊÌâ?"
+
+msgid "Required 'database' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'database'¡£"
+
+msgid "Required 'hostspec' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'hostspec'¡£"
+
+msgid "Required 'password' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'password'¡£"
+
+msgid "Required 'phptype' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'phptype'¡£"
+
+msgid "Required 'table' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'table'¡£"
+
+msgid "Required 'username' not specified in authentication configuration."
+msgstr "ÈÏÖ¤ÅäÖÃÖÐδÉ趨±ØÐèµÄ 'username'¡£"
+
+msgid "Reset"
+msgstr "ÖØÖÃ"
+
+msgid "Some of Password module's configuration files are missing:"
+msgstr "ÃÜÂëÄ£¿éµÄ²¿·ÖÅäÖÃÎļþ¶ªÊ§£º"
+
+msgid "Success"
+msgstr "³É¹¦"
+
+msgid ""
+"This is the main Password module configuration file. It contains paths and "
+"options for all Password module scripts."
+msgstr "ÕâÊÇÃÜÂëÄ£¿éµÄÖ÷ÅäÖÃÎļþ¡£Ëü°üº¬ËùÓÐÄ£¿é½Å±¾µÄ·¾¶¼°Ñ¡Ïî¡£"
+
+msgid "Unable to connect to SQL server."
+msgstr "ÎÞ·¨Á¬½Óµ½ SQL ·þÎñÆ÷¡£"
+
+#, c-format
+msgid "User %s@%s not found"
+msgstr "Óû§ %s@%s δÕÒµ½"
+
+msgid "Warning"
+msgstr "¾¯¸æ"
+
+#, c-format
+msgid "You can't change password for user %s"
+msgstr "Äã²»ÄÜÐÞ¸ÄÓû§ %s µÄÃÜÂë"
+
+msgid "You must give your new password"
+msgstr "Äã±ØÐëÊäÈëÐÂÃÜÂë"
+
+msgid "You must give your old password"
+msgstr "Äã±ØÐëÌṩ¾ÉÃÜÂë"
+
+msgid "You must verify your new password"
+msgstr "Äã±ØÐëÈ·ÈÏÐÂÃÜÂë"
+
+#, c-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "ÄãµÄÐÂÃÜÂëÌ«³¤; ÃÜÂ볤¶È²»Äܳ¬¹ý %d ¸ö×Ö·û!"
+
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "ÄãµÄÐÂÃÜÂëÌ«¼òµ¥ÒײÂ! δ×÷ÐÞ¸Ä!"
+
+#, c-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "ÄãµÄÐÂÃÜÂë±ØÐëÖÁÉÙ %d ¸ö×Ö·û³¤!"
+
+msgid "Your new passwords didn't match"
+msgstr "ÄãµÄÐÂÃÜÂë²»Ò»ÖÂ"
+
+msgid "Your old password isn't correct"
+msgstr "ÄãµÄ¾ÉÃÜÂë²»ÕýÈ·"
+
+msgid "tempnam() failed!"
+msgstr "tempname() ʧ°Ü!"
--- /dev/null
+# Passwd module translations
+# Copyright 2002 David Chang. ±i¨}¤å,¥xÆW
+# David Chang <david@tmv.gov.tw>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: passwd H3 (3.1-cvs)\n"
+"Report-Msgid-Bugs-To: dev@lists.horde.org\n"
+"POT-Creation-Date: 2007-01-25 15:10+0800\n"
+"PO-Revision-Date: 2002-02-19 10:23-0600\n"
+"Last-Translator: David Chang <david@tmv.gov.tw>\n"
+"Language-Team: Traditional Chinese <i18n@lists.horde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=Big5\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/Driver/expect.php:34
+#, php-format
+msgid "%s does not exist or is not executable."
+msgstr "%s ¤£¦s¦b©ÎµLªk°õ¦æ."
+
+#: lib/Driver/expectpecl.php:73
+#, php-format
+msgid "%s extension cannot be loaded!"
+msgstr "%s ©µ¦ùµLªk³Q¸ü¤J!"
+
+#: lib/Driver/composite.php:63
+#, php-format
+msgid "%s: unable to load driver: %s"
+msgstr "%s: µLªk¸ü¤JÅX°Êµ{¦¡: %s"
+
+#: lib/Driver/adsi.php:61
+#, php-format
+msgid "ADSI error %s."
+msgstr "ADSI ¿ù»~ %s."
+
+#: lib/Driver/adsi.php:64 lib/Driver/pspasswd.php:105
+msgid "Access Denied."
+msgstr "¦s¨ú¾D©Ú."
+
+#: lib/Driver.php:89
+msgid "Backend not correctly implemented."
+msgstr "«áºÝ¦øªA¾¹©|¥¼¥¿½T§¹¦¨."
+
+#: lib/Driver/poppassd.php:90
+msgid "Cannot send command to server."
+msgstr "µLªk¶Ç°e©R¥O¨ì¦øªA¾¹."
+
+#: main.php:255 templates/main/main.inc:141
+msgid "Change Password"
+msgstr "§ó§ï±K½X"
+
+#: templates/main/main.inc:126
+msgid "Change password on:"
+msgstr "§ó§ï±K½X©ó:"
+
+#: templates/main/main.inc:67
+msgid "Change your password"
+msgstr "§ó§ï±K½X"
+
+#: templates/main/main.inc:65
+#, php-format
+msgid "Changing password on %s"
+msgstr "Åܧó¦b %s ªº±K½X¤¤"
+
+#: templates/main/main.inc:113
+msgid "Confirm new password:"
+msgstr "½T»{·s±K½X:"
+
+#: lib/Driver/kolab.php:60 lib/Driver/ldap.php:99 lib/Driver/ldap.php:189
+msgid "Could not bind to LDAP server"
+msgstr "µLªkôµ² LDAP ¦øªA¾¹"
+
+#: lib/Driver/expectpecl.php:118
+msgid "Could not change password (bad old password?)"
+msgstr "µLªkÅܧó±K½X (±K½X¿ù»~?)"
+
+#: lib/Driver/expectpecl.php:138
+msgid "Could not change password."
+msgstr "µLªkÅܧó±K½X."
+
+#: lib/Driver/kolab.php:46 lib/Driver/ldap.php:74
+msgid "Could not connect to LDAP server"
+msgstr "µLªk³sµ² LDAP ¦øªA¾¹"
+
+#: lib/Driver/expectpecl.php:98
+msgid "Could not login to system (no password prompt)"
+msgstr "µLªkµn¤J¨ì¨t²Î (¨S¦³±K½X´£¥Ü)"
+
+#: lib/Driver/smbpasswd.php:57
+msgid "Could not open pipe to smbpasswd."
+msgstr "µLªk¶}±Ò¨ì smbpasswd ªººÞ½u."
+
+#: lib/Driver/ldap.php:80
+msgid "Could not start TLS connection to LDAP server"
+msgstr "µLªk±Ò°Ê TLS ³sµ² LDAP ¦øªA¾¹"
+
+#: lib/Driver/expectpecl.php:108
+msgid "Could not start passwd program (no old password prompt)"
+msgstr "µLªk±Ò°Ê passwd µ{¦¡ (¨S¦³Â±K½X´£¥Ü)"
+
+#: lib/Driver/expectpecl.php:44
+msgid "End of file."
+msgstr "ÀÉ®×µ²§ô."
+
+#: lib/Driver/smbpasswd.php:79
+msgid "Error sending data to smbpasswd."
+msgstr "¶Ç°e¸ê®Æ¨ì smbpasswd ®Éµo¥Í¿ù»~."
+
+#: lib/Driver/pspasswd.php:93
+msgid "Failed to verify old password."
+msgstr "±K½X½T»{¥¢±Ñ."
+
+#: main.php:211 lib/Driver/composite.php:102
+#, php-format
+msgid "Failure in changing password on %s: %s"
+msgstr "Åܧó %s ±K½X¥¢±Ñ: %s"
+
+#: lib/Driver/expectpecl.php:50
+msgid "Full buffer."
+msgstr "½w½Ä°Ïº¡¸ü(Full buffer)."
+
+#: lib/Driver.php:60 lib/Driver/kolab.php:84 lib/Driver/ldap.php:190
+#: lib/Driver/poppassd.php:120 lib/Driver/vmailmgr.php:42
+msgid "Incorrect Password"
+msgstr "¤£¥¿½Tªº±K½X"
+
+#: lib/Driver/ldap.php:166
+msgid "Minimum password age has not yet expired"
+msgstr "±K½X¥¼¹F¤@©w¨Ï¥Î®É¶¡"
+
+#: lib/Driver/expectpecl.php:128
+msgid "New password not valid (too short, bad password, too similar, ...)"
+msgstr "µL®Äªº·s±K½X (¤Óµu, ¤Ó¬Û¦ü, ¤Ó²³æ, ...)"
+
+#: templates/main/main.inc:101
+msgid "New password:"
+msgstr "·s±K½X:"
+
+#: lib/Driver/poppassd.php:67
+msgid "No prompt returned from server."
+msgstr "¦øªA¾¹¨S¦³¶Ç¦^´£¥Ü."
+
+#: lib/Driver.php:116
+msgid "No such backend \"%s\" found."
+msgstr "§ä¤£¨ì¦øªAºÝ \"%s\"."
+
+#: lib/Driver/http.php:72
+msgid "Old password is incorrect."
+msgstr "±K½X¤£¥¿½T."
+
+#: templates/main/main.inc:89
+msgid "Old password:"
+msgstr "±K½X:"
+
+#: lib/Driver/smbpasswd.php:47
+msgid "Passwd is not properly configured."
+msgstr "Passwd ¼Ò²Õ©|¥¼§¹¾ã³W¹º."
+
+#: main.php:203
+#, php-format
+msgid "Password changed on %s."
+msgstr "%s ªº±K½X¤wÅܧó."
+
+#: lib/Driver/sql.php:127
+#, php-format
+msgid "Password column \"%s\" not found in password table."
+msgstr "¦b±K½Xªí®æ(password table)¤¤§ä¤£¨ì Password Äæ¦ì \"%s\""
+
+#: lib/Driver/pspasswd.php:75
+msgid "Password module can't find the supplied bin."
+msgstr "Password ¼Ò²Õ§ä¤£¨ì¤ä´©ªºµ{¦¡."
+
+#: lib/Driver/pspasswd.php:73
+msgid "Password module is missing required parameters."
+msgstr "Password ¼Ò²Õ§ä¤£¨ì¥²nªº°Ñ¼Æ."
+
+#: lib/Driver/adsi.php:51
+msgid "Password module is missing target parameter."
+msgstr "Password ¼Ò²Õ§ä¤£¨ì¥Ø¼Ð°Ñ¼Æ."
+
+#: main.php:178 lib/Driver/servuftp.php:71
+msgid "Password module is not properly configured"
+msgstr "Password ¼Ò²Õ©|¥¼§¹¾ã³W¹º"
+
+#: lib/Driver/servuftp.php:98
+msgid "Password module is not properly configured."
+msgstr "Password ¼Ò²Õ©|¥¼§¹¾ã³W¹º."
+
+#: templates/main/main.inc:11
+msgid "Please provide a new password"
+msgstr "½Ð¿é¤J¤@²Õ·s±K½X"
+
+#: templates/main/main.inc:7
+msgid "Please provide your current password"
+msgstr "½Ð¿é¤J§A¥Ø«eªº±K½X"
+
+#: templates/main/main.inc:15
+msgid "Please verify your new password"
+msgstr "½Ð½T»{§Aªº·s±K½X"
+
+#: lib/Driver/composite.php:41
+msgid "Required 'drivers' is misconfigured in Composite configuration."
+msgstr "ºî¦X³]©wÀɤ¤,§ä¤£¨ìÃö©ó 'drivers'³]©w¸ê®Æ."
+
+#: lib/Driver/sql.php:46
+msgid "Required 'phptype' not specified in Passwd SQL configuration."
+msgstr "Passwd ªº SQL ³]©w¥²¶·«ü©w 'phptype'"
+
+#: lib/Driver/vpopmail.php:49
+msgid "Required 'phptype' not specified in SQL configuration."
+msgstr "SQL ³]©w¥²¶·«ü©w 'phptype'"
+
+#: templates/main/main.inc:142
+msgid "Reset"
+msgstr "«³]"
+
+#: lib/Driver/http.php:65
+msgid "The requested website for changing user passwords could not be reached."
+msgstr "µLªk³s±µ¤W,Åܧó±K½Xªººô¯¸."
+
+#: lib/Driver/http.php:74
+msgid "The username could not be found."
+msgstr "§ä¤£¨ì³oӨϥΪ̦WºÙ."
+
+#: lib/Driver/expectpecl.php:47
+msgid "Time out."
+msgstr "®É¶¡¨ì."
+
+#: lib/Driver/sql.php:75 lib/Driver/vpopmail.php:83
+msgid "Unable to connect to SQL server."
+msgstr "µLªk³sµ² SQL ¦øªA¾¹."
+
+#: lib/Driver/expectpecl.php:93
+msgid "Unable to open expect stream!"
+msgstr "µLªk¶}±Ò expect stream!"
+
+#: lib/Driver/poppassd.php:114 lib/Driver/sql.php:135
+#: lib/Driver/vpopmail.php:150
+msgid "User not found"
+msgstr "§ä¤£¨ì¨Ï¥ÎªÌ"
+
+#: lib/Driver/kolab.php:76 lib/Driver/ldap.php:133 lib/Driver/pine.php:231
+#: lib/Driver/smbldap.php:140
+msgid "User not found."
+msgstr "§ä¤£¨ì¨Ï¥ÎªÌ."
+
+#: templates/main/main.inc:76
+msgid "Username:"
+msgstr "¨Ï¥ÎªÌ¦WºÙ:"
+
+#: main.php:47
+#, php-format
+msgid "You can't change password for user %s"
+msgstr "§A¤£¯àÅܧó¨Ï¥ÎªÌ %s ªº±K½X"
+
+#: main.php:55
+msgid "You must give your current password"
+msgstr "§A¥²¶·¿é¤J¥Ø«eªº±K½X"
+
+#: main.php:64
+msgid "You must give your new password"
+msgstr "§A¥²¶·¿é¤J·s±K½X"
+
+#: main.php:68
+msgid "You must verify your new password"
+msgstr "§A¥²¶·½T©w§Aªº·s±K½X"
+
+#: main.php:88
+#, php-format
+msgid ""
+"Your new password is too long; passwords may not be more than %d characters "
+"long!"
+msgstr "§Aªº·s±K½X¤Óªø;³Ì¦h¤£¯à¶W¹L %d Ó¦r!"
+
+#: main.php:167
+msgid "Your new password is too simple to guess! Not changed!"
+msgstr "§Aªº·s±K½X¤Ó¹L²³æ¦³³Q²q¨ìªº¥i¯à! µLªkÅܧó!"
+
+#: main.php:158
+msgid "Your new password is too simple to guess. Not changed!"
+msgstr "§Aªº·s±K½X¤Ó¹L²³æ¦³³Q²q¨ìªº¥i¯à! µLªkÅܧó!"
+
+#: main.php:83
+#, php-format
+msgid "Your new password must be at least %d characters long!"
+msgstr "§Aªº·s±K½X¦Ü¤Ön¦³ %d Ó¦r!"
+
+#: main.php:76
+msgid "Your new password must be different from your current password"
+msgstr "§Aªº·s±K½X¥²¶·»P¥Ø«eªº±K½X¦³©Ò¤£¦P"
+
+#: main.php:128
+#, php-format
+msgid "Your new password must contain at least %d alphabetic characters."
+msgstr "§Aªº·s±K½X¦Ü¤Ön¥]§t %d Ó¥H¤Wªº^¤å¦r."
+
+#: main.php:133
+#, php-format
+msgid "Your new password must contain at least %d alphanumeric characters."
+msgstr "§Aªº·s±K½X¦Ü¤Ön¥]§t %d Ó¥H¤Wªº^¤å¦r»P¼Æ¦r."
+
+#: main.php:138
+#, php-format
+msgid ""
+"Your new password must contain at least %d different types of characters. "
+"The types are: lower, upper, numeric, and symbols."
+msgstr ""
+"§Aªº·s±K½X¦Ü¤Ön¥]§t %d ºØ¤£¦P«¬ºAªº¤å¦r.³o¨Ç«¬ºA¥]¬A:¤p¼g^¤å¦r,¤j¼g^¤å¦r,"
+"¼Æ¦r¥H¤Î²Å¸¹."
+
+#: main.php:118
+#, php-format
+msgid "Your new password must contain at least %d lowercase characters."
+msgstr "§Aªº·s±K½X¦Ü¤Ön¥]§t %d Ó¥H¤Wªº¤p¼g^¤å¦r."
+
+#: main.php:123
+#, php-format
+msgid "Your new password must contain at least %d numeric characters."
+msgstr "§Aªº·s±K½X¦Ü¤Ön¥]§t %d Ó¥H¤Wªº¼Æ¦r."
+
+#: main.php:113
+#, php-format
+msgid "Your new password must contain at least %d uppercase characters."
+msgstr "§Aªº·s±K½X¦Ü¤Ön¥]§t %d Ó¥H¤Wªº¤j¼g^¤å¦r."
+
+#: main.php:144
+#, php-format
+msgid "Your new password must contain less than %d whitespace characters."
+msgstr "§Aªº·s±K½X¤£±o¥]§t %d Ó¥H¤WªºªÅ¥Õ¦r."
+
+#: main.php:146
+msgid "Your new password must not contain whitespace characters."
+msgstr "§Aªº·s±K½X¤£±o¥]§tªÅ¥Õ¦r."
+
+#: main.php:72
+msgid "Your new passwords didn't match"
+msgstr "§Aªº·s±K½X¤£²Å¦X"
+
+#: lib/Driver/http.php:76
+msgid "Your password could not be changed."
+msgstr "§Aªº±K½XµLªk³QÅܧó."
+
+#: templates/main/main.inc:19
+msgid "Your passwords do not match"
+msgstr "§Aªº±K½X¤£²Å¦X"
--- /dev/null
+Deny from all
--- /dev/null
+# $Horde: passwd/scripts/kpasswd_expect,v 1.2.2.2 2008/10/09 17:12:24 jan Exp $
+#
+# The following expect script enables the password change over kerberos
+# kpasswd.
+#
+# Dilyan Palauzov <didopalauzov@aegee.org>, 2005
+#
+gets stdin user
+gets stdin oldpw
+gets stdin newpw
+set log [lindex $argv 1]
+set err [open $log "w" "0600"]
+set pid [spawn /usr/bin/kpasswd $user]
+set timeout 1
+expect {
+ "Password for *: "
+ {
+ send $oldpw\r
+ }
+ eof {
+ puts $err $expect_out(buffer)
+ close $err
+ exit 1
+ }
+}
+
+expect {
+ "Enter new password: "
+ {
+ send $newpw\r
+ }
+ eof {
+ puts $err $expect_out(buffer)
+ close $err
+ exit 1
+ }
+}
+expect {
+ eof {exit 1}
+ "Enter it again: "
+ {
+ send $newpw\r
+ }
+}
+expect {
+ eof {
+ puts $err $expect_out(buffer)
+ close $err
+ exit 1
+ }
+ "Password changed."
+ {
+ close $err
+ exit 0
+ }
+}
+
+close $err
+exit 0
--- /dev/null
+# $Horde: passwd/scripts/passwd_expect,v 1.7.2.3 2008/10/09 17:12:24 jan Exp $
+#
+# This scripts changes a password on the local system or a remote host.
+# Connections to the remote (this can also be localhost) are made by ssh, rsh,
+# telnet or rlogin.
+
+# @author Gaudenz Steinlin <gaudenz@soziologie.ch>
+# @since Passwd 2.2
+
+# For sudo support alter sudoers (using visudo) so that it contains the
+# following information (replace 'apache' if your webserver runs under another
+# user):
+# -----
+# # Needed for Horde's passwd module
+# Runas_Alias REGULARUSERS = ALL, !root
+# apache ALL=(REGULARUSERS) NOPASSWD:/usr/bin/passwd
+# -----
+
+# @stdin The username, oldpassword, newpassword (in this order)
+# will be taken from stdin
+# @param -prompt regexp for the shell prompt
+# @param -password regexp password prompt
+# @param -oldpassword regexp for the old password
+# @param -newpassword regexp for the new password
+# @param -verify regexp for verifying the password
+# @param -success regexp for success changing the password
+# @param -login regexp for the telnet prompt for the loginname
+# @param -host hostname to be connected
+# @param -timeout timeout for each step
+# @param -log file for writing error messages
+# @param -output file for loging the output
+# @param -telnet use telnet
+# @param -ssh use ssh (default)
+# @param -rlogin use rlogin
+# @param -slogin use slogin
+# @param -sudo use sudo
+# @param -program command for changing passwords
+#
+# @return 0 on success, 1 on failure
+#
+
+
+# default values
+set host "localhost"
+set login "ssh"
+set program "passwd"
+set prompt_string "(%|\\\$|>)"
+set fingerprint_string "The authenticity of host.* can't be established.*\nRSA key fingerprint is.*\nAre you sure you want to continue connecting.*"
+set password_string "(P|p)assword.*"
+set oldpassword_string "((O|o)ld|login|\\\(current\\\) UNIX) (P|p)assword.*"
+set newpassword_string "(N|n)ew.* (P|p)assword.*"
+set badoldpassword_string "(Authentication token manipulation error).*"
+set badpassword_string "((passwd|BAD PASSWORD).*|(passwd|Bad:).*\r)"
+set verify_string "((R|r)e-*enter.*(P|p)assword|Retype new( UNIX)? password|(V|v)erification|(V|v)erify|(A|a)gain).*"
+set success_string "((P|p)assword.* changed|successfully)"
+set login_string "(((L|l)ogin|(U|u)sername).*)"
+set timeout 20
+set log "/tmp/passwd.out"
+set output false
+set output_file "/tmp/passwd.log"
+
+# read input from stdin
+fconfigure stdin -blocking 1
+
+gets stdin user
+gets stdin password(old)
+gets stdin password(new)
+
+# alternative: read input from command line
+#if {$argc < 3} {
+# send_user "Too few arguments: Usage $argv0 username oldpass newpass"
+# exit 1
+#}
+#set user [lindex $argv 0]
+#set password(old) [lindex $argv 1]
+#set password(new) [lindex $argv 2]
+
+# no output to the user
+log_user 0
+
+# read in other options
+for {set i 0} {$i<$argc} {incr i} {
+ set arg [lindex $argv $i]
+ switch -- $arg "-prompt" {
+ incr i
+ set prompt_string [lindex $argv $i]
+ continue
+ } "-password" {
+ incr i
+ set password_string [lindex $argv $i]
+ continue
+ } "-oldpassword" {
+ incr i
+ set oldpassword_string [lindex $argv $i]
+ continue
+ } "-newpassword" {
+ incr i
+ set newpassword_string [lindex $argv $i]
+ continue
+ } "-verify" {
+ incr i
+ set verify_string [lindex $argv $i]
+ continue
+ } "-success" {
+ incr i
+ set success_string [lindex $argv $i]
+ continue
+ } "-login" {
+ incr i
+ set login_string [lindex $argv $i]
+ continue
+ } "-host" {
+ incr i
+ set host [lindex $argv $i]
+ continue
+ } "-timeout" {
+ incr i
+ set timeout [lindex $argv $i]
+ continue
+ } "-log" {
+ incr i
+ set log [lindex $argv $i]
+ continue
+ } "-output" {
+ incr i
+ set output_file [lindex $argv $i]
+ set output true
+ continue
+ } "-telnet" {
+ set login "telnet"
+ continue
+ } "-ssh" {
+ set login "ssh"
+ continue
+ } "-ssh-exec" {
+ set login "ssh-exec"
+ continue
+ } "-rlogin" {
+ set login "rlogin"
+ continue
+ } "-slogin" {
+ set login "slogin"
+ continue
+ } "-sudo" {
+ set login "sudo"
+ continue
+ } "-program" {
+ incr i
+ set program [lindex $argv $i]
+ continue
+ }
+}
+
+# log session
+if {$output} {
+ log_file $output_file
+}
+
+set err [open $log "w" "0600"]
+
+# start remote session
+if {[string match $login "rlogin"]} {
+ set pid [spawn rlogin $host -l $user]
+} elseif {[string match $login "slogin"]} {
+ set pid [spawn slogin $host -l $user]
+} elseif {[string match $login "ssh"]} {
+ set pid [spawn ssh $host -l $user]
+} elseif {[string match $login "ssh-exec"]} {
+ set pid [spawn ssh $host -l $user $program]
+} elseif {[string match $login "sudo"]} {
+ set pid [spawn sudo -u $user $program]
+} elseif {[string match $login "telnet"]} {
+ set pid [spawn telnet $host]
+ expect -re $login_string {
+ sleep .5
+ send "$user\r"
+ }
+} else {
+ puts $err "Invalid login mode. Valid modes: rlogin, slogin, ssh, telnet, sudo\n"
+ close $err
+ exit 1
+}
+
+set old_password_notentered true
+
+if {![string match $login "sudo"]} {
+ # log in
+ expect {
+ -re $fingerprint_string {sleep .5
+ send yes\r
+ exp_continue}
+ -re $password_string {sleep .5
+ send $password(old)\r}
+ timeout {puts $err "Could not login to system (no password prompt)\n"
+ close $err
+ exit 1}
+ }
+
+ # start password changing program
+ expect {
+ -re $prompt_string {sleep .5
+ send $program\r}
+ # The following is for when passwd is the login shell or ssh-exec is used
+ -re $oldpassword_string {sleep .5
+ send $password(old)\r
+ set old_password_notentered false}
+ timeout {puts $err "Could not login to system (bad old password?)\n"
+ close $err
+ exit 1}
+ }
+}
+
+# send old password
+if {$old_password_notentered} {
+ expect {
+ -re $oldpassword_string {sleep .5
+ send $password(old)\r}
+ timeout {puts $err "Could not start passwd program (no old password prompt)\n"
+ close $err
+ exit 1}
+ }
+}
+
+# send new password
+expect {
+ -re $newpassword_string {sleep .5
+ send $password(new)\r}
+ -re $badoldpassword_string {puts $err "Old password is incorrect\n"
+ close $err
+ exit 1}
+ timeout {puts "Could not change password (bad old password?)\n"
+ close $err
+ exit 1}
+}
+
+# send new password again
+expect {
+ -re $badpassword_string {puts $err "$expect_out(0,string)"
+ close $err
+ send \003
+ sleep .5
+ exit 1}
+ -re $verify_string {sleep .5
+ send $password(new)\r}
+ timeout {puts $err "New password not valid (too short, bad password, too similar, ...)\n"
+ close $err
+ send \003
+ sleep .5
+ exit 1}
+}
+
+# check response
+expect {
+ -re $success_string {sleep .5
+ send exit\r}
+ -re $badpassword_string {puts $err "$expect_out(0,string)"
+ close $err
+ exit 1}
+ timeout {puts $err "Could not change password.\n"
+ close $err
+ exit 1}
+}
+
+# exit succsessfully
+expect {
+ eof {close $err
+ exit 0}
+}
+close $err
--- /dev/null
+Deny from all
--- /dev/null
+<?php
+global $language;
+if (isset($language)) {
+ header('Content-type: text/html; charset=' . NLS::getCharset());
+ header('Vary: Accept-Language');
+}
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
+<!-- Passwd: Copyright 2002-2009 The Horde Project. Passwd is under a Horde license. -->
+<!-- Horde Project: http://www.horde.org/ | Passwd: http://www.horde.org/passwd/ -->
+<!-- Horde Licenses: http://www.horde.org/licenses/ -->
+<?php echo !empty($language) ? '<html lang="' . strtr($language, '_', '-') . '">' : '<html>' ?>
+<head>
+<?php
+
+/* Print the page title. */
+$page_title = $registry->get('name');
+if (!empty($title)) $page_title .= ' :: ' . $title;
+if (!empty($refresh_time) && ($refresh_time > 0) && !empty($refresh_url)) {
+ echo "<meta http-equiv=\"refresh\" content=\"$refresh_time;url=$refresh_url\">\n";
+}
+
+?>
+<title><?php echo htmlspecialchars($page_title) ?></title>
+<link href="<?php echo $GLOBALS['registry']->getImageDir()?>/favicon.ico" rel="SHORTCUT ICON" />
+<?php echo Horde::stylesheetLink('passwd') ?>
+</head>
+
+<body<?php if ($bc = Util::nonInputVar('bodyClass')) echo ' class="' . $bc . '"' ?><?php if ($bi = Util::nonInputVar('bodyId')) echo ' id="' . $bi . '"'; ?>>
--- /dev/null
+<script type="text/javascript">
+<!--
+
+function submit_form()
+{
+ if (document.passwd.oldpassword.value == "") {
+ alert('<?php echo addslashes(_("Please provide your current password")); ?>');
+ document.passwd.oldpassword.focus();
+ return false;
+ } else if (document.passwd.newpassword0.value == "") {
+ alert('<?php echo addslashes(_("Please provide a new password")); ?>');
+ document.passwd.newpassword0.focus();
+ return false;
+ } else if (document.passwd.newpassword1.value == "") {
+ alert('<?php echo addslashes(_("Please verify your new password")); ?>');
+ document.passwd.newpassword1.focus();
+ return false;
+ } else if (document.passwd.newpassword0.value != document.passwd.newpassword1.value) {
+ alert('<?php echo addslashes(_("Your passwords do not match")); ?>');
+ document.passwd.newpassword0.value = '';
+ document.passwd.newpassword1.value = '';
+ document.passwd.newpassword0.focus();
+ return false;
+ } else {
+ return true;
+ }
+}
+
+function setFocus()
+{
+ if (document.passwd.oldpassword.value == "") {
+ document.passwd.oldpassword.focus();
+ } else if (document.passwd.newpassword0.value == "") {
+ document.passwd.newpassword0.focus();
+ } else {
+ document.passwd.newpassword1.focus();
+ }
+}
+//-->
+</script>
+
+<div id="menu">
+<?php
+Horde::addScriptFile('stripe.js', 'horde', true);
+require_once 'Horde/Menu.php';
+$menu = &new Menu(HORDE_MENU_MASK_ALL & ~HORDE_MENU_MASK_PREFS);
+echo $menu->render();
+$item = 1;
+?>
+</div>
+<?php $notification->notify(array('listeners' => 'status')) ?>
+
+<form method="post" action="<?php echo Horde::url('main.php', false, -1, true) ?>" name="passwd">
+<?php echo Util::formInput() ?>
+<?php if ($conf['backend']['backend_list'] == 'hidden'): ?>
+<input type="hidden" name="backend" value="<?php echo htmlspecialchars($backend_key) ?>" />
+<?php endif; if ($conf['user']['change'] !== true): ?>
+<input type="hidden" name="userid" value="<?php echo htmlspecialchars($userid) ?>" />
+<?php endif; ?>
+<input type="hidden" name="return_to" value="<?php echo htmlspecialchars(Util::getFormData('return_to')) ?>" />
+
+<h1 class="header">
+<?php
+if ($conf['backend']['backend_list'] == 'hidden') {
+ printf(_("Changing password for %s"), htmlspecialchars($backends[$backend_key]['name']));
+} else {
+ echo _("Change your password");
+}
+?>
+</h1>
+
+<table class="striped" style="border-collapse: collapse; width: 100%;">
+<?php if ($conf['user']['change'] === true): ?>
+<tr>
+ <td class="rightAlign">
+ <strong><?php echo Horde::label('userid', _("Username:")) ?></strong>
+ </td>
+ <td>
+ <input type="text" id="userid" name="userid" value="<?php echo htmlspecialchars($userid) ?>" />
+ </td>
+ <td class="rightAlign">
+ <?php echo Help::link('passwd', 'passwd-username') ?>
+ </td>
+</tr>
+<?php endif; ?>
+
+<tr>
+ <td width="15%" class="rightAlign">
+ <strong><?php echo Horde::label('oldpassword', _("Old password:")) ?></strong>
+ </td>
+ <td>
+ <input type="password" tabindex="1" id="oldpassword" name="oldpassword" size="32" />
+ </td>
+ <td class="rightAlign">
+ <?php echo Help::link('passwd', 'passwd-old-password') ?>
+ </td>
+</tr>
+
+<tr>
+ <td class="rightAlign">
+ <strong><?php echo Horde::label('newpassword0', _("New password:")) ?></strong>
+ </td>
+ <td>
+ <input type="password" tabindex="2" id="newpassword0" name="newpassword0" size="32" />
+ </td>
+ <td class="rightAlign">
+ <?php echo Help::link('passwd', 'passwd-new-password') ?>
+ </td>
+</tr>
+
+<tr>
+ <td class="rightAlign">
+ <strong><?php echo Horde::label('newpassword1', _("Confirm new password:")) ?></strong>
+ </td>
+ <td>
+ <input type="password" tabindex="3" id="newpassword1" name="newpassword1" size="32" />
+ </td>
+ <td class="rightAlign">
+ <?php echo Help::link('passwd', 'passwd-confirm-password') ?>
+ </td>
+</tr>
+
+<?php if ($conf['backend']['backend_list'] == 'shown'): ?>
+<tr>
+ <td class="rightAlign">
+ <strong><?php echo Horde::label('backend', _("Change password for:")) ?></strong>
+ </td>
+ <td style="direction: ltr">
+ <select id="backend" name="backend" tabindex="4">
+ <?php echo $backends_list ?>
+ </select>
+ </td>
+ <td class="rightAlign">
+ <?php echo Help::link('passwd', 'passwd-server') ?>
+ </td>
+</tr>
+<?php endif; ?>
+
+<tr class="control">
+ <td colspan="3" class="control">
+ <input class="button" type="submit" name="submit" value="<?php echo _("Change Password") ?>" onclick="return submit_form();" />
+ <input class="button" type="reset" name="reset" value="<?php echo _("Reset") ?>" />
+ </td>
+</tr>
+</table>
+</form>
--- /dev/null
+<?php
+/**
+ * $Horde: passwd/test.php,v 1.2.2.7 2009/06/10 08:20:38 jan Exp $
+ *
+ * Copyright 2005-2009 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/gpl.php.
+ *
+ * @author Chuck Hagenbuch <chuck@horde.org>
+ */
+
+/* Include Horde's core.php file. */
+include_once '../lib/core.php';
+
+/* We should have loaded the String class, from the Horde_Util
+ * package, in core.php. If String:: isn't defined, then we're not
+ * finding some critical libraries. */
+if (!class_exists('String')) {
+ echo '<br /><h2 style="color:red">The Horde_Util package was not found. If PHP\'s error_reporting setting is high enough and display_errors is on, there should be error messages printed above that may help you in debugging the problem. If you are simply missing these files, then you need to get the <a href="http://cvs.horde.org/cvs.php/framework">framework</a> module from <a href="http://www.horde.org/source/">Horde CVS</a>, and install the packages in it with the install-packages.php script.</h2>';
+ exit;
+}
+
+/* Initialize the Horde_Test:: class. */
+if (!is_readable('../lib/Test.php')) {
+ echo 'ERROR: You must install Horde before running this script.';
+ exit;
+}
+require_once '../lib/Test.php';
+$horde_test = new Horde_Test;
+
+/* Accounts definitions. */
+$module = 'Passwd';
+require_once './lib/version.php';
+$module_version = PASSWD_VERSION;
+
+require TEST_TEMPLATES . 'header.inc';
+require TEST_TEMPLATES . 'version.inc';
+
+/* PHP module capabilities. */
+$module_list = array(
+ 'ctype' => 'Ctype Support',
+ 'ldap' => array(
+ 'descrip' => 'LDAP Support',
+ 'error' => 'If you will be using the any of the LDAP drivers for password changes, PHP must have ldap support. Compile PHP <code>--with-ldap</code> before continuing.'
+ ),
+ 'mcrypt' => array(
+ 'descrip' => 'Mcrypt Support',
+ 'error' => 'If you will be using the smbldap driver for password changes, PHP must have mcrypt support. Compile PHP <code>--with-mcrypt</code> before continuing.'
+ ),
+ 'mhash' => array(
+ 'descrip' => 'Mhash Support',
+ 'error' => 'If you will be using the smbldap driver for password changes, PHP must have mhash support. Compile PHP <code>--with-mhash</code> before continuing.'
+ ),
+ 'soap' => array(
+ 'descrip' => 'SOAP Support',
+ 'error' => 'If you will be using the SOAP driver for password changes, PHP must have soap support. Compile PHP with <code>--enable-soap</code> before continuing.'
+ ),
+);
+
+
+/* PEAR */
+$pear_list = array(
+ 'Crypt_CHAP' => array(
+ 'path' => 'Crypt/CHAP.php',
+ 'error' => 'If you will be using the smbldap driver for password changes, then you must install the PEAR Crypt_CHAP module.'
+ ),
+ 'HTTP_Request' => array(
+ 'path' => 'HTTP/Request.php',
+ 'error' => 'If you will be using the http driver for password changes, then you must install the PEAR HTTP_Request module.'
+ )
+);
+
+/* Get the status output now. */
+$module_output = $horde_test->phpModuleCheck($module_list);
+
+?>
+<h1>PHP Module Capabilities</h1>
+<ul>
+ <?php echo $module_output ?>
+</ul>
+
+<h1>PEAR Modules</h1>
+<ul>
+ <?php echo $horde_test->PEARModuleCheck($pear_list) ?>
+</ul>
+
+<?php
+require TEST_TEMPLATES . 'footer.inc';